drone-1.0.1: src/Drone/Endpoints/Yaml.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedLabels #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeOperators #-}
module Drone.Endpoints.Yaml where
import Data.Extensible
import Data.Text (Text)
import Drone.Client
import Lens.Micro ((^.))
import Network.HTTP.Req
signYaml ::
forall m c . (MonadHttp m, Client c) => c -> Text -> Text -> Text -> m Text
signYaml c owner name file = do
resp <- req POST url (ReqBodyJson body) jsonResponse opt :: m (JsonResponse (Record '[ "data" >: Text ]))
pure $ responseBody resp ^. #data
where
url = mkUrl c $ format (paths ^. #pathSign) owner name
body = #data @= file <: emptyRecord
opt = mkHeader c
verifyYaml ::
(MonadHttp m, Client c) => c -> Text -> Text -> Text -> m IgnoreResponse
verifyYaml c owner name file = req POST url (ReqBodyJson body) ignoreResponse opt
where
url = mkUrl c $ format (paths ^. #pathVerify) owner name
body = #data @= file <: emptyRecord
opt = mkHeader c