|
1 | | -import { AnyObj, controller, RequestContext, SingletonRequestContext, route } from '@ditsmod/core'; |
| 1 | +import { AnyObj, controller, RequestContext, SingletonRequestContext, optional } from '@ditsmod/core'; |
| 2 | +import { route } from '@ditsmod/routing'; |
2 | 3 | import Handlebars from 'handlebars'; |
3 | 4 |
|
4 | 5 | import { DbService } from './db.service.js'; |
@@ -27,9 +28,9 @@ const tmpl = Handlebars.compile( |
27 | 28 | ].join(''), |
28 | 29 | ); |
29 | 30 |
|
30 | | -@controller({ isSingleton: true }) |
| 31 | +@controller({ scope: 'module' }) |
31 | 32 | export class OneController { |
32 | | - constructor(private dbService: DbService) {} |
| 33 | + constructor(@optional() private dbService: DbService) {} |
33 | 34 |
|
34 | 35 | @route('GET', 'db') |
35 | 36 | async getSingleQuery(ctx: RequestContext) { |
@@ -61,28 +62,24 @@ export class OneController { |
61 | 62 | const fortunes = await this.dbService.findAllFortunes(); |
62 | 63 | fortunes.push(additionalFortune); |
63 | 64 | fortunes.sort(compare); |
64 | | - ctx.nodeRes.setHeader('Server', 'Ditsmod'); |
65 | | - ctx.nodeRes.setHeader('Content-Type', 'text/html; charset=utf-8'); |
66 | | - ctx.nodeRes.end(tmpl({ fortunes })); |
| 65 | + ctx.rawRes.setHeader('Server', 'Ditsmod'); |
| 66 | + ctx.rawRes.setHeader('Content-Type', 'text/html; charset=utf-8'); |
| 67 | + ctx.rawRes.end(tmpl({ fortunes })); |
67 | 68 | } |
68 | 69 |
|
69 | 70 | @route('GET', 'plaintext') |
70 | 71 | getHello(ctx: SingletonRequestContext) { |
71 | | - ctx.nodeRes.setHeader('Server', 'Ditsmod'); |
72 | | - ctx.nodeRes.setHeader('Content-Type', 'text/plain; charset=utf-8'); |
73 | | - ctx.nodeRes.end('Hello, World!'); |
| 72 | + ctx.rawRes.setHeader('Server', 'Ditsmod'); |
| 73 | + ctx.rawRes.setHeader('Content-Type', 'text/plain; charset=utf-8'); |
| 74 | + ctx.rawRes.end('Hello, World!'); |
74 | 75 | } |
75 | 76 |
|
76 | 77 | @route('GET', 'json') |
77 | 78 | getJson(ctx: SingletonRequestContext) { |
78 | | - ctx.nodeRes.setHeader('Server', 'Ditsmod'); |
79 | | - ctx.nodeRes.setHeader('Content-Type', 'application/json; charset=utf-8'); |
80 | | - ctx.nodeRes.end(JSON.stringify({ message: 'Hello, World!' })); |
| 79 | + this.sendJson(ctx, { message: 'Hello, World!' }); |
81 | 80 | } |
82 | 81 |
|
83 | 82 | protected sendJson(ctx: RequestContext, value: AnyObj) { |
84 | | - ctx.nodeRes.setHeader('Server', 'Ditsmod'); |
85 | | - ctx.nodeRes.setHeader('Content-Type', 'application/json; charset=utf-8'); |
86 | | - ctx.nodeRes.end(JSON.stringify(value)); |
| 83 | + ctx.setHeader('Server', 'Ditsmod').sendJson(value); |
87 | 84 | } |
88 | 85 | } |
0 commit comments