{-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE OverloadedStrings #-} module Drone.Endpoints.Cron where import Data.Text (Text) import Drone.Client import Drone.Types import Lens.Micro ((^.)) import Network.HTTP.Req getCron :: (MonadHttp m, Client c) => c -> Text -> Text -> Text -> m (JsonResponse Cron) getCron c owner name cron = req GET url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathCron) owner name cron opt = mkHeader c getCrons :: (MonadHttp m, Client c) => c -> Text -> Text -> m (JsonResponse [Cron]) getCrons c owner name = req GET url NoReqBody jsonResponse opt where url = mkUrl c $ format (paths ^. #pathCrons) owner name opt = mkHeader c createCron :: (MonadHttp m, Client c) => c -> Text -> Text -> Cron -> m (JsonResponse Cron) createCron c owner name cron = req POST url (ReqBodyJson cron) jsonResponse opt where url = mkUrl c $ format (paths ^. #pathCrons) owner name opt = mkHeader c updateCron :: (MonadHttp m, Client c) => c -> Text -> Text -> Text -> CronPatch -> m (JsonResponse Cron) updateCron c owner name cron patch = req PATCH url (ReqBodyJson patch) jsonResponse opt where url = mkUrl c $ format (paths ^. #pathCron) owner name cron opt = mkHeader c deleteCron :: (MonadHttp m, Client c) => c -> Text -> Text -> Text -> m IgnoreResponse deleteCron c owner name cron = req DELETE url NoReqBody ignoreResponse opt where url = mkUrl c $ format (paths ^. #pathCron) owner name cron opt = mkHeader c