Skip to content

GitLab

  • Menu
    • Projects Groups Snippets
      Help
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B BE-Siplah
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • SIPLAH
  • BE-Siplah
  • Merge requests
  • !15

Merged
Created 1 year ago by Ajeng Putri Kinasih@ajengwahyuOwner

Ajeng

  • Overview 0
  • Commits 3
  • Changes 8
  • You're only seeing other activity in the feed. To add a comment, switch to one of the following options.
Please register or sign in to reply
Compare
  • main (base)

and
  • latest version
    0b8a94c5
    3 commits, 9 months ago

8 files
+ 172
- 19

    Preferences

    File browser
    Compare changes
pri‎sma‎
migrat‎ions/…‎
migrat‎ion.sql‎ +15 -0
schema‎.prisma‎ +14 -0
s‎rc‎
key_r‎esult‎
key_result.c‎ontroller.ts‎ +2 -2
mee‎ting‎
d‎to‎
create-mee‎ting.dto.ts‎ +27 -1
meeting.co‎ntroller.ts‎ +17 -5
meeting.‎module.ts‎ +4 -1
meeting.s‎ervice.ts‎ +85 -10
mai‎n.ts‎ +8 -0
prisma/migrations/20240610092131_add_meeting_model/migration.sql 0 → 100644
+ 15
- 0
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE

-- CreateTable
CREATE TABLE "Meeting" (
"id_meeting" SERIAL NOT NULL,
"id_employee" INTEGER NOT NULL,
"date" TIMESTAMP(3) NOT NULL,
"start_time" TIMESTAMP(3) NOT NULL,
"end_time" TIMESTAMP(3) NOT NULL,
"link_meeting" TEXT NOT NULL,
"description" TEXT NOT NULL,
CONSTRAINT "Meeting_pkey" PRIMARY KEY ("id_meeting")
);
-- AddForeignKey
ALTER TABLE "Meeting" ADD CONSTRAINT "Meeting_id_employee_fkey" FOREIGN KEY ("id_employee") REFERENCES "Employee"("id_employee") ON DELETE RESTRICT ON UPDATE CASCADE;
prisma/schema.prisma
+ 14
- 0
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE


Show all unchanged lines Show 20 lines
Presensi Presensi[]
overtimes Overtimes[]
time_off TimeOff[]
meeting Meeting[]
}
enum Pendidikan {
Show 20 lines Show all unchanged lines Show 20 lines
menikah
melahirkan
}
model Meeting {
id_meeting Int @id @default(autoincrement())
id_employee Int
employee Employee? @relation(fields: [id_employee], references: [id_employee])
date DateTime
start_time DateTime
end_time DateTime
link_meeting String
description String
}
src/key_result/key_result.controller.ts
+ 2
- 2
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE


