chore: clean up

This commit is contained in:
Methapon Metanipat 2024-11-07 14:20:52 +07:00
parent 4c28941bc2
commit b6a5e3c41e

View file

@ -13,18 +13,10 @@ import {
Security, Security,
Tags, Tags,
} from "tsoa"; } from "tsoa";
import { RequestWithUser } from "../interfaces/user";
import prisma from "../db"; import prisma from "../db";
import { notFoundError } from "../utils/error"; import { notFoundError } from "../utils/error";
import { queryOrNot } from "../utils/relation"; import { queryOrNot } from "../utils/relation";
const MANAGE_ROLES = ["system", "head_of_admin", "admin"];
function globalAllow(user: RequestWithUser["user"]) {
const allowList = ["system", "head_of_admin"];
return allowList.some((v) => user.roles?.includes(v));
}
type InstitutionPayload = { type InstitutionPayload = {
name: string; name: string;
@ -49,6 +41,7 @@ type InstitutionPayload = {
export class InstitutionController extends Controller { export class InstitutionController extends Controller {
@Get() @Get()
@Security("keycloak") @Security("keycloak")
@OperationId("getInstitutionList")
async getInstitutionList( async getInstitutionList(
@Query() query: string = "", @Query() query: string = "",
@Query() page: number = 1, @Query() page: number = 1,
@ -74,6 +67,7 @@ export class InstitutionController extends Controller {
@Get("{institutionId}") @Get("{institutionId}")
@Security("keycloak") @Security("keycloak")
@OperationId("getInstitution")
async getInstitution(@Path() institutionId: string, @Query() group?: string) { async getInstitution(@Path() institutionId: string, @Query() group?: string) {
return await prisma.institution.findFirst({ return await prisma.institution.findFirst({
where: { id: institutionId, group }, where: { id: institutionId, group },
@ -82,6 +76,7 @@ export class InstitutionController extends Controller {
@Post() @Post()
@Security("keycloak") @Security("keycloak")
@OperationId("createInstitution")
async createInstitution(@Body() body: InstitutionPayload) { async createInstitution(@Body() body: InstitutionPayload) {
return await prisma.$transaction(async (tx) => { return await prisma.$transaction(async (tx) => {
const last = await tx.runningNo.upsert({ const last = await tx.runningNo.upsert({
@ -107,6 +102,7 @@ export class InstitutionController extends Controller {
@Put("{institutionId}") @Put("{institutionId}")
@Security("keycloak") @Security("keycloak")
@OperationId("updateInstitution")
async updateInstitution(@Path() institutionId: string, @Body() body: InstitutionPayload) { async updateInstitution(@Path() institutionId: string, @Body() body: InstitutionPayload) {
return await prisma.institution.update({ return await prisma.institution.update({
where: { id: institutionId }, where: { id: institutionId },
@ -116,6 +112,7 @@ export class InstitutionController extends Controller {
@Delete("{institutionId}") @Delete("{institutionId}")
@Security("keycloak") @Security("keycloak")
@OperationId("deleteInstitution")
async deleteInstitution(@Path() institutionId: string) { async deleteInstitution(@Path() institutionId: string) {
return await prisma.$transaction(async (tx) => { return await prisma.$transaction(async (tx) => {
const record = await tx.institution.findFirst({ const record = await tx.institution.findFirst({