2016-12-01 11:42:06 -05:00
|
|
|
'use strict';
|
|
|
|
|
|
2021-07-16 13:44:42 -04:00
|
|
|
const sockets = require('.');
|
|
|
|
|
const api = require('../api');
|
2016-12-01 11:42:06 -05:00
|
|
|
|
2019-09-13 23:34:52 -04:00
|
|
|
const SocketFlags = module.exports;
|
2016-12-01 11:42:06 -05:00
|
|
|
|
2019-09-13 23:34:52 -04:00
|
|
|
SocketFlags.create = async function (socket, data) {
|
2021-07-16 13:44:42 -04:00
|
|
|
sockets.warnDeprecated(socket, 'POST /api/v3/flags');
|
|
|
|
|
const response = await api.flags.create(socket, data);
|
|
|
|
|
if (response) {
|
|
|
|
|
return response.flagId;
|
2016-12-01 11:42:06 -05:00
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2019-09-13 23:34:52 -04:00
|
|
|
SocketFlags.update = async function (socket, data) {
|
2021-07-16 13:44:42 -04:00
|
|
|
sockets.warnDeprecated(socket, 'PUT /api/v3/flags/:flagId');
|
|
|
|
|
if (!data || !(data.flagId && data.data)) { // check only req'd in socket.io
|
2019-09-13 23:34:52 -04:00
|
|
|
throw new Error('[[error:invalid-data]]');
|
2016-12-01 11:42:06 -05:00
|
|
|
}
|
|
|
|
|
|
2021-07-16 13:44:42 -04:00
|
|
|
// Old socket method took input directly from .serializeArray(), v3 expects fully-formed obj.
|
|
|
|
|
let payload = {
|
|
|
|
|
flagId: data.flagId,
|
|
|
|
|
};
|
2021-02-04 00:01:39 -07:00
|
|
|
payload = data.data.reduce((memo, cur) => {
|
2019-09-13 23:34:52 -04:00
|
|
|
memo[cur.name] = cur.value;
|
|
|
|
|
return memo;
|
|
|
|
|
}, payload);
|
2016-12-01 11:42:06 -05:00
|
|
|
|
2021-07-16 13:44:42 -04:00
|
|
|
return await api.flags.update(socket, payload);
|
2016-12-01 11:42:06 -05:00
|
|
|
};
|
|
|
|
|
|
2019-09-13 23:34:52 -04:00
|
|
|
SocketFlags.appendNote = async function (socket, data) {
|
2021-07-16 13:44:42 -04:00
|
|
|
sockets.warnDeprecated(socket, 'POST /api/v3/flags/:flagId/notes');
|
2016-12-01 11:42:06 -05:00
|
|
|
if (!data || !(data.flagId && data.note)) {
|
2019-09-13 23:34:52 -04:00
|
|
|
throw new Error('[[error:invalid-data]]');
|
2016-12-01 11:42:06 -05:00
|
|
|
}
|
2021-07-16 13:44:42 -04:00
|
|
|
|
|
|
|
|
return await api.flags.appendNote(socket, data);
|
2016-12-01 11:42:06 -05:00
|
|
|
};
|
2019-09-13 23:34:52 -04:00
|
|
|
|
2020-07-13 20:29:05 -04:00
|
|
|
SocketFlags.deleteNote = async function (socket, data) {
|
|
|
|
|
if (!data || !(data.flagId && data.datetime)) {
|
|
|
|
|
throw new Error('[[error:invalid-data]]');
|
|
|
|
|
}
|
|
|
|
|
|
2021-07-16 13:44:42 -04:00
|
|
|
return await api.flags.deleteNote(socket, data);
|
2020-07-13 20:29:05 -04:00
|
|
|
};
|
|
|
|
|
|
2019-09-13 23:34:52 -04:00
|
|
|
require('../promisify')(SocketFlags);
|