1.1.0 • Published 4 years ago
@activitypods/synchronizer v1.1.0
Synchronizer Service
An ActivityPods service to notify of objects' updates.
When a watched object is updated or deleted, automatically send an activity to the actors who have the right to view this object.
Usage
The SynchronizerService is included in the CoreService. The easiest way to make use of it is to import the SynchronizerMixin along with the ControlledContainerMixin.
const { ControlledContainerMixin } = require('@semapps/ldp');
const { SynchronizerMixin } = require('@activitypods/synchronizer');
module.exports = {
name: 'events',
mixins: [SynchronizerMixin, ControlledContainerMixin], // In that order
settings: {
path: '/events',
acceptedTypes: ['Event']
}
}Note: The
SynchronizerMixinmust be added before theControlledContainerMixin, as it overrides itsdeleteaction.
Actions
watch
Watch a new type of object.
Parameters
| Property | Type | Default | Description |
|---|---|---|---|
type | String | required | The type of resource we want to watch |
announceUpdate
Announce an object update to all actors who have the right to view this object.
Parameters
| Property | Type | Default | Description |
|---|---|---|---|
objectUri | String | required | The URI of resource which has been updated |
newData | Object | required | The content of the resource (in JSON-LD) |
announceDelete
Announce an object deletion to all actors who have the right to view this object.
Parameters
| Property | Type | Default | Description |
|---|---|---|---|
objectUri | String | required | The URI of resource which has been deleted |
oldData | Object | required | The content of the resource before it was deleted (in JSON-LD) |
Handled activities
Announce update
{
"type": "Announce",
"object": {
"type": "Update",
"object": {
"type": "[WATCHED TYPES]"
}
}
}Emitter's side effects
- None
Recipients' side effects
- The object cached in the recipients' PODs is refreshed
Announce delete
{
"type": "Announce",
"object": {
"type": "Delete",
"object": {
"formerType": "[WATCHED TYPES]"
}
}
}Emitter's side effects
- None
Recipients' side effects
- The object cached in the recipients' PODs is deleted