@@ -75,6 +75,17 @@ open class LeaveService( | |||||
return transformToLeaveEntryMap(leaveRepository.findAllByStaff(memberStaff)) | 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> { | open fun getTeamMemberLeave(): Map<Long, TeamMemberLeaveEntries> { | ||||
val currentStaff = staffsService.currentStaff() ?: return emptyMap() | val currentStaff = staffsService.currentStaff() ?: return emptyMap() | ||||
// Get team where current staff is team lead | // Get team where current staff is team lead | ||||
@@ -83,6 +83,17 @@ open class TimesheetsService( | |||||
return transformToTimeEntryMap(timesheetRepository.findAllByStaff(memberStaff)) | 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>> { | open fun getTimesheet(): Map<String, List<TimeEntry>> { | ||||
// Need to be associated with a staff | // Need to be associated with a staff | ||||
val currentStaff = staffsService.currentStaff() ?: return emptyMap() | val currentStaff = staffsService.currentStaff() ?: return emptyMap() | ||||
@@ -66,6 +66,16 @@ class TimesheetsController(private val timesheetsService: TimesheetsService, pri | |||||
}.getOrNull()) | }.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") | @GetMapping("/leaves") | ||||
fun getLeaveEntry(): Map<String, List<LeaveEntry>> { | fun getLeaveEntry(): Map<String, List<LeaveEntry>> { | ||||
return leaveService.getLeaves() | return leaveService.getLeaves() | ||||
@@ -0,0 +1,6 @@ | |||||
package com.ffii.tsms.modules.timesheet.web.models | |||||
data class TeamEntryDelete( | |||||
val staffId: Long, | |||||
val entryId: Long, | |||||
) |