import { Controller, Post, Put, Delete, Route, Security, Tags, Body, Path, Request, SuccessResponse, Response, Get, Query, Example, } from "tsoa"; import { AppDataSource } from "../database/data-source"; import HttpSuccess from "../interfaces/http-success"; import HttpStatus from "../interfaces/http-status"; import HttpError from "../interfaces/http-error"; import { Profile, CreateProfile, UpdateProfile, ProfileHistory } from "../entities/Profile"; import { Brackets, IsNull, Like, Not } from "typeorm"; import { OrgRevision } from "../entities/OrgRevision"; import { PosMaster } from "../entities/PosMaster"; import { PosLevel } from "../entities/PosLevel"; import { PosType } from "../entities/PosType"; import { calculateRetireDate, calculateRetireYear } from "../interfaces/utils"; import { RequestWithUser } from "../middlewares/user"; import { BloodGroup } from "../entities/BloodGroup"; import { EducationLevel } from "../entities/EducationLevel"; import { Gender } from "../entities/Gender"; import { Prefixe } from "../entities/Prefixe"; import { Relationship } from "../entities/Relationship"; import { Religion } from "../entities/Religion"; import { Rank } from "../entities/Rank"; @Route("api/v1/org/metadata") @Tags("Profile") @Security("bearerAuth") @Response( HttpStatus.INTERNAL_SERVER_ERROR, "เกิดข้อผิดพลาด ไม่สามารถแสดงรายการได้ กรุณาลองใหม่ในภายหลัง", ) @SuccessResponse(HttpStatus.OK, "สำเร็จ") export class MainController extends Controller { private bloodGroupRepo = AppDataSource.getRepository(BloodGroup); private educationLevelRepo = AppDataSource.getRepository(EducationLevel); private genderRepo = AppDataSource.getRepository(Gender); private prefixeRepo = AppDataSource.getRepository(Prefixe); private relationshipRepo = AppDataSource.getRepository(Relationship); private religionRepo = AppDataSource.getRepository(Religion); private rankRepo = AppDataSource.getRepository(Rank); /** * API ข้อมูลหลัก * * @summary ORG_065 - ข้อมูลหลัก * */ @Get("main/person") async getMainPerson() { const bloodGroups = await this.bloodGroupRepo.find(); const genders = await this.genderRepo.find(); const prefixs = await this.prefixeRepo.find(); const relationships = await this.relationshipRepo.find(); const religions = await this.religionRepo.find(); const rank = await this.rankRepo.find(); return new HttpSuccess({ bloodGroups, genders, prefixs, relationships, religions, rank }); } }