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
Request
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"
[Value]
body <- (a -> App Value) -> [a] -> App [Value]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse a -> App Value
forall a. (MakesValue a, HasCallStack) => a -> App Value
make [a]
payloads
String -> Request -> App Response
submit String
"POST" (Request -> App Response) -> Request -> App Response
forall a b. (a -> b) -> a -> b
$ Request
req Request -> (Request -> Request) -> Request
forall a b. a -> (a -> b) -> b
& [Value] -> Request -> Request
forall a. ToJSON a => a -> Request -> Request
addJSON [Value]
body
getPresence ::
(HasCallStack, MakesValue user) =>
user ->
App Response
getPresence :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
getPresence user
u = do
String
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
Request
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 -> App Request) -> String -> App Request
forall a b. (a -> b) -> a -> b
$ String
"/i/presences/"
String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
uid
String -> Request -> App Response
submit String
"GET" Request
req
unregisterUser ::
(HasCallStack, MakesValue user) =>
user ->
App Response
unregisterUser :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
unregisterUser user
u = do
Request
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/"
String -> Request -> App Response
submit String
"DELETE" Request
req
getPushTokens ::
(HasCallStack, MakesValue user) =>
user ->
App Response
getPushTokens :: forall user.
(HasCallStack, MakesValue user) =>
user -> App Response
getPushTokens user
u = do
String
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
Request
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/push-tokens/" String -> String -> String
forall a. Semigroup a => a -> a -> a
<> String
uid)
String -> Request -> App Response
submit String
"GET" Request
req