1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 05:09:43 +02:00

feat: Webhooks configuration, all events support, refactoring

This commit is contained in:
Maksim Eltyshev 2024-06-12 00:51:36 +02:00
parent 193daf6cfb
commit 87683fe523
96 changed files with 1280 additions and 509 deletions

View file

@ -21,6 +21,14 @@ module.exports = {
custom: valuesValidator,
required: true,
},
project: {
type: 'ref',
required: true,
},
actorUser: {
type: 'ref',
required: true,
},
request: {
type: 'ref',
},
@ -50,6 +58,8 @@ module.exports = {
position: nextPosition,
},
});
// TODO: send webhooks
});
const list = await List.create({
@ -67,12 +77,16 @@ module.exports = {
inputs.request,
);
await sails.helpers.utils.sendWebhook.with({
event: 'LIST_CREATE',
data: list,
projectId: values.board.projectId,
user: inputs.request.currentUser,
board: values.board,
sails.helpers.utils.sendWebhooks.with({
event: 'listCreate',
data: {
item: list,
included: {
projects: [inputs.project],
boards: [values.board],
},
},
user: inputs.actorUser,
});
return list;

View file

@ -4,10 +4,18 @@ module.exports = {
type: 'ref',
required: true,
},
project: {
type: 'ref',
required: true,
},
board: {
type: 'ref',
required: true,
},
actorUser: {
type: 'ref',
required: true,
},
request: {
type: 'ref',
},
@ -26,12 +34,16 @@ module.exports = {
inputs.request,
);
await sails.helpers.utils.sendWebhook.with({
event: 'LIST_DELETE',
data: list,
projectId: inputs.board.projectId,
user: inputs.request.currentUser,
board: inputs.board,
sails.helpers.utils.sendWebhooks.with({
event: 'listDelete',
data: {
item: list,
included: {
projects: [inputs.project],
boards: [inputs.board],
},
},
user: inputs.actorUser,
});
}

View file

@ -11,6 +11,18 @@ module.exports = {
isIn: Object.values(List.SortTypes),
defaultsTo: List.SortTypes.NAME_ASC,
},
project: {
type: 'ref',
required: true,
},
board: {
type: 'ref',
required: true,
},
actorUser: {
type: 'ref',
required: true,
},
request: {
type: 'ref',
},
@ -65,6 +77,19 @@ module.exports = {
inputs.request,
);
sails.helpers.utils.sendWebhooks.with({
event: 'listSort',
data: {
item: inputs.record,
included: {
cards,
projects: [inputs.project],
boards: [inputs.board],
},
},
user: inputs.actorUser,
});
return cards;
},
};

View file

@ -21,10 +21,18 @@ module.exports = {
custom: valuesValidator,
required: true,
},
project: {
type: 'ref',
required: true,
},
board: {
type: 'ref',
required: true,
},
actorUser: {
type: 'ref',
required: true,
},
request: {
type: 'ref',
},
@ -57,6 +65,8 @@ module.exports = {
position: nextPosition,
},
});
// TODO: send webhooks
});
}
@ -72,12 +82,16 @@ module.exports = {
inputs.request,
);
await sails.helpers.utils.sendWebhook.with({
event: 'LIST_UPDATE',
data: list,
projectId: inputs.board.projectId,
user: inputs.request.currentUser,
board: inputs.board,
sails.helpers.utils.sendWebhooks.with({
event: 'listUpdate',
data: {
item: list,
included: {
projects: [inputs.project],
boards: [inputs.board],
},
},
user: inputs.actorUser,
});
}