Skip to content

Commit

Permalink
admin mentor routes schema validations
Browse files Browse the repository at this point in the history
  • Loading branch information
dileepainivossl committed Aug 2, 2024
1 parent 7a8d663 commit 5d89d58
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 6 deletions.
39 changes: 33 additions & 6 deletions src/routes/admin/mentor/mentor.route.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import express from 'express'
import { requireAuth } from '../../../controllers/auth.controller'
import {
getAllMentorEmails,
getAllMentorsByStatus,
Expand All @@ -8,18 +7,46 @@ import {
searchMentors,
updateMentorAvailability
} from '../../../controllers/admin/mentor.controller'
import { requireAuth } from '../../../controllers/auth.controller'
import {
requestBodyValidator,
requestQueryValidator
} from '../../../middlewares/requestValidator'
import {
getAllMentorEmailsSchema,
getAllMentorsByStatusSchema,
mentorStatusSchema,
searchMentorsSchema,
updateMentorAvailabilitySchema
} from '../../../schemas/admin/admin.mentor-routes.schema'

const mentorRouter = express.Router()

mentorRouter.put('/:mentorId/state', requireAuth, mentorStatusHandler)
mentorRouter.put(
'/:mentorId/state',
[requireAuth, requestBodyValidator(mentorStatusSchema)],
mentorStatusHandler
)
mentorRouter.get('/:mentorId', requireAuth, mentorDetailsHandler)
mentorRouter.get('/', requireAuth, getAllMentorsByStatus)
mentorRouter.get('/emails', requireAuth, getAllMentorEmails)
mentorRouter.get(
'/',
[requireAuth, requestQueryValidator(getAllMentorsByStatusSchema)],
getAllMentorsByStatus
)
mentorRouter.get(
'/emails',
[requireAuth, requestQueryValidator(getAllMentorEmailsSchema)],
getAllMentorEmails
)
mentorRouter.put(
'/:mentorId/availability',
requireAuth,
[requireAuth, requestBodyValidator(updateMentorAvailabilitySchema)],
updateMentorAvailability
)
mentorRouter.get('/search', requireAuth, searchMentors)
mentorRouter.get(
'/search',
[requireAuth, requestQueryValidator(searchMentorsSchema)],
searchMentors
)

export default mentorRouter
22 changes: 22 additions & 0 deletions src/schemas/admin/admin.mentor-routes.schema.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { z } from 'zod'
import { ApplicationStatus } from '../../enums'

export const mentorStatusSchema = z.object({
state: z.nativeEnum(ApplicationStatus)
})

export const getAllMentorsByStatusSchema = z.object({
status: z.nativeEnum(ApplicationStatus).or(z.undefined())
})

export const getAllMentorEmailsSchema = z.object({
status: z.nativeEnum(ApplicationStatus).or(z.undefined())
})

export const updateMentorAvailabilitySchema = z.object({
availability: z.boolean()
})

export const searchMentorsSchema = z.object({
q: z.string().or(z.undefined())
})

0 comments on commit 5d89d58

Please sign in to comment.