fix: include createdAt and updatedAt in ColumnPayload mapping
This commit is contained in:
Vendored
+27
-10
@@ -14,6 +14,7 @@ export class BoardService {
|
|||||||
title: title.trim() || 'Agile Kanban Board',
|
title: title.trim() || 'Agile Kanban Board',
|
||||||
adminKeyHash,
|
adminKeyHash,
|
||||||
memberKeyHash,
|
memberKeyHash,
|
||||||
|
memberKey,
|
||||||
autoMoveStale: false,
|
autoMoveStale: false,
|
||||||
columns: {
|
columns: {
|
||||||
create: [
|
create: [
|
||||||
@@ -79,24 +80,24 @@ export class BoardService {
|
|||||||
boardId: col.boardId,
|
boardId: col.boardId,
|
||||||
title: col.title,
|
title: col.title,
|
||||||
order: col.order,
|
order: col.order,
|
||||||
maxWipLimit: col.maxWipLimit || 0,
|
maxWipLimit: col.maxWipLimit,
|
||||||
autoStaleHours: col.autoStaleHours || 0,
|
autoStaleHours: col.autoStaleHours,
|
||||||
createdAt: col.createdAt.toISOString(),
|
createdAt: col.createdAt.toISOString(),
|
||||||
updatedAt: col.updatedAt.toISOString(),
|
updatedAt: col.updatedAt.toISOString(),
|
||||||
tickets: col.tickets.map((t) => {
|
tickets: col.tickets.map((t) => {
|
||||||
let parsedTags = [];
|
let tags = [];
|
||||||
let parsedSubtasks = [];
|
let subtasks = [];
|
||||||
try {
|
try {
|
||||||
parsedTags = JSON.parse(t.tags || '[]');
|
tags = JSON.parse(t.tags || '[]');
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
parsedTags = [];
|
tags = [];
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
parsedSubtasks = JSON.parse(t.subtasks || '[]');
|
subtasks = JSON.parse(t.subtasks || '[]');
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
parsedSubtasks = [];
|
subtasks = [];
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
id: t.id,
|
id: t.id,
|
||||||
@@ -105,8 +106,8 @@ export class BoardService {
|
|||||||
description: t.description,
|
description: t.description,
|
||||||
order: t.order,
|
order: t.order,
|
||||||
priority: t.priority,
|
priority: t.priority,
|
||||||
tags: parsedTags,
|
tags,
|
||||||
subtasks: parsedSubtasks,
|
subtasks,
|
||||||
dueDate: t.dueDate || null,
|
dueDate: t.dueDate || null,
|
||||||
isBlocked: t.isBlocked || false,
|
isBlocked: t.isBlocked || false,
|
||||||
blockedReason: t.blockedReason || null,
|
blockedReason: t.blockedReason || null,
|
||||||
@@ -117,10 +118,25 @@ export class BoardService {
|
|||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
}));
|
}));
|
||||||
|
let memberKeyVal = board.memberKey || '';
|
||||||
|
if (!memberKeyVal && role === 'admin') {
|
||||||
|
const newMemberKey = generateSecureKey(32);
|
||||||
|
const newMemberKeyHash = hashKey(newMemberKey);
|
||||||
|
await prisma.board.update({
|
||||||
|
where: { id: boardId },
|
||||||
|
data: {
|
||||||
|
memberKey: newMemberKey,
|
||||||
|
memberKeyHash: newMemberKeyHash,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
memberKeyVal = newMemberKey;
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
id: board.id,
|
id: board.id,
|
||||||
title: board.title,
|
title: board.title,
|
||||||
role,
|
role,
|
||||||
|
memberKey: memberKeyVal,
|
||||||
|
memberUrlFragment: memberKeyVal ? `/b/${board.id}#member=${memberKeyVal}` : '',
|
||||||
autoMoveStale: board.autoMoveStale || false,
|
autoMoveStale: board.autoMoveStale || false,
|
||||||
columns,
|
columns,
|
||||||
createdAt: board.createdAt.toISOString(),
|
createdAt: board.createdAt.toISOString(),
|
||||||
@@ -137,6 +153,7 @@ export class BoardService {
|
|||||||
where: { id: boardId },
|
where: { id: boardId },
|
||||||
data: {
|
data: {
|
||||||
memberKeyHash: newMemberKeyHash,
|
memberKeyHash: newMemberKeyHash,
|
||||||
|
memberKey: newMemberKey,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
|
|||||||
Vendored
+2
@@ -30,6 +30,8 @@ export interface BoardPayload {
|
|||||||
id: string;
|
id: string;
|
||||||
title: string;
|
title: string;
|
||||||
role: Role;
|
role: Role;
|
||||||
|
memberKey?: string;
|
||||||
|
memberUrlFragment?: string;
|
||||||
autoMoveStale: boolean;
|
autoMoveStale: boolean;
|
||||||
columns: ColumnPayload[];
|
columns: ColumnPayload[];
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
|
|||||||
@@ -93,6 +93,8 @@ export class BoardService {
|
|||||||
order: col.order,
|
order: col.order,
|
||||||
maxWipLimit: col.maxWipLimit,
|
maxWipLimit: col.maxWipLimit,
|
||||||
autoStaleHours: col.autoStaleHours,
|
autoStaleHours: col.autoStaleHours,
|
||||||
|
createdAt: col.createdAt.toISOString(),
|
||||||
|
updatedAt: col.updatedAt.toISOString(),
|
||||||
tickets: col.tickets.map((t) => {
|
tickets: col.tickets.map((t) => {
|
||||||
let tags: string[] = [];
|
let tags: string[] = [];
|
||||||
let subtasks: Subtask[] = [];
|
let subtasks: Subtask[] = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user