Fix issue where user ID is not fetched
This commit is contained in:
		
							parent
							
								
									90d6f8faee
								
							
						
					
					
						commit
						43f899582f
					
				
					 1 changed files with 51 additions and 37 deletions
				
			
		|  | @ -1,49 +1,63 @@ | |||
| import type {NextApiRequest, NextApiResponse} from 'next'; | ||||
| import prisma from '../../../lib/prisma'; | ||||
| import {getBusyCalendarTimes} from '../../../lib/calendarClient'; | ||||
| import {getBusyVideoTimes} from '../../../lib/videoClient'; | ||||
| import type { NextApiRequest, NextApiResponse } from "next"; | ||||
| import prisma from "../../../lib/prisma"; | ||||
| import { getBusyCalendarTimes } from "../../../lib/calendarClient"; | ||||
| import { getBusyVideoTimes } from "../../../lib/videoClient"; | ||||
| import dayjs from "dayjs"; | ||||
| 
 | ||||
| export default async function handler(req: NextApiRequest, res: NextApiResponse) { | ||||
|     const { user } = req.query | ||||
|   const { user } = req.query; | ||||
| 
 | ||||
|     const currentUser = await prisma.user.findFirst({ | ||||
|         where: { | ||||
|           username: user, | ||||
|         }, | ||||
|         select: { | ||||
|             credentials: true, | ||||
|             timeZone: true, | ||||
|             bufferTime: true | ||||
|         } | ||||
|     }); | ||||
|   const currentUser = await prisma.user.findFirst({ | ||||
|     where: { | ||||
|       username: user, | ||||
|     }, | ||||
|     select: { | ||||
|       credentials: true, | ||||
|       timeZone: true, | ||||
|       bufferTime: true, | ||||
|       id: true, | ||||
|     }, | ||||
|   }); | ||||
| 
 | ||||
|     const selectedCalendars = (await prisma.selectedCalendar.findMany({ | ||||
|         where: { | ||||
|             userId: currentUser.id | ||||
|         } | ||||
|     })); | ||||
|   const selectedCalendars = await prisma.selectedCalendar.findMany({ | ||||
|     where: { | ||||
|       userId: currentUser.id, | ||||
|     }, | ||||
|   }); | ||||
| 
 | ||||
|     const hasCalendarIntegrations = currentUser.credentials.filter((cred) => cred.type.endsWith('_calendar')).length > 0; | ||||
|     const hasVideoIntegrations = currentUser.credentials.filter((cred) => cred.type.endsWith('_video')).length > 0; | ||||
|   const hasCalendarIntegrations = | ||||
|     currentUser.credentials.filter((cred) => cred.type.endsWith("_calendar")).length > 0; | ||||
|   const hasVideoIntegrations = | ||||
|     currentUser.credentials.filter((cred) => cred.type.endsWith("_video")).length > 0; | ||||
| 
 | ||||
|     const calendarAvailability = await getBusyCalendarTimes(currentUser.credentials, req.query.dateFrom, req.query.dateTo, selectedCalendars); | ||||
|     const videoAvailability = await getBusyVideoTimes(currentUser.credentials, req.query.dateFrom, req.query.dateTo); | ||||
|   const calendarAvailability = await getBusyCalendarTimes( | ||||
|     currentUser.credentials, | ||||
|     req.query.dateFrom, | ||||
|     req.query.dateTo, | ||||
|     selectedCalendars | ||||
|   ); | ||||
|   const videoAvailability = await getBusyVideoTimes( | ||||
|     currentUser.credentials, | ||||
|     req.query.dateFrom, | ||||
|     req.query.dateTo | ||||
|   ); | ||||
| 
 | ||||
|     let commonAvailability = []; | ||||
|   let commonAvailability = []; | ||||
| 
 | ||||
|     if(hasCalendarIntegrations && hasVideoIntegrations) { | ||||
|         commonAvailability = calendarAvailability.filter(availability => videoAvailability.includes(availability)); | ||||
|     } else if(hasVideoIntegrations) { | ||||
|         commonAvailability = videoAvailability; | ||||
|     } else if(hasCalendarIntegrations) { | ||||
|         commonAvailability = calendarAvailability; | ||||
|     } | ||||
|   if (hasCalendarIntegrations && hasVideoIntegrations) { | ||||
|     commonAvailability = calendarAvailability.filter((availability) => | ||||
|       videoAvailability.includes(availability) | ||||
|     ); | ||||
|   } else if (hasVideoIntegrations) { | ||||
|     commonAvailability = videoAvailability; | ||||
|   } else if (hasCalendarIntegrations) { | ||||
|     commonAvailability = calendarAvailability; | ||||
|   } | ||||
| 
 | ||||
|     commonAvailability = commonAvailability.map(a => ({ | ||||
|         start: dayjs(a.start).subtract(currentUser.bufferTime, 'minute').toString(), | ||||
|         end: dayjs(a.end).add(currentUser.bufferTime, 'minute').toString() | ||||
|     })); | ||||
|   commonAvailability = commonAvailability.map((a) => ({ | ||||
|     start: dayjs(a.start).subtract(currentUser.bufferTime, "minute").toString(), | ||||
|     end: dayjs(a.end).add(currentUser.bufferTime, "minute").toString(), | ||||
|   })); | ||||
| 
 | ||||
|     res.status(200).json(commonAvailability); | ||||
|   res.status(200).json(commonAvailability); | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Bailey Pumfleet
						Bailey Pumfleet