module Database.Bloodhound.Internal.Utils.Requests where

import Data.Aeson
import qualified Data.ByteString.Lazy.Char8 as L
import Database.Bloodhound.Internal.Client.BHRequest
import qualified Network.HTTP.Types.Method as NHTM
import Prelude hiding (filter, head)

delete ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  BHRequest contextualized body
delete :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> BHRequest contextualized body
delete = Method -> Endpoint -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method -> Endpoint -> BHRequest parsingContext responseBody
mkSimpleRequest Method
NHTM.methodDelete

deleteWithBody ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  L.ByteString ->
  BHRequest contextualized body
deleteWithBody :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> ByteString -> BHRequest contextualized body
deleteWithBody = Method -> Endpoint -> ByteString -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method
-> Endpoint -> ByteString -> BHRequest parsingContext responseBody
mkFullRequest Method
NHTM.methodDelete

get ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  BHRequest contextualized body
get :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> BHRequest contextualized body
get = Method -> Endpoint -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method -> Endpoint -> BHRequest parsingContext responseBody
mkSimpleRequest Method
NHTM.methodGet

head' ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  BHRequest contextualized body
head' :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> BHRequest contextualized body
head' = Method -> Endpoint -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method -> Endpoint -> BHRequest parsingContext responseBody
mkSimpleRequest Method
NHTM.methodHead

put ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  L.ByteString ->
  BHRequest contextualized body
put :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> ByteString -> BHRequest contextualized body
put = Method -> Endpoint -> ByteString -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method
-> Endpoint -> ByteString -> BHRequest parsingContext responseBody
mkFullRequest Method
NHTM.methodPut

post ::
  (ParseBHResponse contextualized, FromJSON body) =>
  Endpoint ->
  L.ByteString ->
  BHRequest contextualized body
post :: forall contextualized body.
(ParseBHResponse contextualized, FromJSON body) =>
Endpoint -> ByteString -> BHRequest contextualized body
post = Method -> Endpoint -> ByteString -> BHRequest contextualized body
forall parsingContext responseBody.
(ParseBHResponse parsingContext, FromJSON responseBody) =>
Method
-> Endpoint -> ByteString -> BHRequest parsingContext responseBody
mkFullRequest Method
NHTM.methodPost