export default async function updateRoomProgression()

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,
            },
        });
    }
}