Skip to content

Commit f7da86a

Browse files
committed
feat: Add archived field to RoomDocument and update RoomController
1 parent 86d91a2 commit f7da86a

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

src/controllers/room.controller.ts

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface RoomDocument extends Models.Document {
3232
copilot: string[];
3333
typing: boolean[];
3434
unseen: number[];
35+
archived: string[];
3536
}
3637

3738
export default class RoomController {
@@ -153,7 +154,7 @@ export default class RoomController {
153154
const sender: string = req.headers["x-appwrite-user-id"] as string;
154155
const jwt: string = req.headers["x-appwrite-jwt"] as string;
155156
const roomId: string = req.params.id;
156-
const data: any = req.body;
157+
const data: { copilot?: boolean; archived?: boolean } = req.body;
157158

158159
// Disallow fields that should not be updated
159160
const disallowedFields = ["users"];
@@ -190,12 +191,9 @@ export default class RoomController {
190191
sender
191192
)) as UserDocument;
192193
if (!currentUserDoc.badges?.includes("early-adopter")) {
193-
return res
194-
.status(403)
195-
.json({
196-
message:
197-
"You need to have early-adopter badge to update this room.",
198-
});
194+
return res.status(403).json({
195+
message: "You need to have early-adopter badge to update this room.",
196+
});
199197
}
200198

201199
// Check if user is a member of the room
@@ -220,12 +218,27 @@ export default class RoomController {
220218
room.copilot = room.copilot.filter((item) => item !== sender);
221219
}
222220

221+
// Update archived field
222+
const isSenderInArchived = room.archived.includes(sender);
223+
if (data.archived && !isSenderInArchived) {
224+
console.log("Archived set to the current user.");
225+
room.archived.push(sender);
226+
} else if (!data.archived && isSenderInArchived) {
227+
console.log("Archived removed from the room.");
228+
room.archived = room.archived.filter((item) => item !== sender);
229+
}
230+
231+
console.log(room.copilot, room.archived);
232+
223233
// Update the room
224234
const updatedRoom = await database.updateDocument(
225235
env.APP_DATABASE,
226236
env.ROOMS_COLLECTION,
227237
roomId,
228-
{ copilot: room.copilot }
238+
{
239+
copilot: room.copilot,
240+
archived: room.archived,
241+
}
229242
);
230243

231244
if (updatedRoom?.$id) {

0 commit comments

Comments
 (0)