This commit is contained in:
Bastian Wagner
2024-10-25 12:32:26 +02:00
parent d4f1fbbf39
commit b4e264eda9
40 changed files with 538 additions and 66 deletions

View File

@@ -1,4 +1,14 @@
import { Controller, Delete, Get, Param, Req, UseGuards } from '@nestjs/common';
import {
Body,
Controller,
Delete,
Get,
Param,
Post,
Put,
Req,
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from 'src/core/guards/auth.guard';
import { CylinderService } from './cylinder.service';
import { AuthenticatedRequest } from 'src/model/interface/authenticated-request.interface';
@@ -15,7 +25,23 @@ export class CylinderController {
}
@Delete(':id')
deleteKey(@Req() req: AuthenticatedRequest, @Param() id: string) {
return this.service.deleteKey(req.user, id);
deleteKey(@Req() req: AuthenticatedRequest, @Param('id') id: string) {
return this.service.deleteCylinder(req.user, id);
}
@Put()
updateCylinder(
@Req() req: AuthenticatedRequest,
@Body() b: Partial<Cylinder>,
) {
return this.service.updateCylinder(req.user, b);
}
@Post()
createCylinder(
@Req() req: AuthenticatedRequest,
@Body() b: Partial<Cylinder>,
) {
return this.service.createCylinder(req.user, b);
}
}

View File

@@ -19,12 +19,28 @@ export class CylinderService {
return c;
}
async deleteKey(user: User, id: string) {
async deleteCylinder(user: User, cylinderid: string) {
const cylinder = await this.cylinderRepo.findOneOrFail({
where: { id: id, system: { managers: { id: user.id } } },
where: { id: cylinderid, system: { managers: { id: user.id } } },
relations: ['keys'],
});
await this.keyRepo.softRemove(cylinder.keys);
return this.cylinderRepo.softRemove(cylinder);
}
async updateCylinder(user: User, cylinder: Partial<Cylinder>) {
const original = await this.cylinderRepo.findOneOrFail({
where: { id: cylinder.id, system: { managers: { id: user.id } } },
relations: ['keys', 'system'],
});
Object.keys(cylinder).forEach((k: string) => {
original[k] = cylinder[k];
});
return this.cylinderRepo.save(original);
}
createCylinder(user: User, cylinder: Partial<Cylinder>) {
return this.cylinderRepo.save(this.cylinderRepo.create(cylinder));
}
}