implemented room controller
This commit is contained in:
parent
fbda9c1675
commit
3df58d31b6
@ -4,6 +4,12 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import ru.dragonestia.picker.controller.response.ResponseObject;
|
||||
import ru.dragonestia.picker.exception.DoesNotExistsException;
|
||||
import ru.dragonestia.picker.model.instance.InstanceId;
|
||||
import ru.dragonestia.picker.model.room.RoomId;
|
||||
import ru.dragonestia.picker.model.room.factory.RoomFactory;
|
||||
import ru.dragonestia.picker.service.InstanceService;
|
||||
import ru.dragonestia.picker.service.RoomService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -12,19 +18,25 @@ import java.util.List;
|
||||
@RequiredArgsConstructor
|
||||
public class RoomController {
|
||||
|
||||
private final InstanceService instanceService;
|
||||
private final RoomService roomService;
|
||||
private final RoomFactory roomFactory;
|
||||
|
||||
@GetMapping
|
||||
List<String> listRooms(@PathVariable String instanceId) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
return roomService.all(InstanceId.of(instanceId)).stream().map(id -> id.getId().getValue()).toList();
|
||||
}
|
||||
|
||||
@GetMapping("/target/{roomId}")
|
||||
ResponseObject.Room targetRoomDetails(@PathVariable String instanceId, @PathVariable String roomId) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
return roomService.find(InstanceId.of(instanceId), RoomId.of(roomId))
|
||||
.map(ResponseObject.Room::of)
|
||||
.orElseThrow(() -> DoesNotExistsException.forRoom(RoomId.of(roomId)));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
List<ResponseObject.Room> listRoomDetails(@PathVariable String instanceId, @RequestParam List<String> id) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
return id.stream().map(roomId -> targetRoomDetails(instanceId, roomId)).toList();
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@ -34,21 +46,32 @@ public class RoomController {
|
||||
@RequestParam String payload,
|
||||
@RequestParam(defaultValue = "false") boolean locked,
|
||||
@RequestParam(defaultValue = "false") boolean persist) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
var instance = instanceService.find(InstanceId.of(instanceId))
|
||||
.orElseThrow(() -> DoesNotExistsException.forInstance(InstanceId.of(instanceId)));
|
||||
roomService.create(roomFactory.create(RoomId.of(id), instance, slots, payload, persist, locked));
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
@DeleteMapping("/target/{roomId}")
|
||||
ResponseEntity<Void> deleteRoom(@PathVariable String instanceId, @PathVariable String roomId) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
roomService.find(InstanceId.of(instanceId), RoomId.of(roomId)).ifPresent(roomService::remove);
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
@DeleteMapping("/list")
|
||||
ResponseEntity<Void> deleteRooms(@PathVariable String instanceId, @RequestParam List<String> id) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
for (var roomId: id) {
|
||||
deleteRoom(instanceId, roomId);
|
||||
}
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
|
||||
@PutMapping("/target/{roomId}/lock")
|
||||
ResponseEntity<Void> lockRoom(@PathVariable String instanceId, @PathVariable String roomId, @RequestParam boolean newState) {
|
||||
throw new UnsupportedOperationException("Not implemented");
|
||||
var room = roomService.find(InstanceId.of(instanceId), RoomId.of(roomId))
|
||||
.orElseThrow(() -> DoesNotExistsException.forRoom(RoomId.of(roomId)));
|
||||
room.setLocked(newState);
|
||||
roomService.updateState(room);
|
||||
return ResponseEntity.ok().build();
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,6 +11,12 @@ import ru.dragonestia.picker.model.room.RoomId;
|
||||
public class RoomFactory {
|
||||
|
||||
public Room create(RoomId identifier, Instance instance, int slots, String payload, boolean persist) {
|
||||
return new Room(identifier, instance, slots, payload, persist);
|
||||
return create(identifier, instance, slots, payload, persist, false);
|
||||
}
|
||||
|
||||
public Room create(RoomId identifier, Instance instance, int slots, String payload, boolean persist, boolean locked) {
|
||||
var room = new Room(identifier, instance, slots, payload, persist);
|
||||
room.setLocked(locked);
|
||||
return room;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,7 +26,6 @@ public class RoomServiceImpl implements RoomService {
|
||||
|
||||
private final RoomRepository roomRepository;
|
||||
private final InstanceRepository instanceRepository;
|
||||
private final EntityRepository entityRepository;
|
||||
private final InstanceAndRoomStorage storage;
|
||||
|
||||
@Override
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user