Show all unchanged lines Show 20 lines
Get,
Post,
Body,
Patch,
Param,
Delete,
Put,
// UseGuards,
} from '@nestjs/common';
import { KeyResultService } from './key_result.service';
Show 20 lines Show all unchanged lines Show 20 lines
return this.keyResultService.findOne({ id_key_result: +id });
}
@Patch(':id')
@Put(':id')
update(
@Param('id') id: string,
@Body() updateKeyResultDto: UpdateKeyResultDto,
Show 20 lines Show all unchanged lines
src/meeting/dto/create-meeting.dto.ts
+ 27
- 1
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE

export class CreateMeetingDto {}
import { IsDateString, IsInt, IsNotEmpty, IsString } from 'class-validator';
export class CreateMeetingDto {
@IsNotEmpty()
@IsInt()
id_employee: number;
@IsNotEmpty()
@IsDateString()
date: string;
@IsNotEmpty()
@IsDateString()
start_time: string;
@IsNotEmpty()
@IsDateString()
end_time: string;
@IsNotEmpty()
@IsString()
link_meeting: string;
@IsNotEmpty()
@IsString()
description: string;
}
src/meeting/meeting.controller.ts
+ 17
- 5
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE


import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import {
Controller,
Get,
Post,
Body,
Param,
Delete,
Put,
} from '@nestjs/common';
import { MeetingService } from './meeting.service';
import { CreateMeetingDto } from './dto/create-meeting.dto';
import { UpdateMeetingDto } from './dto/update-meeting.dto';
import { AuthService } from 'src/auth/auth.service';
@Controller('meeting')
export class MeetingController {
constructor(private readonly meetingService: MeetingService) {}
constructor(
private readonly meetingService: MeetingService,
private readonly authService: AuthService,
) {}
@Post()
create(@Body() createMeetingDto: CreateMeetingDto) {
Show 20 lines Show all unchanged lines Show 20 lines
@Get(':id')
findOne(@Param('id') id: string) {
return this.meetingService.findOne(+id);
return this.meetingService.findOne({ id_meeting: +id });
}
@Patch(':id')
@Put(':id')
update(@Param('id') id: string, @Body() updateMeetingDto: UpdateMeetingDto) {
return this.meetingService.update(+id, updateMeetingDto);
return this.meetingService.update({ id_meeting: +id }, updateMeetingDto);
}
@Delete(':id')
Show 20 lines Show all unchanged lines
src/meeting/meeting.module.ts
+ 4
- 1
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE

import { Module } from '@nestjs/common';
import { MeetingService } from './meeting.service';
import { MeetingController } from './meeting.controller';
import { PrismaService } from 'src/prisma.service';
import { AuthService } from 'src/auth/auth.service';
import { EmployeeService } from 'src/employee/employee.service';
@Module({
controllers: [MeetingController],
providers: [MeetingService]
providers: [MeetingService, PrismaService, AuthService, EmployeeService],
})
export class MeetingModule {}
src/meeting/meeting.service.ts
+ 85
- 10
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE

import { Injectable } from '@nestjs/common';
import { BadRequestException, Injectable } from '@nestjs/common';
import { CreateMeetingDto } from './dto/create-meeting.dto';
import { UpdateMeetingDto } from './dto/update-meeting.dto';
import { PrismaService } from 'src/prisma.service';
import { Prisma } from '@prisma/client';
@Injectable()
export class MeetingService {
create(createMeetingDto: CreateMeetingDto) {
return 'This action adds a new meeting';
constructor(private prisma: PrismaService) {}
async create(createMeetingDto: CreateMeetingDto) {
try {
const createMeeting = await this.prisma.meeting.create({
data: {
id_employee: createMeetingDto.id_employee,
date: new Date(createMeetingDto.date),
start_time: new Date(createMeetingDto.start_time),
end_time: new Date(createMeetingDto.end_time),
link_meeting: createMeetingDto.link_meeting,
description: createMeetingDto.description,
},
});
return createMeeting;
} catch (error) {
console.error('Error creating meeting:', error);
throw new BadRequestException('Gagal menambahkan meeting');
}
}
findAll() {
return `This action returns all meeting`;
return this.prisma.meeting.findMany();
}
findOne(id: number) {
return `This action returns a #${id} meeting`;
async findOne(getMeetingbyId: Prisma.MeetingWhereUniqueInput) {
const getMeeting = await this.prisma.meeting.findUnique({
where: getMeetingbyId,
});
if (!getMeeting) {
throw new BadRequestException('data tidak ditemukan');
}
return getMeeting;
}
update(id: number, updateMeetingDto: UpdateMeetingDto) {
return `This action updates a #${id} meeting`;
async update(
where: Prisma.MeetingWhereUniqueInput,
updateMeetingDto: UpdateMeetingDto,
) {
try {
const updateMeeting = await this.prisma.meeting.update({
where,
data: {
id_employee: updateMeetingDto.id_employee,
date: updateMeetingDto.date
? new Date(updateMeetingDto.date)
: undefined,
start_time: updateMeetingDto.start_time
? new Date(updateMeetingDto.start_time)
: undefined,
end_time: updateMeetingDto.end_time
? new Date(updateMeetingDto.end_time)
: undefined,
link_meeting: updateMeetingDto.link_meeting,
description: updateMeetingDto.description,
},
});
return {
message: 'Data meeting berhasil di update',
meeting: updateMeeting,
};
} catch (error) {
if (
error instanceof Prisma.PrismaClientKnownRequestError &&
error.code === 'P2025'
) {
throw new BadRequestException('Data meeting tidak dapat ditemukan');
}
throw error;
}
}
remove(id: number) {
return `This action removes a #${id} meeting`;
async remove(id: number) {
try {
const deleteMeeting = await this.prisma.meeting.delete({
where: { id_meeting: id },
});
if (!deleteMeeting) {
throw new BadRequestException('Data meeting tidak dapat ditemukan');
}
return { message: 'Data meeting berhasil dihapus' };
} catch (error) {
if (
error instanceof Prisma.PrismaClientKnownRequestError &&
error.code === 'P2025'
) {
throw new BadRequestException('Data meeting tidak dapat ditemukan');
}
throw error;
}
}
}
src/main.ts
+ 8
- 0
  • View file @ 0b8a94c5

  • Edit in single-file editor

  • Edit in Web IDE


Show all unchanged lines Show 20 lines
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// Konfigurasi CORS
app.enableCors({
origin: 'http://localhost:5173', // Ganti dengan URL Vue.js Anda
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
credentials: true, // Izinkan pengiriman cookie dan otorisasi header
});
await app.listen(3000);
}
bootstrap();
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Milestone
No milestone
None
None
Time tracking
No estimate or time spent
0
Labels
None
Lock merge request
Unlocked
1
1 participant
Ajeng Putri Kinasih
Reference: siplah/BE-Siplah!15
Source branch: ajeng

Menu

Projects Groups Snippets
Help