diff --git a/app/(api)/_actions/auth/login.ts b/app/(api)/_actions/auth/login.ts index cf30a305..89598e4c 100644 --- a/app/(api)/_actions/auth/login.ts +++ b/app/(api)/_actions/auth/login.ts @@ -7,7 +7,7 @@ import { HttpError, NotAuthenticatedError } from '@utils/response/Errors'; import FormToJSON from '@utils/form/FormToJSON'; import type AuthTokenInt from '@typeDefs/authToken'; -import JudgeInt from '@typeDefs/judges'; +import JudgeInt from '@typeDefs/judge'; export default async function LoginAction( prevState: any, @@ -19,11 +19,10 @@ export default async function LoginAction( }> { try { const body = FormToJSON(formData) as JudgeInt; - const res = await Login(body); - const data = await res.json(); + const data = await Login(body); - if (!data.ok) { - throw new NotAuthenticatedError(data.error); + if (!data.ok || !data.body) { + throw new NotAuthenticatedError(data.error as string); } const payload = jwt.decode(data.body) as AuthTokenInt; @@ -36,9 +35,9 @@ export default async function LoginAction( httpOnly: true, }); - return { ok: true, body: payload || null }; + return { ok: true, body: payload || null, error: null }; } catch (e) { const error = e as HttpError; - return { ok: false, error: error.message }; + return { ok: false, body: null, error: error.message }; } } diff --git a/app/(api)/_actions/auth/register.ts b/app/(api)/_actions/auth/register.ts index df64eb9a..f43d9d57 100644 --- a/app/(api)/_actions/auth/register.ts +++ b/app/(api)/_actions/auth/register.ts @@ -7,7 +7,7 @@ import { HttpError, NotAuthenticatedError } from '@utils/response/Errors'; import FormToJSON from '@utils/form/FormToJSON'; import type AuthTokenInt from '@typeDefs/authToken'; -import type JudgeInt from '@typeDefs/judges'; +import type JudgeInt from '@typeDefs/judge'; export default async function RegisterAction( prevState: any, @@ -20,11 +20,10 @@ export default async function RegisterAction( try { const body = FormToJSON(formData) as JudgeInt; - const res = await Register(body); - const data = await res.json(); + const data = await Register(body); - if (!data.ok) { - throw new NotAuthenticatedError(data.error); + if (!data.ok || !data.body) { + throw new NotAuthenticatedError(data.error as string); } const payload = jwt.decode(data.body) as AuthTokenInt; diff --git a/app/(api)/_actions/auth/resetPassword.ts b/app/(api)/_actions/auth/resetPassword.ts index 31f8d5ee..3ee04386 100644 --- a/app/(api)/_actions/auth/resetPassword.ts +++ b/app/(api)/_actions/auth/resetPassword.ts @@ -14,11 +14,10 @@ export default async function ResetPasswordAction( }> { try { const body = FormToJSON(formData) as { email: string; password: string }; - const res = await ResetPassword(body); - const data = await res.json(); + const data = await ResetPassword(body); if (!data.ok) { - throw new HttpError(data.error); + throw new HttpError(data.error as string); } return { ok: true, body: data || null, error: null }; diff --git a/app/(api)/_actions/helpTimers/getHelpTimer.ts b/app/(api)/_actions/helpTimers/getHelpTimer.ts index c5ec887e..c533c97b 100644 --- a/app/(api)/_actions/helpTimers/getHelpTimer.ts +++ b/app/(api)/_actions/helpTimers/getHelpTimer.ts @@ -3,10 +3,10 @@ import { GetHelpTimers, GetNextTimer } from '@datalib/helpTimers/getHelpTimer'; export async function getHelperTimers(query: object = {}) { const timers = await GetHelpTimers(query); - return timers.json(); + return timers; } export async function getNextTimer() { const timer = await GetNextTimer(); - return timer.json(); + return timer; } diff --git a/app/(api)/_actions/judgeGroups/getJudgeGroup.ts b/app/(api)/_actions/judgeGroups/getJudgeGroup.ts index aa9eb4fa..5f6fab60 100644 --- a/app/(api)/_actions/judgeGroups/getJudgeGroup.ts +++ b/app/(api)/_actions/judgeGroups/getJudgeGroup.ts @@ -8,11 +8,11 @@ import parseAndReplace from '@utils/request/parseAndReplace'; export async function getJudgeGroup(group_id: string) { const judgeGroupRes = await GetJudgeGroup(group_id); - return judgeGroupRes.json(); + return judgeGroupRes; } export async function getManyJudgeGroups(query: object = {}) { const newQuery = await parseAndReplace(query); const judgeGroupRes = await GetManyJudgeGroups(newQuery); - return judgeGroupRes.json(); + return judgeGroupRes; } diff --git a/app/(api)/_actions/judges/getJudge.ts b/app/(api)/_actions/judges/getJudge.ts index 869de9e3..f03dc943 100644 --- a/app/(api)/_actions/judges/getJudge.ts +++ b/app/(api)/_actions/judges/getJudge.ts @@ -3,10 +3,10 @@ import { GetJudge, GetManyJudges } from '@datalib/judges/getJudge'; export async function getJudge(id: string) { const judgeRes = await GetJudge(id); - return judgeRes.json(); + return judgeRes; } export async function getManyJudges(query: object = {}) { const judgeRes = await GetManyJudges(query); - return judgeRes.json(); + return judgeRes; } diff --git a/app/(api)/_actions/logic/groupJudges.ts b/app/(api)/_actions/logic/groupJudges.ts index 3a463d06..17523b53 100644 --- a/app/(api)/_actions/logic/groupJudges.ts +++ b/app/(api)/_actions/logic/groupJudges.ts @@ -12,7 +12,7 @@ export default async function groupJudges() { try { const allPromises = await Promise.all( groups.map(async (group) => { - return await (await CreateJudgeGroup(group)).json(); + return await CreateJudgeGroup(group); }) ); diff --git a/app/(api)/_actions/logic/ingestCSV.ts b/app/(api)/_actions/logic/ingestCSV.ts index 28883c86..69739f5b 100644 --- a/app/(api)/_actions/logic/ingestCSV.ts +++ b/app/(api)/_actions/logic/ingestCSV.ts @@ -1,8 +1,9 @@ 'use server'; import { CreateManyTeams } from '@datalib/teams/createTeams'; +import parsedRecordInt from '@typeDefs/parsedRecord'; -export default async function ingestCSV(parsedData: []) { - const res = await (await CreateManyTeams(parsedData)).json(); +export default async function ingestCSV(parsedData: parsedRecordInt[]) { + const res = await CreateManyTeams(parsedData); return { ok: res.ok, error: res.error }; } diff --git a/app/(api)/_actions/logic/scoreTeams.ts b/app/(api)/_actions/logic/scoreTeams.ts index 8ad773fd..8d41b0d5 100644 --- a/app/(api)/_actions/logic/scoreTeams.ts +++ b/app/(api)/_actions/logic/scoreTeams.ts @@ -1,7 +1,7 @@ 'use server'; import { getManyTeams } from '@actions/teams/getTeams'; -import Team from '@typeDefs/teams'; +import Team from '@typeDefs/team'; import rankTeams from '@utils/scoring/rankTeams'; export default async function scoreTeams() { diff --git a/app/(api)/_actions/logic/uploadFile.ts b/app/(api)/_actions/logic/uploadFile.ts index d9de72c8..57ce7ccf 100644 --- a/app/(api)/_actions/logic/uploadFile.ts +++ b/app/(api)/_actions/logic/uploadFile.ts @@ -8,5 +8,5 @@ export default async function uploadFile(formData: FormData) { const blob = new Blob([data], { type: file.type }); const res = await csvAlgorithm(blob); - return await res.json(); + return res; } diff --git a/app/(api)/_actions/submissions/getSubmission.ts b/app/(api)/_actions/submissions/getSubmission.ts index 23ab5ac1..369cbb6a 100644 --- a/app/(api)/_actions/submissions/getSubmission.ts +++ b/app/(api)/_actions/submissions/getSubmission.ts @@ -7,12 +7,12 @@ import { import parseAndReplace from '@utils/request/parseAndReplace'; export async function getSubmission(judge_id: string, team_id: string) { - const submissionRes = await GetSubmission(judge_id, team_id); - return submissionRes.json(); + const submission = await GetSubmission(judge_id, team_id); + return submission; } export async function getManySubmissions(query: object = {}) { const newQuery = await parseAndReplace(query); - const submissionRes = await GetManySubmissions(newQuery); - return submissionRes.json(); + const submissions = await GetManySubmissions(newQuery); + return submissions; } diff --git a/app/(api)/_actions/submissions/updateSubmission.ts b/app/(api)/_actions/submissions/updateSubmission.ts index 1706952f..480cc8a9 100644 --- a/app/(api)/_actions/submissions/updateSubmission.ts +++ b/app/(api)/_actions/submissions/updateSubmission.ts @@ -23,5 +23,5 @@ export default async function updateSubmission( }; const updateRes = await UpdateSubmission(judge_id, team_id, updateBody); - return await updateRes.json(); + return updateRes; } diff --git a/app/(api)/_actions/teams/getTeams.ts b/app/(api)/_actions/teams/getTeams.ts index da003368..f307e85c 100644 --- a/app/(api)/_actions/teams/getTeams.ts +++ b/app/(api)/_actions/teams/getTeams.ts @@ -4,12 +4,12 @@ import { GetManyTeams, GetTeam } from '@datalib/teams/getTeam'; import parseAndReplace from '@utils/request/parseAndReplace'; export async function getTeam(id: string) { - const teamRes = await GetTeam(id); - return teamRes.json(); + const team = await GetTeam(id); + return team; } export async function getManyTeams(query: object = {}) { const newQuery = await parseAndReplace(query); - const teamRes = await GetManyTeams(newQuery); - return teamRes.json(); + const teams = await GetManyTeams(newQuery); + return teams; } diff --git a/app/(api)/_datalib/auth/authToken.ts b/app/(api)/_datalib/auth/authToken.ts index 8516b70d..7b495757 100644 --- a/app/(api)/_datalib/auth/authToken.ts +++ b/app/(api)/_datalib/auth/authToken.ts @@ -18,9 +18,9 @@ export async function verifyAuthToken(token: string) { if (decodedToken.exp && decodedToken.exp < currentTimestamp) { throw new HttpError('token has expired'); } - return { ok: true, body: decodedToken }; + return { ok: true, body: decodedToken, error: null }; } catch (e) { const error = e as HttpError; - return { ok: false, error: error.message }; + return { ok: false, body: null, error: error.message }; } } diff --git a/app/(api)/_datalib/auth/login.ts b/app/(api)/_datalib/auth/login.ts index 3f468aa7..5f5f6e8f 100644 --- a/app/(api)/_datalib/auth/login.ts +++ b/app/(api)/_datalib/auth/login.ts @@ -1,6 +1,4 @@ 'use server'; -import { NextResponse } from 'next/server'; - import bcrypt from 'bcryptjs'; import { HttpError, NotAuthenticatedError } from '@utils/response/Errors'; @@ -12,8 +10,7 @@ export async function Login(body: { email: string; password: string }) { const { email, password } = body; // Find Judge - const res = await GetManyJudges({ email }); - const data = await res.json(); + const data = await GetManyJudges({ email }); if (!data.ok || data.body.length === 0) { throw new NotAuthenticatedError('Judge not found'); } @@ -30,15 +27,9 @@ export async function Login(body: { email: string; password: string }) { } const token = await createAuthToken(judge); - return NextResponse.json( - { ok: true, body: token, error: null }, - { status: 200 } - ); + return { ok: true, body: token, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } } diff --git a/app/(api)/_datalib/auth/register.ts b/app/(api)/_datalib/auth/register.ts index fefa3f0d..639bccff 100644 --- a/app/(api)/_datalib/auth/register.ts +++ b/app/(api)/_datalib/auth/register.ts @@ -1,12 +1,11 @@ 'use server'; -import { NextResponse } from 'next/server'; import bcrypt from 'bcryptjs'; import { CreateJudge } from '@datalib/judges/createJudge'; import { DuplicateError, HttpError } from '@utils/response/Errors'; import { GetManyJudges } from '@datalib/judges/getJudge'; import { createAuthToken } from './authToken'; -import JudgeInt from '@typeDefs/judges'; +import JudgeInt from '@typeDefs/judge'; export async function Register(body: JudgeInt) { try { @@ -14,27 +13,26 @@ export async function Register(body: JudgeInt) { const hashedPassword = await bcrypt.hash(password as string, 10); // Find Judge - const judgeRes = await GetManyJudges({ email }); - const judgeData = await judgeRes.json(); + const judgeData = await GetManyJudges({ email }); if (!judgeData.ok || judgeData.body.length !== 0) { throw new DuplicateError('Judge already exists'); } // Create Judge - const res = await CreateJudge({ email, password: hashedPassword, ...rest }); - const data = await res.json(); + const data = await CreateJudge({ + email, + password: hashedPassword, + ...rest, + }); if (!data.ok) { throw new HttpError('Failed to create judge'); } const token = await createAuthToken(data.body); - return NextResponse.json({ ok: true, body: token }, { status: 200 }); + return { ok: true, body: token, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, error: error.message }; } } diff --git a/app/(api)/_datalib/auth/resetPassword.ts b/app/(api)/_datalib/auth/resetPassword.ts index 7abcee73..0f9be3a1 100644 --- a/app/(api)/_datalib/auth/resetPassword.ts +++ b/app/(api)/_datalib/auth/resetPassword.ts @@ -1,5 +1,4 @@ 'use server'; -import { NextResponse } from 'next/server'; import bcrypt from 'bcryptjs'; import { GetManyJudges } from '@datalib/judges/getJudge'; @@ -12,30 +11,21 @@ export async function ResetPassword(body: { email: string; password: string }) { const hashedPassword = await bcrypt.hash(password as string, 10); // Find Judge - const judge_res = await GetManyJudges({ email }); - const judge_data = await judge_res.json(); + const judge_data = await GetManyJudges({ email }); if (!judge_data.ok || judge_data.body.length === 0) { throw new HttpError('Judge not found'); } // UpdateJudge - const updateRes = await UpdateJudge(judge_data.body[0]._id, { + const updateData = await UpdateJudge(judge_data.body[0]._id, { $set: { password: hashedPassword, }, }); - const updateData = await updateRes.json(); - - return NextResponse.json( - { ok: true, body: updateData, error: null }, - { status: 200 } - ); + return { ok: true, body: updateData, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } } diff --git a/app/(api)/_datalib/helpTimers/createHelpTimer.ts b/app/(api)/_datalib/helpTimers/createHelpTimer.ts index a7d18a56..c2ffa3f2 100644 --- a/app/(api)/_datalib/helpTimers/createHelpTimer.ts +++ b/app/(api)/_datalib/helpTimers/createHelpTimer.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; @@ -18,15 +17,9 @@ export const CreateHelpTimer = async (body: object) => { _id: new ObjectId(creationStatus.insertedId), }); - return NextResponse.json( - { ok: true, body: helpTimer, error: null }, - { status: 201 } - ); + return { ok: true, body: helpTimer, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/helpTimers/getHelpTimer.ts b/app/(api)/_datalib/helpTimers/getHelpTimer.ts index 6d377599..9d81e7a1 100644 --- a/app/(api)/_datalib/helpTimers/getHelpTimer.ts +++ b/app/(api)/_datalib/helpTimers/getHelpTimer.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError } from '@utils/response/Errors'; @@ -33,16 +32,10 @@ export const GetNextTimer = async () => { throw new HttpError('No upcoming event'); } - return NextResponse.json( - { ok: true, body: timers_sorted[out_index], error: null }, - { status: 200 } - ); + return { ok: true, body: timers_sorted[out_index], error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -52,15 +45,9 @@ export const GetHelpTimers = async (query: object = {}) => { const timers = await db.collection('helpTimers').find(query).toArray(); - return NextResponse.json( - { ok: true, body: timers, error: null }, - { status: 200 } - ); + return { ok: true, body: timers, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/createJudgeGroup.ts b/app/(api)/_datalib/judgeGroups/createJudgeGroup.ts index f4219129..29e66d78 100644 --- a/app/(api)/_datalib/judgeGroups/createJudgeGroup.ts +++ b/app/(api)/_datalib/judgeGroups/createJudgeGroup.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; @@ -67,15 +66,9 @@ export const CreateJudgeGroup = async (body: object) => { { $set: { judge_group_id: judgeGroupId } } ); - return NextResponse.json( - { ok: true, body: judge_group, error: null }, - { status: 201 } - ); + return { ok: true, body: judge_group, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/deleteJudgeGroup.ts b/app/(api)/_datalib/judgeGroups/deleteJudgeGroup.ts index 8daa6c0e..ec791e25 100644 --- a/app/(api)/_datalib/judgeGroups/deleteJudgeGroup.ts +++ b/app/(api)/_datalib/judgeGroups/deleteJudgeGroup.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { NotFoundError, HttpError } from '@utils/response/Errors'; @@ -13,16 +12,10 @@ export const DeleteManyJudgeGroups = async (query: object = {}) => { .collection('judges') .updateMany(query, { $unset: { judge_group_id: '' } }); - return NextResponse.json( - { ok: true, body: 'Judge Groups deleted', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Judge Groups deleted', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -47,15 +40,9 @@ export const DeleteJudgeGroup = async (id: string) => { { $unset: { judge_group_id: '' } } ); - return NextResponse.json( - { ok: true, body: 'Judge Group deleted', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Judge Group deleted', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/deleteJudgeGroupToTeam.ts b/app/(api)/_datalib/judgeGroups/deleteJudgeGroupToTeam.ts index c14fa3a1..19118cca 100644 --- a/app/(api)/_datalib/judgeGroups/deleteJudgeGroupToTeam.ts +++ b/app/(api)/_datalib/judgeGroups/deleteJudgeGroupToTeam.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError } from '@utils/response/Errors'; @@ -8,15 +7,9 @@ export const DeleteManyJudgeGroupsToTeams = async (query: object = {}) => { await db.collection('judgeGroupToTeams').deleteMany(query); - return NextResponse.json( - { ok: true, body: 'Judge Group to Teams deleted', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Judge Group to Teams deleted', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/getJudgeGroup.ts b/app/(api)/_datalib/judgeGroups/getJudgeGroup.ts index 963274a8..b8ab3aae 100644 --- a/app/(api)/_datalib/judgeGroups/getJudgeGroup.ts +++ b/app/(api)/_datalib/judgeGroups/getJudgeGroup.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError, NotFoundError } from '@utils/response/Errors'; import { ObjectId } from 'mongodb'; @@ -48,16 +47,10 @@ export const GetJudgeGroup = async (id: string) => { throw new NotFoundError('Judge group not found'); } - return NextResponse.json( - { ok: true, body: judgeGroups[0], error: null }, - { status: 200 } - ); + return { ok: true, body: judgeGroups[0], error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -99,15 +92,9 @@ export const GetManyJudgeGroups = async (query: object = {}) => { .project({ judgeGroupsToTeams: 0, 'judges.judge_group_id': 0 }) .toArray(); - return NextResponse.json( - { ok: true, body: judgeGroups, error: null }, - { status: 200 } - ); + return { ok: true, body: judgeGroups, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/getJudgeGroupToTeam.ts b/app/(api)/_datalib/judgeGroups/getJudgeGroupToTeam.ts index 377eefc8..c51d7884 100644 --- a/app/(api)/_datalib/judgeGroups/getJudgeGroupToTeam.ts +++ b/app/(api)/_datalib/judgeGroups/getJudgeGroupToTeam.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError } from '@utils/response/Errors'; @@ -31,15 +30,9 @@ export const GetManyJudgeGroupToTeams = async (query: object = {}) => { ]) .toArray(); - return NextResponse.json( - { ok: true, body: judgeGroupsToTeams, error: null }, - { status: 200 } - ); + return { ok: true, body: judgeGroupsToTeams, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/linkJudgeGroupToTeam.ts b/app/(api)/_datalib/judgeGroups/linkJudgeGroupToTeam.ts index 068b4305..be3284bc 100644 --- a/app/(api)/_datalib/judgeGroups/linkJudgeGroupToTeam.ts +++ b/app/(api)/_datalib/judgeGroups/linkJudgeGroupToTeam.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; @@ -78,16 +77,10 @@ export const LinkManyJudgeGroupsToTeams = async (body: object[]) => { }) .toArray(); - return NextResponse.json( - { ok: true, body: await links, error: null }, - { status: 201 } - ); + return { ok: true, body: await links, error: null, status: 201 }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -144,15 +137,9 @@ export const LinkJudgeGroupToTeam = async (body: { _id: new ObjectId(creationStatus.insertedId), }); - return NextResponse.json( - { ok: true, body: judgeGroupToTeam, error: null }, - { status: 201 } - ); + return { ok: true, body: judgeGroupToTeam, error: null, status: 201 }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judgeGroups/updateJudgeGroup.ts b/app/(api)/_datalib/judgeGroups/updateJudgeGroup.ts index cd63ad69..755ae693 100644 --- a/app/(api)/_datalib/judgeGroups/updateJudgeGroup.ts +++ b/app/(api)/_datalib/judgeGroups/updateJudgeGroup.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; @@ -32,15 +31,9 @@ export const UpdateJudgeGroup = async (id: string, body: object) => { throw new NotFoundError(`Judge Group with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: judgeGroup, error: null }, - { status: 200 } - ); + return { ok: true, body: judgeGroup, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judges/createJudge.ts b/app/(api)/_datalib/judges/createJudge.ts index d32e1e5d..dca6130c 100644 --- a/app/(api)/_datalib/judges/createJudge.ts +++ b/app/(api)/_datalib/judges/createJudge.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; @@ -32,15 +31,9 @@ export const CreateJudge = async (body: object) => { _id: new ObjectId(creationStatus.insertedId), }); - return NextResponse.json( - { ok: true, body: judge, error: null }, - { status: 201 } - ); + return { ok: true, body: judge, error: null, status: 201 }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judges/deleteJudge.ts b/app/(api)/_datalib/judges/deleteJudge.ts index fe18a675..38b47e48 100644 --- a/app/(api)/_datalib/judges/deleteJudge.ts +++ b/app/(api)/_datalib/judges/deleteJudge.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError, NotFoundError } from '@utils/response/Errors'; @@ -16,15 +15,9 @@ export const DeleteJudge = async (id: string) => { throw new NotFoundError(`judge with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: 'judge deleted', error: null }, - { status: 200 } - ); + return { ok: true, body: 'judge deleted', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judges/getJudge.ts b/app/(api)/_datalib/judges/getJudge.ts index 1007c3f7..81a16109 100644 --- a/app/(api)/_datalib/judges/getJudge.ts +++ b/app/(api)/_datalib/judges/getJudge.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError, NotFoundError } from '@utils/response/Errors'; import { ObjectId } from 'mongodb'; @@ -16,16 +15,10 @@ export const GetJudge = async (id: string) => { throw new NotFoundError(`judge with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: judge, error: null }, - { status: 200 } - ); + return { ok: true, body: judge, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -34,15 +27,9 @@ export const GetManyJudges = async (query: object = {}) => { const db = await getDatabase(); const judge = await db.collection('judges').find(query).toArray(); - return NextResponse.json( - { ok: true, body: judge, error: null }, - { status: 200 } - ); + return { ok: true, body: judge, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/judges/updateJudge.ts b/app/(api)/_datalib/judges/updateJudge.ts index 218c8a58..49177bd1 100644 --- a/app/(api)/_datalib/judges/updateJudge.ts +++ b/app/(api)/_datalib/judges/updateJudge.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; @@ -31,15 +30,9 @@ export const UpdateJudge = async (id: string, body: object) => { throw new NotFoundError(`Judge with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: judge, error: null }, - { status: 200 } - ); + return { ok: true, body: judge, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/submissions/createSubmission.ts b/app/(api)/_datalib/submissions/createSubmission.ts index 8d26068b..ebbc69f7 100644 --- a/app/(api)/_datalib/submissions/createSubmission.ts +++ b/app/(api)/_datalib/submissions/createSubmission.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; @@ -52,15 +51,9 @@ export const CreateSubmission = async (body: { _id: new ObjectId(creationStatus.insertedId), }); - return NextResponse.json( - { ok: true, body: submission, error: null }, - { status: 201 } - ); + return { ok: true, body: submission, error: null, status: 201 }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/submissions/deleteSubmission.ts b/app/(api)/_datalib/submissions/deleteSubmission.ts index 2792608e..ee6556b9 100644 --- a/app/(api)/_datalib/submissions/deleteSubmission.ts +++ b/app/(api)/_datalib/submissions/deleteSubmission.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; @@ -22,15 +21,9 @@ export const DeleteSubmission = async (judge_id: string, team_id: string) => { ); } - return NextResponse.json( - { ok: true, body: 'Submission deleted.', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Submission deleted.', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/submissions/getSubmissions.ts b/app/(api)/_datalib/submissions/getSubmissions.ts index 8e9c0951..4bc52806 100644 --- a/app/(api)/_datalib/submissions/getSubmissions.ts +++ b/app/(api)/_datalib/submissions/getSubmissions.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import HttpError from '@utils/response/HttpError'; import { ObjectId } from 'mongodb'; @@ -11,16 +10,10 @@ export const GetManySubmissions = async (query: object = {}) => { .find(query) .toArray(); - return NextResponse.json( - { ok: true, body: submissions, error: null }, - { status: 200 } - ); + return { ok: true, body: submissions, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -41,15 +34,9 @@ export const GetSubmission = async (judge_id: string, team_id: string) => { ); } - return NextResponse.json( - { ok: true, body: submission, error: null }, - { status: 200 } - ); + return { ok: true, body: submission, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/submissions/updateSubmission.ts b/app/(api)/_datalib/submissions/updateSubmission.ts index 0dc99e7e..3b9228e2 100644 --- a/app/(api)/_datalib/submissions/updateSubmission.ts +++ b/app/(api)/_datalib/submissions/updateSubmission.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; @@ -37,15 +36,9 @@ export const UpdateSubmission = async ( ); } - return NextResponse.json( - { ok: true, body: 'Submission updated.', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Submission updated.', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/teams/createTeams.ts b/app/(api)/_datalib/teams/createTeams.ts index 7ff167a7..bc94db18 100644 --- a/app/(api)/_datalib/teams/createTeams.ts +++ b/app/(api)/_datalib/teams/createTeams.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import isBodyEmpty from '@utils/request/isBodyEmpty'; import parseAndReplace from '@utils/request/parseAndReplace'; @@ -8,7 +7,7 @@ import { BadRequestError, DuplicateError, } from '@utils/response/Errors'; -import Team from '@typeDefs/teams'; +import Team from '@typeDefs/team'; import tracks from '../../_data/tracks.json' assert { type: 'json' }; export const CreateManyTeams = async (body: object[]) => { @@ -72,15 +71,9 @@ export const CreateManyTeams = async (body: object[]) => { }) .toArray(); - return NextResponse.json( - { ok: true, body: await teams, error: null }, - { status: 201 } - ); + return { ok: true, body: await teams, error: null, status: 201 }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/teams/deleteTeam.ts b/app/(api)/_datalib/teams/deleteTeam.ts index 196a3a7b..2426133d 100644 --- a/app/(api)/_datalib/teams/deleteTeam.ts +++ b/app/(api)/_datalib/teams/deleteTeam.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { ObjectId } from 'mongodb'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; @@ -18,15 +17,9 @@ export const DeleteTeam = async (id: string) => { throw new NotFoundError(`Team with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: 'Team deleted.', error: null }, - { status: 200 } - ); + return { ok: true, body: 'Team deleted.', error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/teams/getTeam.ts b/app/(api)/_datalib/teams/getTeam.ts index c9c95b6f..bf8c5802 100644 --- a/app/(api)/_datalib/teams/getTeam.ts +++ b/app/(api)/_datalib/teams/getTeam.ts @@ -1,4 +1,3 @@ -import { NextResponse } from 'next/server'; import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { HttpError, NotFoundError } from '@utils/response/Errors'; import { ObjectId } from 'mongodb'; @@ -15,16 +14,10 @@ export const GetTeam = async (id: string) => { throw new NotFoundError(`Team with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: team, error: null }, - { status: 200 } - ); + return { ok: true, body: team, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; @@ -51,15 +44,9 @@ export const GetManyTeams = async (query: object = {}) => { }) .toArray(); - return NextResponse.json( - { ok: true, body: teams, error: null }, - { status: 200 } - ); + return { ok: true, body: teams, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_datalib/teams/updateTeam.ts b/app/(api)/_datalib/teams/updateTeam.ts index 98d62965..b6a35c4d 100644 --- a/app/(api)/_datalib/teams/updateTeam.ts +++ b/app/(api)/_datalib/teams/updateTeam.ts @@ -1,5 +1,3 @@ -import { NextResponse } from 'next/server'; - import { getDatabase } from '@utils/mongodb/mongoClient.mjs'; import { ObjectId } from 'mongodb'; @@ -31,15 +29,9 @@ export const UpdateTeam = async (id: string, body: object) => { throw new NotFoundError(`Team with id: ${id} not found.`); } - return NextResponse.json( - { ok: true, body: team, error: null }, - { status: 200 } - ); + return { ok: true, body: team, error: null }; } catch (e) { const error = e as HttpError; - return NextResponse.json( - { ok: false, body: null, error: error.message }, - { status: error.status || 400 } - ); + return { ok: false, body: null, error: error.message }; } }; diff --git a/app/(api)/_utils/csv-ingestion/csvAlgorithm.ts b/app/(api)/_utils/csv-ingestion/csvAlgorithm.ts index 0ed5aa18..a0c4e3ba 100644 --- a/app/(api)/_utils/csv-ingestion/csvAlgorithm.ts +++ b/app/(api)/_utils/csv-ingestion/csvAlgorithm.ts @@ -1,20 +1,11 @@ import csv from 'csv-parser'; -import { NextResponse } from 'next/server'; import trackData from '../../_data/tracks.json' assert { type: 'json' }; import { Readable } from 'stream'; - -interface parsedRecord { - name: string; - number: number; - tracks: string[]; -} - -interface track { - name: string; -} +import trackInt from '@typeDefs/track'; +import parsedRecordInt from '@typeDefs/parsedRecord'; const validTracks: string[] = trackData - .map((track: track) => track.name) + .map((track: trackInt) => track.name) .filter((t) => t !== 'Best Hack for Social Good'); function sortTracks(track1: string, track2: string, chosentracks: string) { @@ -46,8 +37,8 @@ function sortTracks(track1: string, track2: string, chosentracks: string) { export default async function csvAlgorithm(blob: Blob) { try { - const parsePromise = new Promise((resolve, reject) => { - const output: parsedRecord[] = []; + const parsePromise = new Promise((resolve, reject) => { + const output: parsedRecordInt[] = []; const parseBlob = async () => { const buffer = Buffer.from(await blob.arrayBuffer()); @@ -83,9 +74,9 @@ export default async function csvAlgorithm(blob: Blob) { const results = await parsePromise; - return NextResponse.json({ ok: true, body: results, error: null }); + return { ok: true, body: results, error: null }; } catch (e) { const error = e as Error; - return NextResponse.json({ ok: false, body: null, error: error.message }); + return { ok: false, body: null, error: error.message }; } } diff --git a/app/(api)/_utils/grouping/groupingAlgorithm.ts b/app/(api)/_utils/grouping/groupingAlgorithm.ts index f04c1156..3f780129 100644 --- a/app/(api)/_utils/grouping/groupingAlgorithm.ts +++ b/app/(api)/_utils/grouping/groupingAlgorithm.ts @@ -1,4 +1,4 @@ -import Judge from '@typeDefs/judges'; +import Judge from '@typeDefs/judge'; function createGroups(judgeArray: Judge[], groupType: string) { const groupArray: { type: string; judge_ids: object }[] = []; diff --git a/app/(api)/_utils/grouping/matchingAlgorithm.ts b/app/(api)/_utils/grouping/matchingAlgorithm.ts index 085c7083..20db9ee2 100644 --- a/app/(api)/_utils/grouping/matchingAlgorithm.ts +++ b/app/(api)/_utils/grouping/matchingAlgorithm.ts @@ -1,5 +1,5 @@ -import JudgeGroup from '@typeDefs/judgeGroups'; -import Team from '@typeDefs/teams'; +import JudgeGroup from '@typeDefs/judgeGroup'; +import Team from '@typeDefs/team'; import tracks from '../../_data/tracks.json' assert { type: 'json' }; import JudgeGroupToTeam from '@typeDefs/judgeGroupToTeam'; diff --git a/app/(api)/_utils/scoring/rankTeams.ts b/app/(api)/_utils/scoring/rankTeams.ts index d4b4dbfe..9c7a0450 100644 --- a/app/(api)/_utils/scoring/rankTeams.ts +++ b/app/(api)/_utils/scoring/rankTeams.ts @@ -1,5 +1,5 @@ -import Team from '@typeDefs/teams'; -import Submission from '@typeDefs/submissions'; +import Team from '@typeDefs/team'; +import Submission from '@typeDefs/submission'; import { getManySubmissions } from '@actions/submissions/getSubmission'; import tracks from '../../_data/tracks.json' assert { type: 'json' }; diff --git a/app/(api)/api/judge-group-to-teams/get.ts b/app/(api)/api/judge-group-to-teams/get.ts index 5348889b..e599c723 100644 --- a/app/(api)/api/judge-group-to-teams/get.ts +++ b/app/(api)/api/judge-group-to-teams/get.ts @@ -1,8 +1,9 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import getQueries from '@utils/request/getQueries'; import { GetManyJudgeGroupToTeams } from '@datalib/judgeGroups/getJudgeGroupToTeam'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'judgeGroupToTeams'); - return GetManyJudgeGroupToTeams(queries); + const res = await GetManyJudgeGroupToTeams(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/[id]/[team_id]/post.ts b/app/(api)/api/judge-groups/[id]/[team_id]/post.ts index 6f215a75..54b8d330 100644 --- a/app/(api)/api/judge-groups/[id]/[team_id]/post.ts +++ b/app/(api)/api/judge-groups/[id]/[team_id]/post.ts @@ -1,12 +1,13 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { LinkJudgeGroupToTeam } from '@datalib/judgeGroups/linkJudgeGroupToTeam'; export async function POST( _: NextRequest, { params }: { params: { id: string; team_id: string } } ) { - return LinkJudgeGroupToTeam({ + const res = await LinkJudgeGroupToTeam({ judge_group_id: params.id, team_id: params.team_id, }); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/[id]/delete.ts b/app/(api)/api/judge-groups/[id]/delete.ts index c7307c47..1af26b0b 100644 --- a/app/(api)/api/judge-groups/[id]/delete.ts +++ b/app/(api)/api/judge-groups/[id]/delete.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { DeleteJudgeGroup } from '@datalib/judgeGroups/deleteJudgeGroup'; export async function DELETE( _: NextRequest, { params }: { params: { id: string } } ) { - return DeleteJudgeGroup(params.id); + const res = await DeleteJudgeGroup(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/[id]/get.ts b/app/(api)/api/judge-groups/[id]/get.ts index b2b78c91..4d8528dc 100644 --- a/app/(api)/api/judge-groups/[id]/get.ts +++ b/app/(api)/api/judge-groups/[id]/get.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { GetJudgeGroup } from '@datalib/judgeGroups/getJudgeGroup'; export async function GET( _: NextRequest, { params }: { params: { id: string } } ) { - return GetJudgeGroup(params.id); + const res = await GetJudgeGroup(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/[id]/put.ts b/app/(api)/api/judge-groups/[id]/put.ts index 2209b7a1..8d480afd 100644 --- a/app/(api)/api/judge-groups/[id]/put.ts +++ b/app/(api)/api/judge-groups/[id]/put.ts @@ -1,4 +1,4 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { UpdateJudgeGroup } from '@datalib/judgeGroups/updateJudgeGroup'; export async function PUT( @@ -6,5 +6,6 @@ export async function PUT( { params }: { params: { id: string } } ) { const body = await request.json(); - return UpdateJudgeGroup(params.id, body); + const res = await UpdateJudgeGroup(params.id, body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/get.ts b/app/(api)/api/judge-groups/get.ts index ef9bb81e..7060d197 100644 --- a/app/(api)/api/judge-groups/get.ts +++ b/app/(api)/api/judge-groups/get.ts @@ -1,8 +1,9 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import getQueries from '@utils/request/getQueries'; import { GetManyJudgeGroups } from '@datalib/judgeGroups/getJudgeGroup'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'judgeGroups'); - return GetManyJudgeGroups(queries); + const res = await GetManyJudgeGroups(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judge-groups/post.ts b/app/(api)/api/judge-groups/post.ts index 36b855de..7f2b93da 100644 --- a/app/(api)/api/judge-groups/post.ts +++ b/app/(api)/api/judge-groups/post.ts @@ -1,7 +1,8 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { CreateJudgeGroup } from '@datalib/judgeGroups/createJudgeGroup'; export async function POST(request: NextRequest) { const body = await request.json(); - return CreateJudgeGroup(body); + const res = await CreateJudgeGroup(body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judges/[id]/delete.ts b/app/(api)/api/judges/[id]/delete.ts index 499180de..be0c9726 100644 --- a/app/(api)/api/judges/[id]/delete.ts +++ b/app/(api)/api/judges/[id]/delete.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { DeleteJudge } from '@datalib/judges/deleteJudge'; export async function DELETE( _: NextRequest, { params }: { params: { id: string } } ) { - return DeleteJudge(params.id); + const res = await DeleteJudge(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judges/[id]/get.ts b/app/(api)/api/judges/[id]/get.ts index 6dcd0f1b..7cfc114c 100644 --- a/app/(api)/api/judges/[id]/get.ts +++ b/app/(api)/api/judges/[id]/get.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { GetJudge } from '@datalib/judges/getJudge'; export async function GET( _: NextRequest, { params }: { params: { id: string } } ) { - return GetJudge(params.id); + const res = await GetJudge(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judges/[id]/put.ts b/app/(api)/api/judges/[id]/put.ts index 42c18ca2..536e97d2 100644 --- a/app/(api)/api/judges/[id]/put.ts +++ b/app/(api)/api/judges/[id]/put.ts @@ -1,4 +1,4 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { UpdateJudge } from '@datalib/judges/updateJudge'; export async function PUT( @@ -6,5 +6,6 @@ export async function PUT( { params }: { params: { id: string } } ) { const body = await request.json(); - return UpdateJudge(params.id, body); + const res = await UpdateJudge(params.id, body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judges/get.ts b/app/(api)/api/judges/get.ts index 3e712554..b6837a0b 100644 --- a/app/(api)/api/judges/get.ts +++ b/app/(api)/api/judges/get.ts @@ -1,8 +1,9 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { GetManyJudges } from '@datalib/judges/getJudge'; import getQueries from '@utils/request/getQueries'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'judges'); - return GetManyJudges(queries); + const res = await GetManyJudges(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/judges/post.ts b/app/(api)/api/judges/post.ts index 307af90c..3063b422 100644 --- a/app/(api)/api/judges/post.ts +++ b/app/(api)/api/judges/post.ts @@ -1,7 +1,8 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { CreateJudge } from '@datalib/judges/createJudge'; export async function POST(request: NextRequest) { const body = await request.json(); - return CreateJudge(body); + const res = await CreateJudge(body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/submissions/[judge_id]/[team_id]/delete.ts b/app/(api)/api/submissions/[judge_id]/[team_id]/delete.ts index 7b92a6ab..94a6348a 100644 --- a/app/(api)/api/submissions/[judge_id]/[team_id]/delete.ts +++ b/app/(api)/api/submissions/[judge_id]/[team_id]/delete.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { DeleteSubmission } from '@datalib/submissions/deleteSubmission'; export async function DELETE( _: NextRequest, { params }: { params: { judge_id: string; team_id: string } } ) { - return DeleteSubmission(params.judge_id, params.team_id); + const res = await DeleteSubmission(params.judge_id, params.team_id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/submissions/[judge_id]/[team_id]/get.ts b/app/(api)/api/submissions/[judge_id]/[team_id]/get.ts index f9cdfd37..8903ad8a 100644 --- a/app/(api)/api/submissions/[judge_id]/[team_id]/get.ts +++ b/app/(api)/api/submissions/[judge_id]/[team_id]/get.ts @@ -1,9 +1,10 @@ import { GetSubmission } from '@datalib/submissions/getSubmissions'; -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; export async function GET( _: NextRequest, { params }: { params: { judge_id: string; team_id: string } } ) { - return GetSubmission(params.judge_id, params.team_id); + const res = await GetSubmission(params.judge_id, params.team_id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/submissions/[judge_id]/[team_id]/put.ts b/app/(api)/api/submissions/[judge_id]/[team_id]/put.ts index f55b2ed3..55497d1a 100644 --- a/app/(api)/api/submissions/[judge_id]/[team_id]/put.ts +++ b/app/(api)/api/submissions/[judge_id]/[team_id]/put.ts @@ -1,4 +1,4 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { UpdateSubmission } from '@datalib/submissions/updateSubmission'; export async function PUT( @@ -6,5 +6,6 @@ export async function PUT( { params }: { params: { judge_id: string; team_id: string } } ) { const body = await request.json(); - return UpdateSubmission(params.judge_id, params.team_id, body); + const res = await UpdateSubmission(params.judge_id, params.team_id, body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/submissions/get.ts b/app/(api)/api/submissions/get.ts index c2a712ec..b14159da 100644 --- a/app/(api)/api/submissions/get.ts +++ b/app/(api)/api/submissions/get.ts @@ -1,9 +1,10 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import getQueries from '@utils/request/getQueries'; import { GetManySubmissions } from '@datalib/submissions/getSubmissions'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'submissions'); - return GetManySubmissions(queries); + const res = await GetManySubmissions(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/submissions/post.ts b/app/(api)/api/submissions/post.ts index 4fba392e..b09b067f 100644 --- a/app/(api)/api/submissions/post.ts +++ b/app/(api)/api/submissions/post.ts @@ -1,7 +1,8 @@ import { CreateSubmission } from '@datalib/submissions/createSubmission'; -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; export async function POST(request: NextRequest) { const body = await request.json(); - return CreateSubmission(body); + const res = await CreateSubmission(body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/teams/[id]/delete.ts b/app/(api)/api/teams/[id]/delete.ts index 274be8d2..8fc7b39d 100644 --- a/app/(api)/api/teams/[id]/delete.ts +++ b/app/(api)/api/teams/[id]/delete.ts @@ -1,9 +1,10 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { DeleteTeam } from '@datalib/teams/deleteTeam'; export async function DELETE( _: NextRequest, { params }: { params: { id: string } } ) { - return DeleteTeam(params.id); + const res = await DeleteTeam(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/teams/[id]/get.ts b/app/(api)/api/teams/[id]/get.ts index a4aea3fa..b531bfc4 100644 --- a/app/(api)/api/teams/[id]/get.ts +++ b/app/(api)/api/teams/[id]/get.ts @@ -1,9 +1,10 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { GetTeam } from '@datalib/teams/getTeam'; export async function GET( _: NextRequest, { params }: { params: { id: string } } ) { - return GetTeam(params.id); + const res = await GetTeam(params.id); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/teams/[id]/put.ts b/app/(api)/api/teams/[id]/put.ts index 685c622b..2658240b 100644 --- a/app/(api)/api/teams/[id]/put.ts +++ b/app/(api)/api/teams/[id]/put.ts @@ -1,4 +1,4 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { UpdateTeam } from '@datalib/teams/updateTeam'; export async function PUT( @@ -6,5 +6,6 @@ export async function PUT( { params }: { params: { id: string } } ) { const body = await request.json(); - return UpdateTeam(params.id, body); + const res = await UpdateTeam(params.id, body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/teams/get.ts b/app/(api)/api/teams/get.ts index 519d9a3e..ef51b4a6 100644 --- a/app/(api)/api/teams/get.ts +++ b/app/(api)/api/teams/get.ts @@ -1,9 +1,10 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import getQueries from '@utils/request/getQueries'; import { GetManyTeams } from '@datalib/teams/getTeam'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'teams'); - return GetManyTeams(queries); + const res = await GetManyTeams(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/teams/post.ts b/app/(api)/api/teams/post.ts index 2e113934..2719bd7a 100644 --- a/app/(api)/api/teams/post.ts +++ b/app/(api)/api/teams/post.ts @@ -1,7 +1,8 @@ -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { CreateManyTeams } from '@datalib/teams/createTeams'; export async function POST(request: NextRequest) { const body = await request.json(); - return CreateManyTeams(body); + const res = await CreateManyTeams(body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/timers/get.ts b/app/(api)/api/timers/get.ts index 2e8628ba..f35acc86 100644 --- a/app/(api)/api/timers/get.ts +++ b/app/(api)/api/timers/get.ts @@ -1,9 +1,10 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import getQueries from '@utils/request/getQueries'; import { GetHelpTimers } from '@datalib/helpTimers/getHelpTimer'; export async function GET(request: NextRequest) { const queries = await getQueries(request, 'helpTimers'); - return GetHelpTimers(queries); + const res = await GetHelpTimers(queries); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/timers/next/get.ts b/app/(api)/api/timers/next/get.ts index 57685c33..29f69704 100644 --- a/app/(api)/api/timers/next/get.ts +++ b/app/(api)/api/timers/next/get.ts @@ -1,6 +1,7 @@ -import { type NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; import { GetNextTimer } from '@datalib/helpTimers/getHelpTimer'; export async function GET(_: NextRequest) { - return GetNextTimer(); + const res = await GetNextTimer(); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/api/timers/post.ts b/app/(api)/api/timers/post.ts index 26cb33f9..4acb75fe 100644 --- a/app/(api)/api/timers/post.ts +++ b/app/(api)/api/timers/post.ts @@ -1,7 +1,8 @@ import { CreateHelpTimer } from '@datalib/helpTimers/createHelpTimer'; -import { NextRequest } from 'next/server'; +import { NextRequest, NextResponse } from 'next/server'; export async function POST(request: NextRequest) { const body = await request.json(); - return CreateHelpTimer(body); + const res = await CreateHelpTimer(body); + return NextResponse.json({ ...res }, { status: res.ok ? 200 : 500 }); } diff --git a/app/(api)/auth/login/route.ts b/app/(api)/auth/login/route.ts index ea14e3c4..0516a78b 100644 --- a/app/(api)/auth/login/route.ts +++ b/app/(api)/auth/login/route.ts @@ -10,11 +10,10 @@ import type AuthTokenInt from '@typeDefs/authToken'; export async function POST(request: NextRequest) { try { const body = await request.json(); - const res = await Login(body); - const data = await res.json(); + const data = await Login(body); - if (!data.ok) { - throw new NotAuthenticatedError(data.error); + if (!data.ok || !data.body) { + throw new NotAuthenticatedError(data.error as string); } const payload = jwt.decode(data.body) as AuthTokenInt; diff --git a/app/(api)/auth/register/route.ts b/app/(api)/auth/register/route.ts index 2a054815..076d5c8a 100644 --- a/app/(api)/auth/register/route.ts +++ b/app/(api)/auth/register/route.ts @@ -14,8 +14,7 @@ export async function POST(request: NextRequest) { try { const { data: d, sig: s } = await getQueries(request, 'judges'); - const judgesRes = await GetManyJudges(); - const judges = await judgesRes.json(); + const judges = await GetManyJudges(); const verified = verifyHMACSignature(d as string, s as string); if (judges.body?.length !== 0 && !verified) { @@ -32,11 +31,10 @@ export async function POST(request: NextRequest) { body['role'] = parsed?.role ?? body.role; } - const res = await Register(body); - const data = await res.json(); + const data = await Register(body); - if (!data.ok) { - throw new HttpError(data.error); + if (!data.ok || !data.body) { + throw new HttpError(data.error as string); } const payload = jwt.decode(data.body) as AuthTokenInt; diff --git a/app/(pages)/judging-app/_components/JudgingHub/HubHero.tsx b/app/(pages)/judging-app/_components/JudgingHub/HubHero.tsx index 00e730f6..2052dbc9 100644 --- a/app/(pages)/judging-app/_components/JudgingHub/HubHero.tsx +++ b/app/(pages)/judging-app/_components/JudgingHub/HubHero.tsx @@ -1,4 +1,4 @@ -import JudgeInt from '@typeDefs/judges'; +import JudgeInt from '@typeDefs/judge'; import styles from './HubHero.module.scss'; import Image from 'next/image'; import judgeHeroes from '/public/judges/hub/judgingheroes.svg'; diff --git a/app/(pages)/judging-app/admin/csv/page.tsx b/app/(pages)/judging-app/admin/csv/page.tsx index 4ff551b9..681eb76f 100644 --- a/app/(pages)/judging-app/admin/csv/page.tsx +++ b/app/(pages)/judging-app/admin/csv/page.tsx @@ -15,7 +15,7 @@ export default function CsvIngestion() { const fileRes = await uploadFile(formData); setUploadRes(JSON.stringify(fileRes.ok)); - if (fileRes.ok) { + if (fileRes.ok && fileRes.body) { setPending(true); const res = await ingestCSV(fileRes.body); setResponse(JSON.stringify(res)); diff --git a/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringForm.tsx b/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringForm.tsx index e4ba70f4..8110107c 100644 --- a/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringForm.tsx +++ b/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringForm.tsx @@ -11,8 +11,8 @@ import Submission from './ScoringSubComponents/Submission'; import updateSubmission from '@actions/submissions/updateSubmission'; -import TeamInt from '@typeDefs/teams'; -import SubmissionInt from '@typeDefs/submissions'; +import TeamInt from '@typeDefs/team'; +import SubmissionInt from '@typeDefs/submission'; import { useRouter } from 'next/navigation'; const generalScoreNames = [ @@ -46,7 +46,7 @@ export default function ScoringForm({ const [updateState, UpdateSubmission] = useFormState(updateSubmission, { ok: false, body: null, - error: null, + error: '', }); const [ready, setReady] = useState(5 + team.tracks.length - already_done); @@ -81,7 +81,10 @@ export default function ScoringForm({ />
- +
diff --git a/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx b/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx index 84ab1fb6..6ac2c369 100644 --- a/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx +++ b/app/(pages)/judging-app/scoring/_components/ScoringForm/ScoringSubComponents/TeamBlock.tsx @@ -1,4 +1,4 @@ -import TeamInt from '@typeDefs/teams'; +import TeamInt from '@typeDefs/team'; import styles from './TeamBlock.module.scss'; import Link from 'next/link'; import Image from 'next/image'; diff --git a/app/(api)/_types/authToken.ts b/app/_types/authToken.ts similarity index 100% rename from app/(api)/_types/authToken.ts rename to app/_types/authToken.ts diff --git a/app/(api)/_types/judges.ts b/app/_types/judge.ts similarity index 100% rename from app/(api)/_types/judges.ts rename to app/_types/judge.ts diff --git a/app/(api)/_types/judgeGroups.ts b/app/_types/judgeGroup.ts similarity index 100% rename from app/(api)/_types/judgeGroups.ts rename to app/_types/judgeGroup.ts diff --git a/app/(api)/_types/judgeGroupToTeam.ts b/app/_types/judgeGroupToTeam.ts similarity index 100% rename from app/(api)/_types/judgeGroupToTeam.ts rename to app/_types/judgeGroupToTeam.ts diff --git a/app/_types/parsedRecord.ts b/app/_types/parsedRecord.ts new file mode 100644 index 00000000..29dd8392 --- /dev/null +++ b/app/_types/parsedRecord.ts @@ -0,0 +1,7 @@ +interface parsedRecordInt { + name: string; + number: number; + tracks: string[]; +} + +export default parsedRecordInt; diff --git a/app/(api)/_types/submissions.ts b/app/_types/submission.ts similarity index 100% rename from app/(api)/_types/submissions.ts rename to app/_types/submission.ts diff --git a/app/(api)/_types/teams.ts b/app/_types/team.ts similarity index 100% rename from app/(api)/_types/teams.ts rename to app/_types/team.ts diff --git a/app/_types/track.ts b/app/_types/track.ts new file mode 100644 index 00000000..755a6c10 --- /dev/null +++ b/app/_types/track.ts @@ -0,0 +1,5 @@ +interface trackInt { + name: string; +} + +export default trackInt; diff --git a/package-lock.json b/package-lock.json index f035ad1a..cbc23398 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,6 +55,7 @@ "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-unicorn": "^50.0.1", + "migrate-mongo": "^11.0.0", "postcss": "^8", "prettier": "3.0.3", "run-script-os": "^1.1.6", @@ -300,6 +301,17 @@ "node": ">=6.9.0" } }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@emnapi/runtime": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.2.0.tgz", @@ -2615,6 +2627,22 @@ "node": ">=0.8.0" } }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -2813,6 +2841,23 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -4247,6 +4292,16 @@ "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, + "node_modules/fn-args": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fn-args/-/fn-args-5.0.0.tgz", + "integrity": "sha512-CtbfI3oFFc3nbdIoHycrfbrxiGgxXBXXuyOl49h47JawM1mYrqpiRqnH5CB2mBatdXvHHOUO6a+RiAuuvKt0lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/font-awesome-icons": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/font-awesome-icons/-/font-awesome-icons-1.6.0.tgz", @@ -4298,6 +4353,21 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5221,6 +5291,19 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsonwebtoken": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", @@ -5345,6 +5428,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -5438,6 +5528,41 @@ "node": ">=8.6" } }, + "node_modules/migrate-mongo": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/migrate-mongo/-/migrate-mongo-11.0.0.tgz", + "integrity": "sha512-GB/gHzUwp/fL1w6ksNGihTyb+cSrm6NbVLlz1OSkQKaLlzAXMwH7iKK2ZS7W5v+I8vXiY2rL58WTUZSAL6QR+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-table3": "^0.6.1", + "commander": "^9.1.0", + "date-fns": "^2.28.0", + "fn-args": "^5.0.0", + "fs-extra": "^10.0.1", + "lodash": "^4.17.21", + "p-each-series": "^2.2.0" + }, + "bin": { + "migrate-mongo": "bin/migrate-mongo.js" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "mongodb": "^4.4.1 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/migrate-mongo/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -5894,6 +6019,19 @@ "node": ">=6" } }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -7598,6 +7736,16 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", diff --git a/package.json b/package.json index f5fa28eb..952891d6 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "eslint-plugin-prettier": "^5.0.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-unicorn": "^50.0.1", + "migrate-mongo": "^11.0.0", "postcss": "^8", "prettier": "3.0.3", "run-script-os": "^1.1.6", diff --git a/scripts/generateData.mjs b/scripts/generateData.mjs index 2611db1c..813a7dab 100644 --- a/scripts/generateData.mjs +++ b/scripts/generateData.mjs @@ -23,7 +23,7 @@ function generateData(collectionName, numDocuments) { data.push({ name: 'Admin', email: 'admin@hackdavis.io', - password: 'hackdavis123', + password: '$2a$10$oit1hC4hBaj9OX.WQxm3uOtb0qnPNk4iR9QhZmFm7/r1rAphAMAva', specialty: 'tech', role: 'admin', }); diff --git a/tsconfig.json b/tsconfig.json index 2f147373..22360df6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -29,7 +29,7 @@ "@utils/*": ["app/(api)/_utils/*"], "@apidata/*": ["app/(api)/_data/*"], "@datalib/*": ["app/(api)/_datalib/*"], - "@typeDefs/*": ["app/(api)/_types/*"] + "@typeDefs/*": ["app/_types/*"] } }, "include": ["nextEnv.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],