clean(shifts): did some cleaning
This commit is contained in:
parent
4c933d3564
commit
9b4517a26d
|
|
@ -1,11 +1,12 @@
|
|||
import { Module } from "@nestjs/common";
|
||||
|
||||
import { BankCodesResolver } from "src/common/mappers/bank-type-id.mapper";
|
||||
|
||||
import { SchedulePresetsController } from "src/time-and-attendance/schedule-presets/controller/schedule-presets.controller";
|
||||
import { SchedulePresetsGetService } from "src/time-and-attendance/schedule-presets/services/schedule-presets-get.service";
|
||||
import { SchedulePresetsCreateService } from "src/time-and-attendance/schedule-presets/services/schedule-presets-create.service";
|
||||
import { SchedulePresetUpdateService } from "src/time-and-attendance/schedule-presets/services/schedule-presets-update.service";
|
||||
import { SchedulePresetDeleteService } from "src/time-and-attendance/schedule-presets/services/schedule-presets-delete.service";
|
||||
import { BankCodesResolver } from "src/common/mappers/bank-type-id.mapper";
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,21 @@
|
|||
import { Body, Controller, Delete, Param, Patch, Post } from "@nestjs/common";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
import { Modules as ModulesEnum } from ".prisma/client";
|
||||
|
||||
import { ShiftDto } from "src/time-and-attendance/shifts/dtos/shift-create.dto";
|
||||
import { ShiftsCreateService } from "src/time-and-attendance/shifts/services/shifts-create.service";
|
||||
import { ShiftsUpdateDeleteService } from "src/time-and-attendance/shifts/services/shifts-update-delete.service";
|
||||
import { ShiftsUpdateService } from "src/time-and-attendance/shifts/services/shifts-update-delete.service";
|
||||
import { ShiftsDeleteService } from "src/time-and-attendance/shifts/services/shifts-delete.service";
|
||||
|
||||
import { ModuleAccessAllowed } from "src/common/decorators/modules-guard.decorators";
|
||||
import { Modules as ModulesEnum } from ".prisma/client";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
import { Access } from "src/common/decorators/module-access.decorators";
|
||||
|
||||
@Controller('shift')
|
||||
export class ShiftController {
|
||||
constructor(
|
||||
private readonly create_service: ShiftsCreateService,
|
||||
private readonly update_delete_service: ShiftsUpdateDeleteService,
|
||||
private readonly update_service: ShiftsUpdateService,
|
||||
private readonly delete_service: ShiftsDeleteService,
|
||||
) { }
|
||||
|
||||
@Post('create')
|
||||
|
|
@ -23,13 +27,13 @@ export class ShiftController {
|
|||
@Patch('update')
|
||||
@ModuleAccessAllowed(ModulesEnum.timesheets)
|
||||
updateBatch(@Access('email') email: string, @Body() dtos: ShiftDto[]): Promise<Result<boolean, string>> {
|
||||
return this.update_delete_service.updateOneOrManyShifts(dtos, email);
|
||||
return this.update_service.updateOneOrManyShifts(dtos, email);
|
||||
}
|
||||
|
||||
@Delete(':shift_id')
|
||||
@ModuleAccessAllowed(ModulesEnum.timesheets)
|
||||
remove(@Param('shift_id') shift_id: number): Promise<Result<number, string>> {
|
||||
return this.update_delete_service.deleteShift(shift_id);
|
||||
return this.delete_service.deleteShift(shift_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
import { Injectable } from "@nestjs/common";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
import { PrismaService } from "src/prisma/prisma.service";
|
||||
|
||||
@Injectable()
|
||||
export class ShiftsDeleteService {
|
||||
constructor(private readonly prisma: PrismaService) { }
|
||||
//_________________________________________________________________
|
||||
// DELETE
|
||||
//_________________________________________________________________
|
||||
//finds shifts using shit_ids
|
||||
//blocs deletion if approved
|
||||
async deleteShift(shift_id: number): Promise<Result<number, string>> {
|
||||
try {
|
||||
return await this.prisma.$transaction(async (tx) => {
|
||||
const shift = await tx.shifts.findUnique({
|
||||
where: { id: shift_id },
|
||||
select: { id: true, date: true, timesheet_id: true },
|
||||
});
|
||||
if (!shift) return { success: false, error: `SHIFT_NOT_FOUND` };
|
||||
|
||||
await tx.shifts.delete({ where: { id: shift_id } });
|
||||
return { success: true, data: shift.id };
|
||||
});
|
||||
} catch (error) {
|
||||
return { success: false, error: `SHIFT_NOT_FOUND` }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,15 +1,17 @@
|
|||
import { BankCodesResolver } from "src/common/mappers/bank-type-id.mapper";
|
||||
import { PrismaService } from "src/prisma/prisma.service";
|
||||
import { shift_select } from "src/time-and-attendance/utils/selects.utils";
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { Normalized } from "src/time-and-attendance/utils/type.utils";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
import { EmployeeTimesheetResolver } from "src/common/mappers/timesheet.mapper";
|
||||
import { toDateFromString, toStringFromHHmm, toStringFromDate, toDateFromHHmm, overlaps } from "src/common/utils/date-utils";
|
||||
import { Injectable } from "@nestjs/common";
|
||||
import { PrismaService } from "src/prisma/prisma.service";
|
||||
|
||||
import { EmployeeTimesheetResolver } from "src/common/mappers/timesheet.mapper";
|
||||
import { BankCodesResolver } from "src/common/mappers/bank-type-id.mapper";
|
||||
import { Result } from "src/common/errors/result-error.factory";
|
||||
|
||||
import { shift_select } from "src/time-and-attendance/utils/selects.utils";
|
||||
import { Normalized } from "src/time-and-attendance/utils/type.utils";
|
||||
import { ShiftDto } from "src/time-and-attendance/shifts/dtos/shift-create.dto";
|
||||
|
||||
@Injectable()
|
||||
export class ShiftsUpdateDeleteService {
|
||||
export class ShiftsUpdateService {
|
||||
constructor(
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly typeResolver: BankCodesResolver,
|
||||
|
|
@ -113,28 +115,6 @@ export class ShiftsUpdateDeleteService {
|
|||
}
|
||||
}
|
||||
|
||||
//_________________________________________________________________
|
||||
// DELETE
|
||||
//_________________________________________________________________
|
||||
//finds shifts using shit_ids
|
||||
//blocs deletion if approved
|
||||
async deleteShift(shift_id: number): Promise<Result<number, string>> {
|
||||
try {
|
||||
return await this.prisma.$transaction(async (tx) => {
|
||||
const shift = await tx.shifts.findUnique({
|
||||
where: { id: shift_id },
|
||||
select: { id: true, date: true, timesheet_id: true },
|
||||
});
|
||||
if (!shift) return { success: false, error: `SHIFT_NOT_FOUND` };
|
||||
|
||||
await tx.shifts.delete({ where: { id: shift_id } });
|
||||
return { success: true, data: shift.id };
|
||||
});
|
||||
} catch (error) {
|
||||
return { success: false, error: `SHIFT_NOT_FOUND` }
|
||||
}
|
||||
}
|
||||
|
||||
//_________________________________________________________________
|
||||
// helpers
|
||||
//_________________________________________________________________
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
|
||||
import { Module } from '@nestjs/common';
|
||||
|
||||
import { ShiftController } from 'src/time-and-attendance/shifts/controllers/shift.controller';
|
||||
import { ShiftsCreateService } from 'src/time-and-attendance/shifts/services/shifts-create.service';
|
||||
import { ShiftsUpdateDeleteService } from 'src/time-and-attendance/shifts/services/shifts-update-delete.service';
|
||||
import { ShiftsDeleteService } from 'src/time-and-attendance/shifts/services/shifts-delete.service';
|
||||
import { ShiftsUpdateService } from 'src/time-and-attendance/shifts/services/shifts-update-delete.service';
|
||||
|
||||
@Module({
|
||||
controllers: [ShiftController],
|
||||
providers: [ ShiftsCreateService, ShiftsUpdateDeleteService ],
|
||||
exports: [ ShiftsCreateService, ShiftsUpdateDeleteService ],
|
||||
providers: [ShiftsCreateService, ShiftsUpdateService, ShiftsDeleteService],
|
||||
exports: [ShiftsCreateService, ShiftsUpdateService, ShiftsDeleteService],
|
||||
})
|
||||
export class ShiftsModule { }
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ import { CsvExportController } from "src/modules/exports/controllers/csv-exports
|
|||
import { ShiftController } from "src/time-and-attendance/shifts/controllers/shift.controller";
|
||||
import { ShiftsCreateService } from "src/time-and-attendance/shifts/services/shifts-create.service";
|
||||
import { ShiftsGetService } from "src/time-and-attendance/shifts/services/shifts-get.service";
|
||||
import { ShiftsUpdateDeleteService } from "src/time-and-attendance/shifts/services/shifts-update-delete.service";
|
||||
import { ShiftsUpdateService } from "src/time-and-attendance/shifts/services/shifts-update-delete.service";
|
||||
import { ShiftsDeleteService } from "src/time-and-attendance/shifts/services/shifts-delete.service";
|
||||
|
||||
import { SchedulePresetsGetService } from "src/time-and-attendance/schedule-presets/services/schedule-presets-get.service";
|
||||
import { SchedulePresetsController } from "src/time-and-attendance/schedule-presets/controller/schedule-presets.controller";
|
||||
|
|
@ -59,7 +60,8 @@ import { SchedulePresetsCreateService } from "src/time-and-attendance/schedule-p
|
|||
GetTimesheetsOverviewService,
|
||||
ShiftsGetService,
|
||||
ShiftsCreateService,
|
||||
ShiftsUpdateDeleteService,
|
||||
ShiftsUpdateService,
|
||||
ShiftsDeleteService,
|
||||
ExpenseUpsertService,
|
||||
SchedulePresetsGetService,
|
||||
SchedulePresetDeleteService,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user