69 lines
1.6 KiB
JavaScript
69 lines
1.6 KiB
JavaScript
/**
|
|
* Handlers for sync: getSyncStatus, createSyncInvite, pairWithInvite.
|
|
* Context: syncManager
|
|
*/
|
|
|
|
function register(deps) {
|
|
const { syncManager } = deps;
|
|
return [
|
|
{
|
|
type: 'getSyncStatus',
|
|
handle: async (payload, reply) => {
|
|
try {
|
|
const status = await syncManager.getSyncStatus();
|
|
reply({ ok: true, ...status });
|
|
} catch (e) {
|
|
reply({ ok: false, error: e.message });
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'createSyncInvite',
|
|
handle: async (payload, reply) => {
|
|
try {
|
|
const result = await syncManager.createSyncInvite();
|
|
reply(result);
|
|
} catch (e) {
|
|
reply({ ok: false, error: e.message });
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'pairWithInvite',
|
|
handle: async (payload, reply) => {
|
|
const invite = payload && payload.invite;
|
|
try {
|
|
const result = await syncManager.pairWithInvite(invite);
|
|
reply(result);
|
|
} catch (e) {
|
|
reply({ ok: false, error: e.message });
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'delink',
|
|
handle: async (payload, reply) => {
|
|
try {
|
|
const result = await syncManager.delink();
|
|
reply(result);
|
|
} catch (e) {
|
|
reply({ ok: false, error: e.message });
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type: 'disband',
|
|
handle: async (payload, reply) => {
|
|
try {
|
|
const result = await syncManager.disband();
|
|
reply(result);
|
|
} catch (e) {
|
|
reply({ ok: false, error: e.message });
|
|
}
|
|
}
|
|
}
|
|
];
|
|
}
|
|
|
|
module.exports = { register };
|