universo-platform-3d
67 строк · 2.1 Кб
1import {
2Body,
3Controller,
4Delete,
5Get,
6Param,
7Patch,
8UsePipes,
9ValidationPipe
10} from '@nestjs/common'
11import { ApiParam } from '@nestjs/swagger'
12import { MirrorDBRecordId, UserId } from '../util/mongo-object-id-helpers'
13import { MirrorDBService } from './mirror-db.service'
14import { UpdateMirrorDBRecordDto } from './dto/update-mirror-db-record.dto'
15import { FirebaseTokenAuthGuard } from '../auth/auth.guard'
16import { UserToken } from '../auth/get-user.decorator'
17
18@Controller('mirror-db')
19@UsePipes(new ValidationPipe({ whitelist: true }))
20@FirebaseTokenAuthGuard()
21export class MirrorDBController {
22constructor(private readonly mirrorDBService: MirrorDBService) {}
23
24@Get(':id')
25@ApiParam({ name: 'id', type: String, required: true })
26public async getRecordFromMirrorDBById(@Param('id') id: MirrorDBRecordId) {
27return await this.mirrorDBService.getRecordFromMirrorDBById(id)
28}
29
30@Get('space/:spaceId')
31@ApiParam({ name: 'spaceId', type: String, required: true })
32public async getRecordFromMirrorDBBySpaceId(
33@Param('spaceId') spaceId: string
34) {
35return await this.mirrorDBService.getRecordFromMirrorDBBySpaceId(spaceId)
36}
37
38@Get('space-version/:spaceVersionId')
39@ApiParam({ name: 'spaceVersionId', type: String, required: true })
40public async getRecordFromMirrorDBBySpaceVersionId(
41@Param('spaceVersionId') spaceVersionId: string
42) {
43return await this.mirrorDBService.getRecordFromMirrorDBBySpaceVersionId(
44spaceVersionId
45)
46}
47
48@Patch(':id')
49@ApiParam({ name: 'id', type: String, required: true })
50public async updateRecordInMirrorDBById(
51@Param('id') id: MirrorDBRecordId,
52@Body() updateMirrorDBRecordDto: UpdateMirrorDBRecordDto,
53@UserToken('user_id') userId: UserId
54) {
55return await this.mirrorDBService.updateRecordInMirrorDBByIdWithRoleChecks(
56id,
57updateMirrorDBRecordDto,
58userId
59)
60}
61
62@Delete(':id')
63@ApiParam({ name: 'id', type: String, required: true })
64public async deleteRecordFromMirrorDBById(@Param('id') id: MirrorDBRecordId) {
65return await this.mirrorDBService.deleteRecordFromMirrorDBById(id)
66}
67}
68