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';
2
2
import openapiConst from '../tsp-output/@typespec/openapi3/openapi.v2.json' with {
3
3
type : 'json' ,
4
4
} ;
5
+ import type { RouteHandlers } from '../types/handlers/fastify.gen.ts' ;
5
6
6
7
export function getPagingOptions ( page : number , perPage = 10 ) {
7
8
return {
@@ -23,3 +24,7 @@ export function ensure<T>(
23
24
const m = msg || 'Not Found' ;
24
25
if ( value == null ) reply . server . httpErrors . createError ( status , m ) ;
25
26
}
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 1
1
import { asc , eq } from 'drizzle-orm' ;
2
2
3
3
import * 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' ;
6
5
import type {
7
- CourseCreateDto ,
8
- CourseEditDto ,
6
+ CourseCreateDto ,
7
+ CourseEditDto ,
9
8
} from '../../types/handlers/index.ts' ;
10
9
import CourseValidator from '../../validators/CourseValidator.ts' ;
11
10
12
- export default {
11
+
12
+ const handlers = defineHandlers ( {
13
13
async coursesIndex ( request , reply ) {
14
14
const page = request . query ?. page ?? 1 ;
15
15
const courses = await request . db . query . courses . findMany ( {
@@ -33,7 +33,6 @@ export default {
33
33
request . db ,
34
34
request . body ,
35
35
) ;
36
- // attach creator id from auth if available
37
36
const creatorId = request . user ?. id ;
38
37
const values = {
39
38
...validated ,
@@ -71,4 +70,6 @@ export default {
71
70
ensure ( reply , course , 404 ) ;
72
71
return reply . code ( 204 ) . send ( ) ;
73
72
} ,
74
- } satisfies Partial < RouteHandlers > ;
73
+ } ) ;
74
+
75
+ export default handlers ;
Original file line number Diff line number Diff line change 1
1
import { and , asc , eq } from 'drizzle-orm' ;
2
2
3
3
import * 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' ;
6
5
import type { CourseLessonCreateDto } from '../../../types/handlers/index.ts' ;
7
6
import LessonValidator from '../../../validators/Course/LessonValidator.ts' ;
8
7
9
- export default {
8
+ const handlers = defineHandlers ( {
10
9
async coursesLessonsIndex ( request , reply ) {
11
10
const page = request . query ?. page ?? 1 ;
12
11
const lessons = await request . db . query . courseLessons . findMany ( {
@@ -44,4 +43,6 @@ export default {
44
43
. returning ( ) ;
45
44
return reply . code ( 201 ) . send ( lesson ) ;
46
45
} ,
47
- } satisfies Partial < RouteHandlers > ;
46
+ } ) ;
47
+
48
+ export default handlers ;
Original file line number Diff line number Diff line change 1
1
import { eq } from 'drizzle-orm' ;
2
2
3
3
import * 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' ;
6
5
7
- export default {
6
+ const handlers = defineHandlers ( {
8
7
async tokensCreate ( request , reply ) {
9
8
const client = await request . db . query . users . findFirst ( {
10
9
where : eq ( schemas . users . email , request . body . email ) ,
@@ -13,4 +12,6 @@ export default {
13
12
const token = request . server . jwt . sign ( { id : client . id } ) ;
14
13
return reply . code ( 201 ) . send ( { token } ) ;
15
14
} ,
16
- } satisfies Partial < RouteHandlers > ;
15
+ } ) ;
16
+
17
+ export default handlers ;
Original file line number Diff line number Diff line change 1
1
import { asc , eq } from 'drizzle-orm' ;
2
-
3
2
import * 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' ;
6
4
import type { UserCreateDto , UserEditDto } from '../../types/handlers/index.ts' ;
7
5
import UserValidator from '../../validators/UserValidator.ts' ;
8
6
9
- export default {
7
+ const handlers = defineHandlers ( {
10
8
async usersIndex ( request , reply ) {
11
9
const page = request . query ?. page ?? 1 ;
12
10
const users = await request . db . query . users . findMany ( {
@@ -59,4 +57,6 @@ export default {
59
57
ensure ( reply , user , 404 ) ;
60
58
return reply . code ( 204 ) . send ( ) ;
61
59
} ,
62
- } satisfies Partial < RouteHandlers > ;
60
+ } ) ;
61
+
62
+ export default handlers ;
You can’t perform that action at this time.
0 commit comments