56 lines
1.6 KiB
Java
56 lines
1.6 KiB
Java
package de.ph87.homeautomation.schedule;
|
|
|
|
import de.ph87.homeautomation.property.PropertyReadService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
|
|
@RestController
|
|
@RequestMapping("schedule")
|
|
@RequiredArgsConstructor
|
|
public class ScheduleController {
|
|
|
|
private final ScheduleReadService scheduleReadService;
|
|
|
|
private final ScheduleWriteService scheduleWriteService;
|
|
|
|
private final PropertyReadService propertyReadService;
|
|
|
|
@GetMapping("findAll")
|
|
public List<ScheduleDto> findAll() {
|
|
return scheduleReadService.findAllDtos();
|
|
}
|
|
|
|
@GetMapping("getById/{id}")
|
|
public ScheduleDto getById(@PathVariable final long id) {
|
|
return scheduleReadService.getDtoById(id);
|
|
}
|
|
|
|
@GetMapping("create")
|
|
public ScheduleDto create() {
|
|
return scheduleWriteService.create();
|
|
}
|
|
|
|
@GetMapping("delete/{id}")
|
|
public void delete(@PathVariable final long id) {
|
|
scheduleWriteService.delete(id);
|
|
}
|
|
|
|
@PostMapping("set/{id}/enabled")
|
|
public ScheduleDto setEnabled(@PathVariable final long id, @RequestBody final boolean enabled) {
|
|
return scheduleWriteService.set(id, Schedule::setEnabled, enabled);
|
|
}
|
|
|
|
@PostMapping("set/{id}/title")
|
|
public ScheduleDto setTitle(@PathVariable final long id, @RequestBody final String title) {
|
|
return scheduleWriteService.set(id, Schedule::setTitle, title);
|
|
}
|
|
|
|
@PostMapping("set/{id}/property")
|
|
public ScheduleDto setPropertyName(@PathVariable final long id, @RequestBody(required = false) final Long propertyId) {
|
|
return scheduleWriteService.set(id, (s, v) -> s.setProperty(v == null ? null : propertyReadService.getById(v)), propertyId);
|
|
}
|
|
|
|
}
|