From 29afc54be581ffa8c3ce52b72209f9fa188167ee Mon Sep 17 00:00:00 2001
From: Chiquita Ahsanunnisa <16521248@mahasiswa.itb.ac.id>
Date: Sat, 4 May 2024 17:25:04 +0700
Subject: [PATCH] fix: wrong search query

---
 .../registrasi-sidsem.controller.ts           |  6 +++--
 .../registrasi-sidsem.dto.ts                  |  4 ++--
 .../registrasi-sidsem.service.ts              | 22 ++++++++++---------
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/src/registrasi-sidsem/registrasi-sidsem.controller.ts b/src/registrasi-sidsem/registrasi-sidsem.controller.ts
index 3cc510a..0b86f03 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 46b2856..6e3495e 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 0c25202..de643d6 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,
         });
     }
-- 
GitLab