Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Check weekly ranges for rotws
  • Loading branch information
regalijan committed Feb 6, 2024
1 parent 4f4e516 commit 6aaa96b
Showing 1 changed file with 28 additions and 1 deletion.
29 changes: 28 additions & 1 deletion functions/api/events-team/events/new.ts
Expand Up @@ -5,12 +5,13 @@ export async function onRequestPost(context: RequestContext) {
const now = new Date();
const currentMonth = now.getUTCMonth();
const currentYear = now.getUTCFullYear();
const lastDayOfMonth = new Date(currentYear, currentMonth, 0).getUTCDate();

if (
typeof day !== "number" ||
day < 1 ||
// Last day of that month
day > new Date(currentYear, currentMonth, 0).getUTCDate() ||
day > lastDayOfMonth ||
// Stop people sending weird decimal days
parseInt(day.toString()) !== day ||
typeof details !== "string" ||
Expand All @@ -32,6 +33,32 @@ export async function onRequestPost(context: RequestContext) {
400,
);

if (type === "rotw") {
const weekRanges: { [k: number]: number } = {
0: 7,
1: 14,
2: 21,
3: 28,
4: 35,
};

const weekRange = Math.floor(day / 7);

const existingEventInRange = await context.env.D1.prepare(
"SELECT id FROM events WHERE day > ? AND day <= ? AND month = ? AND type = 'rotw' AND year = ?;",
)
.bind(
weekRanges[weekRange] - 7,
weekRanges[weekRange],
currentMonth,
currentYear,
)
.first();

if (existingEventInRange)
return jsonError("There is already an rotw for that week", 400);
}

const id = `${now.getTime()}${crypto.randomUUID().replaceAll("-", "")}`;

await context.env.D1.prepare(
Expand Down

0 comments on commit 6aaa96b

Please sign in to comment.