universo-platform-3d

Форк
0
67 строк · 2.1 Кб
1
import {
2
  Body,
3
  Controller,
4
  Delete,
5
  Get,
6
  Param,
7
  Patch,
8
  UsePipes,
9
  ValidationPipe
10
} from '@nestjs/common'
11
import { ApiParam } from '@nestjs/swagger'
12
import { MirrorDBRecordId, UserId } from '../util/mongo-object-id-helpers'
13
import { MirrorDBService } from './mirror-db.service'
14
import { UpdateMirrorDBRecordDto } from './dto/update-mirror-db-record.dto'
15
import { FirebaseTokenAuthGuard } from '../auth/auth.guard'
16
import { UserToken } from '../auth/get-user.decorator'
17

18
@Controller('mirror-db')
19
@UsePipes(new ValidationPipe({ whitelist: true }))
20
@FirebaseTokenAuthGuard()
21
export class MirrorDBController {
22
  constructor(private readonly mirrorDBService: MirrorDBService) {}
23

24
  @Get(':id')
25
  @ApiParam({ name: 'id', type: String, required: true })
26
  public async getRecordFromMirrorDBById(@Param('id') id: MirrorDBRecordId) {
27
    return await this.mirrorDBService.getRecordFromMirrorDBById(id)
28
  }
29

30
  @Get('space/:spaceId')
31
  @ApiParam({ name: 'spaceId', type: String, required: true })
32
  public async getRecordFromMirrorDBBySpaceId(
33
    @Param('spaceId') spaceId: string
34
  ) {
35
    return await this.mirrorDBService.getRecordFromMirrorDBBySpaceId(spaceId)
36
  }
37

38
  @Get('space-version/:spaceVersionId')
39
  @ApiParam({ name: 'spaceVersionId', type: String, required: true })
40
  public async getRecordFromMirrorDBBySpaceVersionId(
41
    @Param('spaceVersionId') spaceVersionId: string
42
  ) {
43
    return await this.mirrorDBService.getRecordFromMirrorDBBySpaceVersionId(
44
      spaceVersionId
45
    )
46
  }
47

48
  @Patch(':id')
49
  @ApiParam({ name: 'id', type: String, required: true })
50
  public async updateRecordInMirrorDBById(
51
    @Param('id') id: MirrorDBRecordId,
52
    @Body() updateMirrorDBRecordDto: UpdateMirrorDBRecordDto,
53
    @UserToken('user_id') userId: UserId
54
  ) {
55
    return await this.mirrorDBService.updateRecordInMirrorDBByIdWithRoleChecks(
56
      id,
57
      updateMirrorDBRecordDto,
58
      userId
59
    )
60
  }
61

62
  @Delete(':id')
63
  @ApiParam({ name: 'id', type: String, required: true })
64
  public async deleteRecordFromMirrorDBById(@Param('id') id: MirrorDBRecordId) {
65
    return await this.mirrorDBService.deleteRecordFromMirrorDBById(id)
66
  }
67
}
68

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.