diff --git a/src/registrasi-sidsem/registrasi-sidsem.controller.ts b/src/registrasi-sidsem/registrasi-sidsem.controller.ts index 3cc510a800f8d1434f56374cf78aee03bbee5d07..0b86f03572797d80254190b1a67f57e191bbe38c 100644 --- a/src/registrasi-sidsem/registrasi-sidsem.controller.ts +++ b/src/registrasi-sidsem/registrasi-sidsem.controller.ts @@ -13,6 +13,7 @@ import { import { ApiBearerAuth, ApiCookieAuth, + ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, @@ -24,6 +25,7 @@ import { CreatePengajuanSidsemDto, GetAllPengajuanSidangReqQueryDto, GetAllPengajuanSidangRespDto, + GetOnePengajuanSidangRespDto, PengajuanSidsemIdDto, SidsemMhsIdParamDto, UpdateSidsemDetailDto, @@ -48,7 +50,7 @@ import { export class RegistrasiSidsemController { constructor(private readonly regisSidsemService: RegistrasiSidsemService) {} - @ApiOkResponse({ type: PengajuanSidsemIdDto }) + @ApiCreatedResponse({ type: PengajuanSidsemIdDto }) @Roles(RoleEnum.S2_MAHASISWA) @Post() async create(@Req() req: Request, @Body() dto: CreatePengajuanSidsemDto) { @@ -76,7 +78,7 @@ export class RegistrasiSidsemController { ); } - @ApiOkResponse({ type: PengajuanSidsemIdDto }) + @ApiOkResponse({ type: GetOnePengajuanSidangRespDto }) @Roles(...HIGH_AUTHORITY_ROLES, ...DOSEN, RoleEnum.S2_MAHASISWA) @Get("/mahasiswa/:mhsId") async findOne(@Req() req: Request, @Param() param: SidsemMhsIdParamDto) { diff --git a/src/registrasi-sidsem/registrasi-sidsem.dto.ts b/src/registrasi-sidsem/registrasi-sidsem.dto.ts index 46b28569e4da5770cfd5449a1b4561a6c46e3b50..6e3495e64e7539c0b6d1625b688c2db542480e0f 100644 --- a/src/registrasi-sidsem/registrasi-sidsem.dto.ts +++ b/src/registrasi-sidsem/registrasi-sidsem.dto.ts @@ -117,9 +117,9 @@ export class GetOnePengajuanSidangRespDto extends GetAllPengajuanSidangItemDto { judulTopik: string; @ApiProperty() deskripsiTopik: string; - @ApiProperty({ isArray: true }) + @ApiProperty({ type: [String] }) dosenPembimbing: string[]; - @ApiProperty({ isArray: true }) + @ApiProperty({ type: [String] }) dosenPenguji: string[]; } diff --git a/src/registrasi-sidsem/registrasi-sidsem.service.ts b/src/registrasi-sidsem/registrasi-sidsem.service.ts index 0c25202e31029b46f99720233f165c0677fda919..de643d6189ee0907bcc2ef450d5aad9fe11dfb6c 100644 --- a/src/registrasi-sidsem/registrasi-sidsem.service.ts +++ b/src/registrasi-sidsem/registrasi-sidsem.service.ts @@ -166,24 +166,26 @@ export class RegistrasiSidsemService { "latest", "latest.latest_pendaftaranTesisId = ps.pendaftaranTesisId AND ps.waktuPengiriman = latest.latestPengiriman", ) - .innerJoin("ps.pendaftaranTesis", "pt") - .innerJoin("ps.berkasSidsem", "berkasSidsem") - .innerJoin("pt.dosenBimbingan", "dosenBimbingan") - .innerJoin("dosenBimbingan.dosen", "dosen") - .innerJoin("pt.mahasiswa", "mahasiswa") + .leftJoin("ps.pendaftaranTesis", "pt") + .leftJoin("ps.berkasSidsem", "berkasSidsem") + .leftJoin("pt.dosenBimbingan", "dosenBimbingan") + .leftJoin("dosenBimbingan.dosen", "dosen") + .leftJoin("pt.mahasiswa", "mahasiswa") .where("mahasiswa.aktif = true") .orderBy("ps.waktuPengiriman", "DESC"); if (idPembimbing) { - baseQuery.andWhere("dosenBimbingan.dosenId = :idPembimbing", { - idPembimbing, - }); + baseQuery + .innerJoin("pt.dosenBimbingan", "dosenBimbinganFilter") + .andWhere("dosenBimbinganFilter.idDosen = :idPembimbing", { + idPembimbing, + }); } if (idPenguji) { baseQuery - .innerJoin("ps.penguji", "penguji") - .andWhere("penguji.idDosen = :idPenguji", { + .innerJoin("ps.penguji", "pengujiFilter") + .andWhere("pengujiFilter.idDosen = :idPenguji", { idPenguji, }); }