ソースを参照

Add delete time/leave entry endpoint

tags/Baseline_30082024_BACKEND_UAT
Wayne 1年前
コミット
02b152d0d2
4個のファイルの変更38行の追加0行の削除
  1. +11
    -0
      src/main/java/com/ffii/tsms/modules/timesheet/service/LeaveService.kt
  2. +11
    -0
      src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt
  3. +10
    -0
      src/main/java/com/ffii/tsms/modules/timesheet/web/TimesheetsController.kt
  4. +6
    -0
      src/main/java/com/ffii/tsms/modules/timesheet/web/models/TeamEntryDelete.kt

+ 11
- 0
src/main/java/com/ffii/tsms/modules/timesheet/service/LeaveService.kt ファイルの表示

@@ -75,6 +75,17 @@ open class LeaveService(
return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff))
}

open fun deleteMemberLeaveEntry(staffId: Long, entryId: Long): Map<String, List<LeaveEntry>> {
val currentStaff = staffsService.currentStaff() ?: throw BadRequestException()
// Make sure current staff is a team lead
teamService.getMyTeamForStaff(currentStaff) ?: throw BadRequestException()

val memberStaff = staffsService.getStaff(staffId)

leaveRepository.deleteById(entryId)
return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff))
}

open fun getTeamMemberLeave(): Map<Long, TeamMemberLeaveEntries> {
val currentStaff = staffsService.currentStaff() ?: return emptyMap()
// Get team where current staff is team lead


+ 11
- 0
src/main/java/com/ffii/tsms/modules/timesheet/service/TimesheetsService.kt ファイルの表示

@@ -83,6 +83,17 @@ open class TimesheetsService(
return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff))
}

open fun deleteMemberTimeEntry(staffId: Long, entryId: Long): Map<String, List<TimeEntry>> {
val currentStaff = staffsService.currentStaff() ?: throw BadRequestException()
// Make sure current staff is a team lead
teamService.getMyTeamForStaff(currentStaff) ?: throw BadRequestException()

val memberStaff = staffsService.getStaff(staffId)

timesheetRepository.deleteById(entryId)
return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff))
}

open fun getTimesheet(): Map<String, List<TimeEntry>> {
// Need to be associated with a staff
val currentStaff = staffsService.currentStaff() ?: return emptyMap()


+ 10
- 0
src/main/java/com/ffii/tsms/modules/timesheet/web/TimesheetsController.kt ファイルの表示

@@ -66,6 +66,16 @@ class TimesheetsController(private val timesheetsService: TimesheetsService, pri
}.getOrNull())
}

@PostMapping("/deleteMemberEntry")
fun deleteMemberEntry(@Valid @RequestBody request: TeamEntryDelete): Map<String, List<TimeEntry>> {
return timesheetsService.deleteMemberTimeEntry(request.staffId, request.entryId)
}

@PostMapping("/deleteMemberLeave")
fun deleteMemberLeave(@Valid @RequestBody request: TeamEntryDelete): Map<String, List<LeaveEntry>> {
return leaveService.deleteMemberLeaveEntry(request.staffId, request.entryId)
}

@GetMapping("/leaves")
fun getLeaveEntry(): Map<String, List<LeaveEntry>> {
return leaveService.getLeaves()


+ 6
- 0
src/main/java/com/ffii/tsms/modules/timesheet/web/models/TeamEntryDelete.kt ファイルの表示

@@ -0,0 +1,6 @@
package com.ffii.tsms.modules.timesheet.web.models

data class TeamEntryDelete(
val staffId: Long,
val entryId: Long,
)

読み込み中…
キャンセル
保存