0.2.7 • Published 7 years ago

fh-wfm-workflow v0.2.7

Weekly downloads
55
License
MIT
Repository
github
Last release
7 years ago

FeedHenry WFM workflow Coverage Status

This module contains a workflow model representation and its related services :

  • Backend services
  • Frontend services

Client-side usage

Topic Subscriptions

wfm:workflows:create

Description

Creating a new Workflow

Example
var parameters = {
  workflowToCreate: {
    //A Valid JSON Object
  },
  //Optional topic unique identifier.
  topicUid: "uniquetopicid"
}

mediator.publish("wfm:workflows:create", parameters);

wfm:workflows:read

Description

Read a single Workflow

Example
var parameters = {
  id: "workflowId",
  //Optional topic unique identifier.
  topicUid: "uniquetopicid"
}

mediator.publish("wfm:workflows:read", parameters);

wfm:workflows:update

Description

Update a single Workflow

Example
var parameters = {
  workflowToUpdate: {
    ...
    id: "workflowId"
    ...
  },
  //Optional topic unique identifier.
  topicUid: "uniquetopicid"
}

mediator.publish("wfm:workflows:update", parameters);

wfm:workflows:remove

Description

Remove a single Workflow

Example
var parameters = {
  id: "workflowId",
  //Optional topic unique identifier.
  topicUid: "uniquetopicid"
}

mediator.publish("wfm:workflows:remove", parameters);

wfm:workflows:list

Description

List All Workflows

Example
var parameters = {
  //Optional topic unique identifier.
  topicUid: "uniquetopicid"
}

mediator.publish("wfm:workflows:list", parameters);

Published Topics

The following topics are published by this module. Developers are free to implement these topics subscribers, or use a module that already has these subscribers implement (E.g. the raincatcher-sync module).

TopicDescription
wfm:sync:workflows:createCreate a new item in the sync workflows collection
wfm:sync:workflows:updateUpdate an existing item in the sync workflows collection
wfm:sync:workflows:listList all items in the sync workflows collection
wfm:sync:workflows:removeRemove an existing item from the sync workflows collection
wfm:sync:workflows:readRead a single item from the sync workflows collection
wfm:sync:workflows:startStart the sync process for sync workflows collection
wfm:sync:workflows:stopStop the sync process for sync workflows collection
wfm:sync:workflows:force_syncForce a sync cycle from client to cloud for sync workflows collection

Topic Subscriptions

TopicDescription
done:wfm:sync:workflows:createA workflow was created in the workflows dataset
error:wfm:sync:workflows:createAn error occurred when creating an item in the workflows dataset.
done:wfm:sync:workflows:updateA workflow was updated in the workflows dataset
error:wfm:sync:workflows:updateAn error occurred when updating an item in the workflows dataset.
done:wfm:sync:workflows:listA list of the items in the workflows dataset completed
error:wfm:sync:workflows:listAn error occurred when listing items in the workflows dataset.
done:wfm:sync:workflows:removeA workflow was removed from the workflows dataset
error:wfm:sync:workflows:removeAn error occurred when removing an item in the workflows dataset.
done:wfm:sync:workflows:readA item was read correctly from the workflows dataset
error:wfm:sync:workflows:readAn error occurred when reading an item in the workflows dataset.
done:wfm:sync:workflows:startThe sync process started for the workflows dataset.
error:wfm:sync:workflows:startAn error occurred when starting the workflows dataset.
done:wfm:sync:workflows:stopThe sync process stopped for the workflows dataset.
error:wfm:sync:workflows:stopAn error occurred when stopping the workflows dataset sync process.
done:wfm:sync:workflows:force_syncA force sync process completed for the workflows dataset.
error:wfm:sync:workflows:force_syncAn error occurred when forcing the sync process for the workflows dataset.

Usage in an express backend

Setup

The server-side component of this WFM module exports a function that takes express and mediator instances as parameters, as in:

var express = require('express')
  , app = express()
  , mbaasExpress = mbaasApi.mbaasExpress()
  , mediator = require('fh-wfm-mediator/lib/mediator')
  ;

// configure the express app
...

// setup the wfm workflow sync server
require('fh-wfm-workflow/server')(mediator, app, mbaasExpress);

Server side events

the module broadcasts, and listens for the following events

Listens forResponds with
wfm:workflow:listdone:wfm:workflow:list
wfm:workflow:readdone:wfm:workflow:read
wfm:workflow:updatedone:wfm:workflow:update
wfm:workflow:createdone:wfm:workflow:create

Integration

Check this demo cloud application

workflow data structure example

  {
    id: 1338,
    title: 'App forms',
    steps: [
      {code: 'identification', name: 'Identification', formId: '56c1fce7c0a909d74e823317'},
      {code: 'signoff', name: 'Signoff', formId: '56bdf252206b0cba6f35837b'}
    ]
  }
0.2.7

7 years ago

1.0.0-pre.1

7 years ago

0.2.6

7 years ago

0.2.6-pre.1

7 years ago

0.2.5

7 years ago

0.2.5-pre.3

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.1-alpha.1

7 years ago

0.2.0

7 years ago

0.1.2

7 years ago

0.1.2-1

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.1.0-alpha.4

7 years ago

0.1.0-alpha.3

7 years ago

0.1.0-alpha.2

7 years ago

0.1.0-alpha.1

7 years ago

0.0.28

7 years ago

1.0.0-alpha.1

7 years ago

0.0.27-alpha.2

7 years ago

0.0.27-alpha.1

7 years ago

0.0.26

7 years ago

0.0.25

7 years ago

0.0.24

7 years ago

0.0.23

7 years ago

0.0.22

7 years ago

0.0.21

8 years ago

0.0.20

8 years ago

0.0.19

8 years ago

0.0.18

8 years ago

0.0.17

8 years ago

0.0.16

8 years ago

0.0.15

8 years ago

0.0.14

8 years ago

0.0.13

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.10

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago