Abort Schedules
All checks were successful
Java CI with Maven / test (push) Successful in 41s
Java CI with Maven / build-and-push-frontend (push) Successful in 8s
Java CI with Maven / build-and-push-backend (push) Successful in 7s

This commit is contained in:
Sebastian Böckelmann 2024-03-13 23:17:22 +01:00
parent 376b5395f1
commit fc742a3526
4 changed files with 43 additions and 0 deletions

View File

@ -275,4 +275,20 @@ public class ScheduleController {
return ResponseEntity.ok(permissionResult.getResult().toScheduleInfo()); return ResponseEntity.ok(permissionResult.getResult().toScheduleInfo());
} }
@PostMapping("/schedules/{scheduleID}/stopManual")
public ResponseEntity<?> stopManual(@PathVariable long scheduleID, @Valid @RequestBody ManualScheduleStopInfo manualScheduleStopInfo) {
PermissionResult<AbstractSchedule> permissionResult = taskScheduleService.getSchedulePermissions(scheduleID, SecurityContextHolder.getContext().getAuthentication().getName());
if(!permissionResult.isHasPermissions()) {
return ResponseEntity.status(403).body(new SimpleStatusResponse("failed"));
}
if(permissionResult.getExitCode() == ServiceExitCode.MISSING_ENTITY) {
return ResponseEntity.status(404).body(new SimpleStatusResponse("failed"));
}
taskScheduleService.finishScheduleManual(permissionResult.getResult(), manualScheduleStopInfo);
return ResponseEntity.ok(new SimpleStatusResponse("success"));
}
} }

View File

@ -0,0 +1,16 @@
package core.api.models.timemanager.taskSchedule;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
public class ManualScheduleStopInfo {
@NotNull
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX")
private LocalDateTime endTime;
public LocalDateTime getEndTime() {
return endTime;
}
}

View File

@ -1,6 +1,7 @@
package core.services; package core.services;
import core.api.models.timemanager.history.PastScheduleInfo; import core.api.models.timemanager.history.PastScheduleInfo;
import core.api.models.timemanager.taskSchedule.ManualScheduleStopInfo;
import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleFieldInfo; import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleFieldInfo;
import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleInfo; import core.api.models.timemanager.taskSchedule.scheduleInfos.AdvancedScheduleInfo;
import core.api.models.timemanager.taskSchedule.scheduleInfos.BasicScheduleFieldInfo; import core.api.models.timemanager.taskSchedule.scheduleInfos.BasicScheduleFieldInfo;
@ -237,4 +238,9 @@ public class TaskScheduleService {
} }
return filteredSchedules; return filteredSchedules;
} }
public void finishScheduleManual(AbstractSchedule schedule, ManualScheduleStopInfo manualScheduleStopInfo) {
schedule.setStopTime(manualScheduleStopInfo.getEndTime());
scheduleRepository.save(schedule);
}
} }

View File

@ -90,6 +90,11 @@ export class ActiveScheduleComponent implements OnInit{
} }
abortSchedule() { abortSchedule() {
this.scheduleService.schedulesScheduleIDDelete(this.activeSchedule!.scheduleID).subscribe({
next: resp => {
this.activeSchedule = undefined;
}
})
} }