Files
keyvault/api/src/modules/key/key.controller.ts
Bastian Wagner 03ae75c83d ...
2024-10-23 15:16:00 +02:00

80 lines
1.9 KiB
TypeScript

import {
Body,
Controller,
Delete,
Get,
Param,
Post,
Put,
Req,
UseGuards,
} from '@nestjs/common';
import { KeyService } from './key.service';
import { AuthenticatedRequest } from 'src/model/interface/authenticated-request.interface';
import { AuthGuard } from 'src/core/guards/auth.guard';
import { Key } from 'src/model/entitites';
import { CreateKeySystemDto } from 'src/model/dto/create-key-system.dto';
@UseGuards(AuthGuard)
@Controller('key')
export class KeyController {
constructor(private service: KeyService) {}
@Get()
getKeys(@Req() req: AuthenticatedRequest) {
return this.service.getUsersKeys(req.user);
}
@Post()
postKey(@Req() req: AuthenticatedRequest, @Body() key: Key) {
return this.service.createKey(req.user, key);
}
@Put()
updateKey(@Req() req: AuthenticatedRequest, @Body() key: Key) {
return this.service.updateKey(req.user, key);
}
@Put(':id/restore')
restoreKey(@Req() req: AuthenticatedRequest, @Param('id') id: string) {
return this.service.restoreKey(req.user, id);
}
@Delete(':id')
deleteKey(@Req() req: AuthenticatedRequest, @Param('id') id: string) {
return this.service.deleteKey(req.user, id);
}
@Get('cylinder')
getCylinders(@Req() req: AuthenticatedRequest) {
return this.service.getUsersCylinders(req.user);
}
@Post('system')
createKeySystem(
@Req() req: AuthenticatedRequest,
@Body() body: CreateKeySystemDto,
) {
return this.service.createKeySystem(req.user, body);
}
@Post(':id/handover')
handoutKey(
@Req() req: AuthenticatedRequest,
@Body() body: any,
@Param('id') id: string,
) {
return this.service.handoverKey(req.user, body, id);
}
@Get(':id/handover')
getKeyHandouts(@Req() req: AuthenticatedRequest, @Param('id') id: string) {
return this.service.getKeyHandovers(req.user, id);
}
@Get('Archive')
getArchive(@Req() req: AuthenticatedRequest) {
return this.service.getDeletedKeys(req.user);
}
}