in projects/deliberation_at_scale/packages/orchestrator/src/tasks/updateRoomProgression.ts [30:61]
export default async function updateRoomProgression(payload: UpdateRoomProgressionPayload, helpers: Helpers) {
const { roomId } = payload;
try {
const room = await getRoomById(roomId);
// guard: skip when room is not valid
if (!room) {
helpers.logger.error(`Could not update progression for room ${roomId} because the room was not found.`);
return;
}
const createdAt = dayjs(room?.created_at);
const minCreatedAt = dayjs().subtract(1, "hour").toISOString();
// guard: skip when room is not active anymore
if (!room.active || createdAt.isBefore(minCreatedAt)) {
helpers.logger.info(`Skipping progression for room ${roomId} because it is not active anymore.`);
return;
}
await performRoomProgression(room, payload, helpers);
} catch (error) {
helpers.logger.error(`Could not update progression for room ${payload.roomId}: ${error}`);
captureEvent({
message: `Could not update progression for room ${payload.roomId}: ${error}`,
extra: {
payload,
},
});
}
}