Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- clientMakeSyncRequestQuery :: forall sid clientRecord a m. (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, MonadIO m) => (clientRecord -> a) -> EntityField clientRecord (Maybe sid) -> SqlPersistT m (SyncRequest (Key clientRecord) sid a)
- clientMergeSyncResponseQuery :: (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) => (sid -> a -> clientRecord) -> EntityField clientRecord (Maybe sid) -> SyncResponse (Key clientRecord) sid a -> SqlPersistT m ()
- clientSyncProcessor :: (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) => (sid -> a -> clientRecord) -> EntityField clientRecord (Maybe sid) -> ClientSyncProcessor (Key clientRecord) sid a (SqlPersistT m)
- serverProcessSyncQuery :: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) => [Filter record] -> (record -> a) -> (a -> record) -> SyncRequest ci (Key record) a -> SqlPersistT m (SyncResponse ci (Key record) a)
- serverProcessSyncWithCustomIdQuery :: (Ord sid, PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) => SqlPersistT m sid -> [Filter record] -> (record -> (sid, a)) -> (sid -> a -> record) -> SyncRequest ci sid a -> SqlPersistT m (SyncResponse ci sid a)
- serverSyncProcessor :: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) => [Filter record] -> (record -> a) -> (a -> record) -> ServerSyncProcessor ci (Key record) a (SqlPersistT m)
- serverSyncProcessorWithCustomId :: (Ord sid, PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) => SqlPersistT m sid -> [Filter record] -> (record -> (sid, a)) -> (sid -> a -> record) -> ServerSyncProcessor ci sid a (SqlPersistT m)
- setupUnsyncedClientQuery :: (PersistEntity clientRecord, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) => (a -> clientRecord) -> [a] -> SqlPersistT m ()
- setupClientQuery :: (PersistEntity clientRecord, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) => (a -> clientRecord) -> (sid -> a -> clientRecord) -> ClientStore (Key clientRecord) sid a -> SqlPersistT m ()
- clientGetStoreQuery :: (Ord sid, PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, MonadIO m) => (clientRecord -> a) -> EntityField clientRecord (Maybe sid) -> SqlPersistT m (ClientStore (Key clientRecord) sid a)
- serverGetStoreQuery :: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, MonadIO m) => (record -> a) -> SqlPersistT m (ServerStore (Key record) a)
- setupServerQuery :: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, MonadIO m) => (a -> record) -> ServerStore (Key record) a -> SqlPersistT m ()
Client side
clientMakeSyncRequestQuery Source #
:: forall sid clientRecord a m. (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, MonadIO m) | |
=> (clientRecord -> a) | How to read a record |
-> EntityField clientRecord (Maybe sid) | The server id field |
-> SqlPersistT m (SyncRequest (Key clientRecord) sid a) |
Make a sync request on the client side
clientMergeSyncResponseQuery Source #
:: (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) | |
=> (sid -> a -> clientRecord) | Create an un-deleted synced record on the client side |
-> EntityField clientRecord (Maybe sid) | The server id field |
-> SyncResponse (Key clientRecord) sid a | |
-> SqlPersistT m () |
Merge a sync response on the client side
Raw processors
:: (PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) | |
=> (sid -> a -> clientRecord) | Create an un-deleted synced record on the client side |
-> EntityField clientRecord (Maybe sid) | The server id field |
-> ClientSyncProcessor (Key clientRecord) sid a (SqlPersistT m) |
Server side
serverProcessSyncQuery Source #
:: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) | |
=> [Filter record] | Filters to select the relevant items Use these if you have multiple users and you want to sync per-user |
-> (record -> a) | How to read a record |
-> (a -> record) | How to insert a _new_ record |
-> SyncRequest ci (Key record) a | |
-> SqlPersistT m (SyncResponse ci (Key record) a) |
Process a sync query on the server side.
serverProcessSyncWithCustomIdQuery Source #
:: (Ord sid, PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) | |
=> SqlPersistT m sid | The action to generate new identifiers |
-> [Filter record] | Filters to select the relevant items Use these if you have multiple users and you want to sync per-user |
-> (record -> (sid, a)) | How to read a record |
-> (sid -> a -> record) | How to insert a _new_ record |
-> SyncRequest ci sid a | |
-> SqlPersistT m (SyncResponse ci sid a) |
Process a sync query on the server side with a custom id.
Sync processors
:: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) | |
=> [Filter record] | Filters to select the relevant items Use these if you have multiple users and you want to sync per-user |
-> (record -> a) | How to read a record |
-> (a -> record) | How to insert a _new_ record |
-> ServerSyncProcessor ci (Key record) a (SqlPersistT m) |
A server sync processor that uses the sqlkey of the record as the name
serverSyncProcessorWithCustomId Source #
:: (Ord sid, PersistEntity record, PersistEntityBackend record ~ SqlBackend, SafeToInsert record, MonadIO m) | |
=> SqlPersistT m sid | The action to generate new identifiers |
-> [Filter record] | Filters to select the relevant items Use these if you have multiple users and you want to sync per-user |
-> (record -> (sid, a)) | How to read a record |
-> (sid -> a -> record) | How to insert a _new_ record |
-> ServerSyncProcessor ci sid a (SqlPersistT m) |
A server sync processor that uses a custom key as the name
Utils
Client side
setupUnsyncedClientQuery Source #
:: (PersistEntity clientRecord, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) | |
=> (a -> clientRecord) | How to insert a _new_ record |
-> [a] | |
-> SqlPersistT m () |
Setup an unsynced client store
You shouldn't need this.
:: (PersistEntity clientRecord, PersistEntityBackend clientRecord ~ SqlBackend, SafeToInsert clientRecord, MonadIO m) | |
=> (a -> clientRecord) | Create an un-deleted unsynced record on the client side |
-> (sid -> a -> clientRecord) | Create an un-deleted synced record on the client side |
-> ClientStore (Key clientRecord) sid a | |
-> SqlPersistT m () |
Setup a client store
You shouldn't need this.
:: (Ord sid, PersistEntity clientRecord, PersistField sid, PersistEntityBackend clientRecord ~ SqlBackend, MonadIO m) | |
=> (clientRecord -> a) | How to red a record |
-> EntityField clientRecord (Maybe sid) | The server id field |
-> SqlPersistT m (ClientStore (Key clientRecord) sid a) |
Get a client store
You shouldn't need this.
Server side side
:: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, MonadIO m) | |
=> (record -> a) | How to read a record |
-> SqlPersistT m (ServerStore (Key record) a) |
Get the server store from the database
You shouldn't need this.
:: (PersistEntity record, PersistEntityBackend record ~ SqlBackend, MonadIO m) | |
=> (a -> record) | How to write a record |
-> ServerStore (Key record) a | |
-> SqlPersistT m () |
Set up a server store in the database.
You shouldn't need this.
This uses insertKey
function and is therefore unsafe.