Подія MyChat Server: OnKanbanTaskMove, перенесення завдання між етапами
Подія, що виникає при перенесенні завдання у канбан-проєкті з одного етапу до іншого.
Шаблон події
function OnKanbanTaskMove(iCID: int64; iUIN: integer; var sJSONData: string): boolean;
begin
// your own code
result := true;
end;
begin
end.
Замість коментаря може бути будь-який ваш код.
Опис параметрів
Параметр |
Тип |
Значення |
iCID |
int64 |
Connection ID клієнта-відправника, унікальний сеансовий ідентифікатор в онлайн структурі мережевих підключень до сервера; |
iUIN |
integer |
унікальний ідентифікатор відправника команди (число > 0); |
sJSONData |
string |
параметр, що змінюється, вміст команди у вигляді текстової JSON-рядка. |
Параметр sJSONData |
Тип |
Значення |
ID |
integer |
ідентифікатор задачі, число; |
IDStage |
integer |
ідентифікатор етапу, куди переміщається завдання, число. |
Значення, що повертається
Стандартно функція повинна повертати true, проте, якщо ви повернете false, завдання не буде переміщене, а клієнтська програма отримає помилку #0332. Ви також можете відредагувати об'єкт JSON, змінивши параметри команди на інші.
Приклад
Перехоплюємо подію та повідомляємо про це вказаного користувача приватним повідомленням у чаті.
const
// UIN користувача, якого повідомлятимемо про подію
CI_USER_UIN = 17680;
// від імені якого користувача буде надіслано приватне повідомлення
CI_USER_FROM = 3;
function OnKanbanTaskMove(iCID: int64; iUIN: integer; var sJSONData: string): boolean;
var
iTaskID, iStageID, iProjectID: integer;
sStageName, sProjectName, sTaskName, sMsg, sUserName: string;
begin
// отримуємо інформацію з JSON-об'єкту
JSONGetInteger(sJSONData, 'ID', iTaskID);
JSONGetInteger(sJSONData, 'IDStage', iStageID);
// отримати ідентифікатор канбан-проєкту за номером етапу
iProjectID := mKanbanGetProjectIDByStageID(iStageID);
// отримуємо текстові назви етапу, проєкту та завдання
sStageName := mKanbanGetStageNameByID(iStageID);
sProjectName := mKanbanGetProjectNameByID(iProjectID);
sTaskName := mKanbanGetTaskNameByID(iTaskID);
// ім'я користувача, що переніс завдання
sUserName := mGetUserAttribute(iUIN, 'DisplayName');
// формуємо текст повідомлення для користувача, якого ми автоматично повідомляємо
// про подію перенесення завдання на інший етап
sMsg := 'User ' + sUserName + ' moved task "' + sTaskName + '" in the project "' +
sProjectName + '" to the stage "' + sStageName + '"';
mSendPrivateMessage(CI_USER_FROM, CI_USER_UIN, sMsg, 1);
// пропускаємо подію для подальшої обробки
result := true;
end;
begin
end.