From 427ed1679664714ab02d31a2487562e3f21fd5d6 Mon Sep 17 00:00:00 2001 From: Ishank Lalwani Date: Sat, 29 Jul 2023 13:24:21 +0530 Subject: [PATCH] removed the result schema and collection --- app/api/[roomcode]/route.ts | 140 +++++++++++++++--------------------- 1 file changed, 57 insertions(+), 83 deletions(-) diff --git a/app/api/[roomcode]/route.ts b/app/api/[roomcode]/route.ts index 2ad8887..51f4ecb 100644 --- a/app/api/[roomcode]/route.ts +++ b/app/api/[roomcode]/route.ts @@ -1,96 +1,70 @@ -import { RoomCodeRouteContext } from '@/lib/types' -import clientPromise from '@/utils/newdb' +import clientPromise from "@/utils/newdb"; -export async function GET(_request: Request, context: RoomCodeRouteContext) { - try { - const client = await clientPromise - const db = client.db('get_interval') - let result: any[] = [] - const results = await db - .collection('result') - .find({ roomcode: context.params.roomcode }) - .limit(1) - .toArray() +type RoomCodeRouteContext = { + params: { + roomcode: string, + } +} - if (results.length === 0) { - const rooms = await db - .collection('rooms') - .find({ roomcode: context.params.roomcode }) - .limit(15) - .toArray() +export async function GET(request:Request, context: RoomCodeRouteContext){ + try { + const client = await clientPromise; + const db = client.db("get_interval"); + let result : any[] = []; - // console.log(rooms) + const rooms = await db.collection("rooms").find({roomcode:context.params.roomcode}).limit(15).toArray(); + + //to get all the intervals in a single array + let intervals:any[] = [[]]; + let counter = 0; + for(let i=0;iintervals[j+1][0]){ + let t=intervals[j]; + intervals[j]=intervals[j+1]; + intervals[j+1]=t; + } + } + } - //to sort the array - for (let i = 0; i < intervals.length - 1; i++) { - for (let j = 0; j < intervals.length - 1 - i; j++) { - if (intervals[j][0] > intervals[j + 1][0]) { - let t = intervals[j] - intervals[j] = intervals[j + 1] - intervals[j + 1] = t - } - } + //to merge the intervals + let finalintervals : any[]; + finalintervals = [[intervals[0][0], intervals[0][1]]] + for(let i=0;i=intervals[i][0]){ + finalintervals[finalintervals.length-1][1]= Math.max(finalintervals[finalintervals.length-1][1],intervals[i][1]); } - - //to merge the intervals - let finalintervals: any[] - finalintervals = [[intervals[0][0], intervals[0][1]]] - for (let i = 0; i < intervals.length; i++) { - if ( - finalintervals[finalintervals.length - 1][1] >= - intervals[i][0] - ) { - finalintervals[finalintervals.length - 1][1] = Math.max( - finalintervals[finalintervals.length - 1][1], - intervals[i][1] - ) - } else { - finalintervals.push(intervals[i]) - } + else{ + finalintervals.push(intervals[i]); } + } - // console.log(finalintervals); - - //to get the free intervals - result = [[0, finalintervals[0][0]]] - for (let i = 1; i < finalintervals.length; i++) { - result[i] = [ - finalintervals[i - 1][1] + 1, - finalintervals[i][0] - 1, - ] - } - result[result.length] = [ - finalintervals[finalintervals.length - 1][1] + 1, - 1439, - ] - // console.log(result); - - await db.collection('result').insertOne({ - roomcode: context.params.roomcode, - result: result, - }) - console.log('Saved Successfully!') - } else { - result = await results[0].result - // console.log(result) + //to get the free intervals + let j=0; + if(finalintervals[0][0]!==0){ + result[0] = [[0, finalintervals[0][0]-1]]; + ++j; + } + for(let i=1;i