1
0
mirror of https://github.com/stonith404/pingvin-share.git synced 2024-11-17 21:00:11 +01:00
pingvin-share/backend/src/config/config.controller.ts

48 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-12-01 23:07:49 +01:00
import {
Body,
Controller,
Get,
Param,
Patch,
Post,
UseGuards,
} from "@nestjs/common";
import { AdministratorGuard } from "src/auth/guard/isAdmin.guard";
2022-12-01 23:07:49 +01:00
import { JwtGuard } from "src/auth/guard/jwt.guard";
import { ConfigService } from "./config.service";
import { AdminConfigDTO } from "./dto/adminConfig.dto";
import { ConfigDTO } from "./dto/config.dto";
import UpdateConfigDTO from "./dto/updateConfig.dto";
@Controller("configs")
export class ConfigController {
constructor(private configService: ConfigService) {}
@Get()
async list() {
return new ConfigDTO().fromList(await this.configService.list());
}
@Get("admin")
2022-12-01 23:07:49 +01:00
@UseGuards(JwtGuard, AdministratorGuard)
async listForAdmin() {
return new AdminConfigDTO().fromList(
await this.configService.listForAdmin()
);
}
@Patch("admin/:key")
2022-12-01 23:07:49 +01:00
@UseGuards(JwtGuard, AdministratorGuard)
async update(@Param("key") key: string, @Body() data: UpdateConfigDTO) {
return new AdminConfigDTO().from(
await this.configService.update(key, data.value)
);
}
2022-12-01 23:07:49 +01:00
@Post("admin/finishSetup")
@UseGuards(JwtGuard, AdministratorGuard)
async finishSetup() {
return await this.configService.finishSetup();
}
}