Skip to content
Snippets Groups Projects
Commit 48a49958 authored by Chiquita Ahsanunnisa's avatar Chiquita Ahsanunnisa
Browse files

Merge branch 'task/restore-deleted-module' into 'development'

task: restore deleted module

See merge request !43
parents 87f1140e 024bb15e
Branches
Tags
2 merge requests!58final release,!43task: restore deleted module
...@@ -35,6 +35,7 @@ import { SubmisiTugas } from "./entities/submisiTugas"; ...@@ -35,6 +35,7 @@ import { SubmisiTugas } from "./entities/submisiTugas";
import { KelasModule } from "./kelas/kelas.module"; import { KelasModule } from "./kelas/kelas.module";
import { BerkasSubmisiTugas } from "./entities/berkasSubmisiTugas"; import { BerkasSubmisiTugas } from "./entities/berkasSubmisiTugas";
import { BerkasTugas } from "./entities/berkasTugas"; import { BerkasTugas } from "./entities/berkasTugas";
import { DosenBimbinganModule } from "./dosen-bimbingan/dosen-bimbingan.module";
@Module({ @Module({
imports: [ imports: [
...@@ -82,6 +83,7 @@ import { BerkasTugas } from "./entities/berkasTugas"; ...@@ -82,6 +83,7 @@ import { BerkasTugas } from "./entities/berkasTugas";
BimbinganModule, BimbinganModule,
KonfigurasiModule, KonfigurasiModule,
KelasModule, KelasModule,
DosenBimbinganModule,
], ],
controllers: [AppController], controllers: [AppController],
providers: [AppService], providers: [AppService],
......
import { Controller, Get, UseGuards } from "@nestjs/common";
import {
ApiBearerAuth,
ApiCookieAuth,
ApiOkResponse,
ApiOperation,
ApiTags,
} from "@nestjs/swagger";
import { RoleEnum } from "src/entities/pengguna.entity";
import { CustomAuthGuard } from "src/middlewares/custom-auth.guard";
import { Roles } from "src/middlewares/roles.decorator";
import { RolesGuard } from "src/middlewares/roles.guard";
import { GetDosbimResDto } from "./dosen-bimbingan.dto";
import { DosenBimbinganService } from "./dosen-bimbingan.service";
@ApiTags("Dosen Bimbingan")
@ApiCookieAuth()
@ApiBearerAuth()
@Controller("dosen-bimbingan")
@UseGuards(CustomAuthGuard, RolesGuard)
@Roles(RoleEnum.ADMIN, RoleEnum.S2_TIM_TESIS, RoleEnum.S2_MAHASISWA)
export class DosenBimbinganController {
constructor(private readonly dosbimService: DosenBimbinganService) {}
@ApiOkResponse({ type: [GetDosbimResDto] })
@ApiOperation({
summary:
"Get all available dosen bimbingan. Roles: ADMIN, S2_TIM_TESIS, S2_MAHASISWA",
})
@Get()
async get() {
return await this.dosbimService.getAll();
}
}
import { IsOptional } from "@nestjs/class-validator";
import { ApiPropertyOptional, PickType } from "@nestjs/swagger";
import { IsUUID } from "class-validator";
import { Pengguna } from "src/entities/pengguna.entity";
export class DosbimOptQueryDto {
@ApiPropertyOptional({ example: "550e8400-e29b-41d4-a716-446655440000" })
@IsOptional()
@IsUUID()
regId?: string;
}
export class GetDosbimResDto extends PickType(Pengguna, [
"id",
"email",
"nama",
] as const) {}
import { Module } from "@nestjs/common";
import { DosenBimbinganController } from "./dosen-bimbingan.controller";
import { DosenBimbinganService } from "./dosen-bimbingan.service";
import { AuthModule } from "src/auth/auth.module";
import { TypeOrmModule } from "@nestjs/typeorm";
import { PendaftaranTesis } from "src/entities/pendaftaranTesis.entity";
import { DosenBimbingan } from "src/entities/dosenBimbingan.entity";
import { Pengguna } from "src/entities/pengguna.entity";
import { KonfigurasiModule } from "src/konfigurasi/konfigurasi.module";
import { CustomStrategy } from "src/middlewares/custom.strategy";
@Module({
imports: [
TypeOrmModule.forFeature([PendaftaranTesis, DosenBimbingan, Pengguna]),
AuthModule,
KonfigurasiModule,
],
controllers: [DosenBimbinganController],
providers: [DosenBimbinganService, CustomStrategy],
})
export class DosenBimbinganModule {}
import { Injectable } from "@nestjs/common";
import { InjectRepository } from "@nestjs/typeorm";
import { Pengguna, RoleEnum } from "src/entities/pengguna.entity";
import { ArrayContains, Repository } from "typeorm";
@Injectable()
export class DosenBimbinganService {
constructor(
@InjectRepository(Pengguna)
private penggunaRepo: Repository<Pengguna>,
) {}
async getAll() {
return await this.penggunaRepo.find({
select: {
id: true,
nama: true,
email: true,
},
where: {
roles: ArrayContains([RoleEnum.S2_PEMBIMBING]),
},
});
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment