{-# LANGUAGE OverloadedStrings #-}
module ChatWork.Endpoints.IncomingRequests
( getIncomingRequests
, acceptIncomingRequest
, rejectIncomingRequest
) where
import ChatWork.Client (Client (..))
import ChatWork.Types (AcceptedIncomingRequest, ChatWorkResponse,
IncomingRequests, jsonResponse')
import Network.HTTP.Req (DELETE (..), GET (..), MonadHttp,
NoReqBody (..), PUT (..), req, (/:), (/~))
getIncomingRequests :: (MonadHttp m, Client c) => c -> m (ChatWorkResponse IncomingRequests)
getIncomingRequests c = req GET (baseUrl c /: "incoming_requests") NoReqBody jsonResponse' $ mkHeader c
acceptIncomingRequest :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse AcceptedIncomingRequest)
acceptIncomingRequest c n = req PUT (baseUrl c /: "incoming_requests" /~ n ) NoReqBody jsonResponse' $ mkHeader c
rejectIncomingRequest :: (MonadHttp m, Client c) => c -> Int -> m (ChatWorkResponse ())
rejectIncomingRequest c n = req DELETE (baseUrl c /: "incoming_requests" /~ n) NoReqBody jsonResponse' $ mkHeader c