Deadpan-DDP-0.2.0.0: src/Web/DDP/Deadpan/Callbacks.hs
{-|
Description: Intended to provide a set of callbacks for various server events.
This module is intended to provide a set of callbacks for various server events.
The set of callbacks provided fulfills the functionality require to be able
to implement a local data-store reflecting server-sent data-update messages.
"Web.DDP.Deadpan.Callbacks" is used frequently in "Web.DDP.Deadpan".
-}
{-# LANGUAGE OverloadedStrings #-}
module Web.DDP.Deadpan.Callbacks where
import Web.DDP.Deadpan.DSL
import Control.Lens
-- Old Stuff...
-- Client -->> Server
-- Client Heartbeat
pingCallback :: Callback
pingCallback ejv = do
let mpid = ejv ^? _EJObject "id"
case mpid of Just pid -> sendMessage "pong" $ ejobject [("id", pid)]
Nothing -> sendMessage "pong" $ ejobject []
-- Client Data Subscriptions
clientDataSub :: Text -> Text -> Maybe [ EJsonValue ] -> DeadpanApp ()
clientDataSub _subid _name _params = undefined
-- | Synonym for `clientDataSub`
subscribe :: Text -> Text -> Maybe [ EJsonValue ] -> DeadpanApp ()
subscribe = clientDataSub
clientDataUnsub :: Text -> DeadpanApp ()
clientDataUnsub _subid = undefined
-- | Synonym for `clientDataUnsub`
unsubscribe :: Text -> DeadpanApp ()
unsubscribe = clientDataUnsub
-- Client RPC
{- |
As explained in the Meteor DDP documentation:
@
method: string (method name)
params: optional array of EJSON items (parameters to the method)
id: string (an arbitrary client-determined identifier for this method call)
randomSeed: optional JSON value (an arbitrary client-determined seed for pseudo-random generators)
@
-}
clientRPCMethod :: Text -> Maybe [EJsonValue] -> Text -> Maybe EJsonValue -> DeadpanApp ()
clientRPCMethod _method _params _rpcid _seed = undefined
-- Server -->> Client
-- Server Data Subscriptions
serverDataNosub :: Callback
serverDataNosub = undefined
serverDataAdded :: Callback
serverDataAdded = undefined
serverDataChanged :: Callback
serverDataChanged = undefined
serverDataRemoved :: Callback
serverDataRemoved = undefined
serverDataReady :: Callback
serverDataReady = undefined
serverDataAddedBefore :: Callback
serverDataAddedBefore = undefined
serverDataMovedBefore :: Callback
serverDataMovedBefore = undefined
-- Server RPC
serverRPCResult :: Callback
serverRPCResult = undefined
serverRPCUpdated :: Callback
serverRPCUpdated = undefined
-- Server Errors
serverError :: Callback
serverError = undefined