module API.GundeckInternal where
import Testlib.Prelude
postPush ::
( HasCallStack,
MakesValue user,
MakesValue a
) =>
user ->
[a] ->
App Response
postPush :: forall user a.
(HasCallStack, MakesValue user, MakesValue a) =>
user -> [a] -> App Response
postPush user
user [a]
payloads = do
req <- user -> Service -> Versioned -> String -> App Request
forall user.
(HasCallStack, MakesValue user) =>
user -> Service -> Versioned -> String -> App Request
baseRequest user
user Service
Gundeck Versioned
Unversioned String
"/i/push/v2"
body <- traverse make payloads
submit "POST" $ req & addJSON body
getPresence ::
(HasCallStack, MakesValue user) =>
user ->
App Response
getPresence :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
getPresence user
u = do
uid <- user
u user -> String -> App Value
forall a. (HasCallStack, MakesValue a) => a -> String -> App Value
%. String
"id" App Value -> (App Value -> App String) -> App String
forall a b. a -> (a -> b) -> b
& App Value -> App String
forall a. (HasCallStack, MakesValue a) => a -> App String
asString
req <-
baseRequest u Gundeck Unversioned
$ "/i/presences/"
<> uid
submit "GET" req
unregisterUser ::
(HasCallStack, MakesValue user) =>
user ->
App Response
unregisterUser :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
unregisterUser user
u = do
req <- user -> Service -> Versioned -> String -> App Request
forall user.
(HasCallStack, MakesValue user) =>
user -> Service -> Versioned -> String -> App Request
baseRequest user
u Service
Gundeck Versioned
Unversioned String
"/i/user/"
submit "DELETE" req
getPushTokens ::
(HasCallStack, MakesValue user) =>
user ->
App Response
getPushTokens :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
getPushTokens user
u = do
uid <- user
u user -> String -> App Value
forall a. (HasCallStack, MakesValue a) => a -> String -> App Value
%. String
"id" App Value -> (App Value -> App String) -> App String
forall a b. a -> (a -> b) -> b
& App Value -> App String
forall a. (HasCallStack, MakesValue a) => a -> App String
asString
req <- baseRequest u Gundeck Unversioned ("/i/push-tokens/" <> uid)
submit "GET" req