File tree Expand file tree Collapse file tree 5 files changed +28
-20
lines changed Expand file tree Collapse file tree 5 files changed +28
-20
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import type { FastifyReply } from 'fastify';
22import openapiConst from '../tsp-output/@typespec/openapi3/openapi.v2.json' with {
33 type : 'json' ,
44} ;
5+ import type { RouteHandlers } from '../types/handlers/fastify.gen.ts' ;
56
67export function getPagingOptions ( page : number , perPage = 10 ) {
78 return {
@@ -23,3 +24,7 @@ export function ensure<T>(
2324 const m = msg || 'Not Found' ;
2425 if ( value == null ) reply . server . httpErrors . createError ( status , m ) ;
2526}
27+
28+ export function defineHandlers < T extends Partial < RouteHandlers > > ( t : T ) {
29+ return t ;
30+ }
Original file line number Diff line number Diff line change 11import { asc , eq } from 'drizzle-orm' ;
22
33import * as schemas from '../../db/schema.ts' ;
4- import { ensure , getPagingOptions } from '../../lib/utils.ts' ;
5- import type { RouteHandlers } from '../../types/handlers/fastify.gen.ts' ;
4+ import { defineHandlers , ensure , getPagingOptions } from '../../lib/utils.ts' ;
65import type {
7- CourseCreateDto ,
8- CourseEditDto ,
6+ CourseCreateDto ,
7+ CourseEditDto ,
98} from '../../types/handlers/index.ts' ;
109import CourseValidator from '../../validators/CourseValidator.ts' ;
1110
12- export default {
11+
12+ const handlers = defineHandlers ( {
1313 async coursesIndex ( request , reply ) {
1414 const page = request . query ?. page ?? 1 ;
1515 const courses = await request . db . query . courses . findMany ( {
@@ -33,7 +33,6 @@ export default {
3333 request . db ,
3434 request . body ,
3535 ) ;
36- // attach creator id from auth if available
3736 const creatorId = request . user ?. id ;
3837 const values = {
3938 ...validated ,
@@ -71,4 +70,6 @@ export default {
7170 ensure ( reply , course , 404 ) ;
7271 return reply . code ( 204 ) . send ( ) ;
7372 } ,
74- } satisfies Partial < RouteHandlers > ;
73+ } ) ;
74+
75+ export default handlers ;
Original file line number Diff line number Diff line change 11import { and , asc , eq } from 'drizzle-orm' ;
22
33import * as schemas from '../../../db/schema.ts' ;
4- import { ensure , getPagingOptions } from '../../../lib/utils.ts' ;
5- import type { RouteHandlers } from '../../../types/handlers/fastify.gen.ts' ;
4+ import { defineHandlers , ensure , getPagingOptions } from '../../../lib/utils.ts' ;
65import type { CourseLessonCreateDto } from '../../../types/handlers/index.ts' ;
76import LessonValidator from '../../../validators/Course/LessonValidator.ts' ;
87
9- export default {
8+ const handlers = defineHandlers ( {
109 async coursesLessonsIndex ( request , reply ) {
1110 const page = request . query ?. page ?? 1 ;
1211 const lessons = await request . db . query . courseLessons . findMany ( {
@@ -44,4 +43,6 @@ export default {
4443 . returning ( ) ;
4544 return reply . code ( 201 ) . send ( lesson ) ;
4645 } ,
47- } satisfies Partial < RouteHandlers > ;
46+ } ) ;
47+
48+ export default handlers ;
Original file line number Diff line number Diff line change 11import { eq } from 'drizzle-orm' ;
22
33import * as schemas from '../../db/schema.ts' ;
4- import { ensure } from '../../lib/utils.ts' ;
5- import type { RouteHandlers } from '../../types/handlers/fastify.gen.ts' ;
4+ import { defineHandlers , ensure } from '../../lib/utils.ts' ;
65
7- export default {
6+ const handlers = defineHandlers ( {
87 async tokensCreate ( request , reply ) {
98 const client = await request . db . query . users . findFirst ( {
109 where : eq ( schemas . users . email , request . body . email ) ,
@@ -13,4 +12,6 @@ export default {
1312 const token = request . server . jwt . sign ( { id : client . id } ) ;
1413 return reply . code ( 201 ) . send ( { token } ) ;
1514 } ,
16- } satisfies Partial < RouteHandlers > ;
15+ } ) ;
16+
17+ export default handlers ;
Original file line number Diff line number Diff line change 11import { asc , eq } from 'drizzle-orm' ;
2-
32import * as schemas from '../../db/schema.ts' ;
4- import { ensure , getPagingOptions } from '../../lib/utils.ts' ;
5- import type { RouteHandlers } from '../../types/handlers/fastify.gen.ts' ;
3+ import { defineHandlers , ensure , getPagingOptions } from '../../lib/utils.ts' ;
64import type { UserCreateDto , UserEditDto } from '../../types/handlers/index.ts' ;
75import UserValidator from '../../validators/UserValidator.ts' ;
86
9- export default {
7+ const handlers = defineHandlers ( {
108 async usersIndex ( request , reply ) {
119 const page = request . query ?. page ?? 1 ;
1210 const users = await request . db . query . users . findMany ( {
@@ -59,4 +57,6 @@ export default {
5957 ensure ( reply , user , 404 ) ;
6058 return reply . code ( 204 ) . send ( ) ;
6159 } ,
62- } satisfies Partial < RouteHandlers > ;
60+ } ) ;
61+
62+ export default handlers ;
You can’t perform that action at this time.
0 commit comments