-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.ts
124 lines (107 loc) · 1.98 KB
/
test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import {
assert,
assertEquals,
assertThrows,
assertThrowsAsync,
} from "./deps.ts";
import {
Controller,
Injectable,
Module,
ReverbApplication,
HttpStatusCode,
Get,
RequestHeader,
Post,
Body,
Param,
} from "./mod.ts";
Deno.test("startBasicApp", function (): void {
@Injectable()
class AppService {
log() {
console.log("log from app service");
}
}
enum UserRole {
ADMIN = "ADMIN",
USER = "USER",
GUEST = "GUEST",
}
interface User {
name: string;
id: number;
role: UserRole;
}
@Injectable()
class UserService {
log() {
console.log("log from user service");
}
getUser(): User {
return {
name: "username",
id: 1,
role: UserRole.ADMIN,
};
}
}
@Controller("/api/test")
class TestController {
constructor(
private appService: AppService,
private userService: UserService,
) {
}
@Get()
get() {
this.appService.log();
this.userService.log();
}
@Get("/host")
getHeaders(@RequestHeader("host") host: string) {
return host;
}
@Get("/error")
throwError() {
throw {
status: HttpStatusCode.INTERNAL_SERVER_ERROR,
message: "Error test",
};
}
@Post()
get2(@Body() body: string) {
return body;
}
}
@Controller("/api/users")
class UserController {
constructor(
private appService: AppService,
private userService: UserService,
) {
}
@Get("/{id}")
users(@Param("id") id: string): User {
return this.userService.getUser();
}
@Post("/{id}")
createUsers(
@Param("id") id: string,
@Body() body: string,
): object {
return {
id,
body,
};
}
}
@Module({
controllers: [TestController, UserController],
providers: [AppService, UserService],
})
class AppModule {}
const app = new ReverbApplication(AppModule);
app.listen(8081);
app.close();
});