Skip to content

Commit

Permalink
Add jobs + refacto
Browse files Browse the repository at this point in the history
  • Loading branch information
MaximeMaillet committed Oct 11, 2018
1 parent bf5e9ce commit ed7b416
Show file tree
Hide file tree
Showing 7 changed files with 169 additions and 0 deletions.
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Workflow Reply

##### Reply Wrapper for [bull-workflow-manager](https://github.com/eoko/bull-workflow-manager)

### Campaign

* **Add** ($wf-reply/campaign/add)

*Add people to one campaign*

- Workflow data :
- api_key (Reply API Key)
- campaign_id (Id of Reply Campaign)
- Post data :
- email (Email of member) or reply_id (Id of Reply member)

* **Remove** ($wf-reply/campaign/remove)

*Remove people from one campaign*

- Workflow data :
- api_key (Reply API Key)
- campaign_id (Id of Reply Campaign)
- Post data :
- email (Email of member) or reply_id (Id of Reply member)

* **Remove All** ($wf-reply/campaign/removeAll)

*Remove people from all campaign*

- Workflow data :
- api_key (Reply API Key)
- Post data :
- email (Email of member) or reply_id (Id of Reply member)
5 changes: 5 additions & 0 deletions jobs/add.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
const replyService = require('../services/service');

/**
* LEGACY
* @param job
* @returns {Promise<void>}
*/
module.exports = async(job) => {

const {
Expand Down
42 changes: 42 additions & 0 deletions jobs/campaign/add.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
const replyService = require('../../services/service');

module.exports = async(job) => {

const {
body,
workflow: {
data: wfData
}
} = job.data;

if(!wfData || !wfData.api_key) {
throw new Error('Missing data api_key');
}

if(!wfData || !wfData.campaign_id) {
throw new Error('Missing data campaign id');
}

if(!body) {
throw new Error('Missing body');
}

let people = null;

if (body.reply_id) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?id=${body.reply_id}`);
} else if(body.email) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?email=${encodeURIComponent(body.email)}`);
} else {
throw new Error('Missing email or reply_id');
}

job.progress(50);

await replyService.api(wfData.api_key).send('POST', `/v1/actions/pushtocampaign`, {
campaignId: parseInt(wfData.campaign_id, 10),
email: people.email,
});

job.progress(100);
};
41 changes: 41 additions & 0 deletions jobs/campaign/remove.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
const replyService = require('../../services/service');

module.exports = async(job) => {

const {
body,
workflow: {
data: wfData
}
} = job.data;

if(!wfData || !wfData.api_key) {
throw new Error('Missing data api_key');
}

if(!wfData || !wfData.campaign_id) {
throw new Error('Missing data campaign id');
}

if(!body) {
throw new Error('Missing body');
}

let people = null;

if (body.reply_id) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?id=${body.reply_id}`);
} else if(body.email) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?email=${encodeURIComponent(body.email)}`);
} else {
throw new Error('Missing email or reply_id');
}

job.progress(50);

await replyService.api(wfData.api_key).send('POST', `/v1/actions/removepersonfromcampaignbyid`, {
campaignId: parseInt(wfData.campaign_id, 10),
email: people.email,
});
job.progress(100);
};
36 changes: 36 additions & 0 deletions jobs/campaign/removeAll.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
const replyService = require('../../services/service');

module.exports = async(job) => {

const {
body,
workflow: {
data: wfData
}
} = job.data;

if(!wfData || !wfData.api_key) {
throw new Error('Missing data api_key');
}

if(!body) {
throw new Error('Missing body');
}

let people = null;

if (body.reply_id) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?id=${body.reply_id}`);
} else if(body.email) {
people = await replyService.api(wfData.api_key).send('GET', `/v1/people?email=${encodeURIComponent(body.email)}`);
} else {
throw new Error('Missing email or reply_id');
}

job.progress(50);

await replyService.api(wfData.api_key).send('POST', `/v1/actions/removepersonfromallcampaigns`, {
email: people.email,
});
job.progress(100);
};
6 changes: 6 additions & 0 deletions jobs/people/add.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
const replyService = require('../../services/service');

module.exports = async(job) => {

job.progress(100);
};
5 changes: 5 additions & 0 deletions jobs/remove.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
const replyService = require('../services/service');

/**
* LEGACY
* @param job
* @returns {Promise<void>}
*/
module.exports = async(job) => {

const {
Expand Down

0 comments on commit ed7b416

Please sign in to comment.