Merge pull request #11707 from cvuorinen/11682-quest-invitation-webhook

Quest invitation webhook
This commit is contained in:
Matteo Pagliazzi
2020-01-14 13:06:31 +01:00
committed by GitHub
7 changed files with 143 additions and 6 deletions
+9 -1
View File
@@ -18,6 +18,7 @@ import {
import common from '../../../common';
import { sendNotification as sendPushNotification } from '../../libs/pushNotifications';
import apiError from '../../libs/apiError';
import { questActivityWebhook } from '../../libs/webhook';
const questScrolls = common.content.quests;
@@ -79,7 +80,7 @@ api.inviteToQuest = {
'party._id': group._id,
_id: { $ne: user._id },
})
.select('auth.facebook auth.google auth.local preferences.emailNotifications preferences.pushNotifications preferences.language profile.name pushDevices')
.select('auth.facebook auth.google auth.local preferences.emailNotifications preferences.pushNotifications preferences.language profile.name pushDevices webhooks')
.exec();
group.markModified('quest');
@@ -132,6 +133,13 @@ api.inviteToQuest = {
);
}
// Send webhooks
questActivityWebhook.send(member, {
type: 'questInvited',
group,
quest,
});
return member.preferences.emailNotifications.invitedQuest !== false;
});
sendTxnEmail(membersToEmail, `invite-${quest.boss ? 'boss' : 'collection'}-quest`, [
+29 -4
View File
@@ -35,8 +35,8 @@ const api = {};
* @apiParam (Body) {String} [label] A label to remind you what this webhook does
* @apiParam (Body) {Boolean} [enabled=true] If the webhook should be enabled
* @apiParam (Body) {String="taskActivity","groupChatReceived",
"userActivity"} [type="taskActivity"] The webhook's type.
* @apiParam (Body) {Object} [options] The webhook's options. Wil differ depending on type.
"userActivity","questActivity"} [type="taskActivity"] The webhook's type.
* @apiParam (Body) {Object} [options] The webhook's options. Will differ depending on type.
* Required for `groupChatReceived` type.
* If a webhook supports options, the default values
* are displayed in the examples below
@@ -63,6 +63,30 @@ const api = {};
* "groupId": "required-uuid-of-group"
* }
* }
* @apiParamExample {json} User Activity Example
* {
* "enabled": true,
* "url": "http://some-webhook-url.com",
* "label": "My Activity Webhook",
* "type": "userActivity",
* "options": { // set at least one to true
* "petHatched": false, // default
* "mountRaised": false, // default
* "leveledUp": false, // default
* }
* }
* @apiParamExample {json} Quest Activity Example
* {
* "enabled": true,
* "url": "http://some-webhook-url.com",
* "label": "My Quest Webhook",
* "type": "questActivity",
* "options": { // set at least one to true
* "questStarted": false, // default
* "questFinished": false, // default
* "questInvited": false, // default
* }
* }
* @apiParamExample {json} Minimal Example
* {
* "url": "http://some-webhook-url.com"
@@ -131,8 +155,9 @@ api.getWebhook = {
* @apiParam (Body) {String} [url] The webhook's URL
* @apiParam (Body) {String} [label] A label to remind you what this webhook does
* @apiParam (Body) {Boolean} [enabled] If the webhook should be enabled
* @apiParam (Body) {String="taskActivity","groupChatReceived"} [type] The webhook's type.
* @apiParam (Body) {Object} [options] The webhook's options. Wil differ depending on type.
* @apiParam (Body) {String="taskActivity","groupChatReceived",
* "userActivity","questActivity"} [type] The webhook's type.
* @apiParam (Body) {Object} [options] The webhook's options. Will differ depending on type.
* The options are enumerated in the
* [add webhook examples](#api-Webhook-UserAddWebhook).
* @apiParamExample {json} Update Enabled and Type Properties