-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroute.ts
More file actions
39 lines (38 loc) · 1.28 KB
/
route.ts
File metadata and controls
39 lines (38 loc) · 1.28 KB
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
import 'reflect-metadata';
import { GetAllUsersUseCase } from '@api/usecases/users/get-all-users.usecase';
import { handleApiRequest } from '@api/utils/handle-api-request';
import type { GetAllUsersResponseDto } from '@shared/dto/responses/get-all-users.response.dto';
import type { UserModelDto } from '@shared/dto/models/user.model.dto';
import { container } from 'tsyringe';
/**
* @swagger
* /api/users:
* get:
* tags:
* - Users
* description: Get all users
* responses:
* 200:
* description: Returns a list of users
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/GetAllUsersResponseDto'
* 404:
* description: Returns a not found error
* content:
* application/json:
* schema:
* $ref: '#/components/schemas/HttpResponseDto'
* example:
* error: Users not found
*/
export async function GET(): Promise<Response> {
const getAllUsersUseCase: GetAllUsersUseCase =
container.resolve(GetAllUsersUseCase);
return await handleApiRequest(async () => {
const users: UserModelDto[] = await getAllUsersUseCase.handle();
const response: GetAllUsersResponseDto = { users };
return response;
});
}