implemented entity controller

This commit is contained in:
Andrey Terentev 2024-05-11 11:56:07 +07:00 committed by Andrey Terentev
parent 3df58d31b6
commit 8361b52d81
2 changed files with 34 additions and 6 deletions

View File

@ -2,7 +2,10 @@ package ru.dragonestia.picker.controller;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import ru.dragonestia.picker.model.entity.EntityId;
import ru.dragonestia.picker.service.EntityService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -11,18 +14,26 @@ import java.util.Map;
@RequestMapping("/entities")
public class EntityController {
private final EntityService entityService;
@GetMapping("/search")
List<String> search(@RequestParam String input) {
throw new UnsupportedOperationException("Not implemented");
return entityService.searchEntities(EntityId.of(input)).stream().map(id -> id.getId().getValue()).toList();
}
@GetMapping("/target/rooms")
List<String> find(@RequestParam String id) {
throw new UnsupportedOperationException("Not implemented");
return entityService.getEntityRooms(EntityId.of(id)).stream()
.map(room -> room.getId().getValue())
.toList();
}
@GetMapping("/list/rooms")
Map<String, List<String>> roomsOf(@RequestParam List<String> id) {
throw new UnsupportedOperationException("Not implemented");
var map = new HashMap<String, List<String>>();
for (var userId: id) {
map.put(userId, find(userId));
}
return map;
}
}

View File

@ -3,6 +3,12 @@ package ru.dragonestia.picker.controller;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import ru.dragonestia.picker.exception.DoesNotExistsException;
import ru.dragonestia.picker.model.entity.EntityId;
import ru.dragonestia.picker.model.instance.InstanceId;
import ru.dragonestia.picker.model.room.RoomId;
import ru.dragonestia.picker.service.EntityService;
import ru.dragonestia.picker.service.RoomService;
import java.util.List;
@ -11,9 +17,14 @@ import java.util.List;
@RequestMapping("/instances/{instanceId}/rooms/{roomId}/users")
public class EntityRoomController {
private final RoomService roomService;
private final EntityService entityService;
@GetMapping
List<String> entitiesInsideRoom(@PathVariable String instanceId, @PathVariable String roomId) {
throw new UnsupportedOperationException("Not implemented");
var room = roomService.find(InstanceId.of(instanceId), RoomId.of(roomId))
.orElseThrow(() -> DoesNotExistsException.forRoom(RoomId.of(roomId)));
return entityService.getRoomEntities(room).stream().map(id -> id.getId().getValue()).toList();
}
@PostMapping
@ -21,13 +32,19 @@ public class EntityRoomController {
@PathVariable String roomId,
@RequestParam List<String> entities,
@RequestParam(defaultValue = "false") boolean force) {
throw new UnsupportedOperationException("Not implemented");
var room = roomService.find(InstanceId.of(instanceId), RoomId.of(roomId))
.orElseThrow(() -> DoesNotExistsException.forRoom(RoomId.of(roomId)));
entityService.linkEntitiesWithRoom(room, entities.stream().map(EntityId::of).toList(), force);
return ResponseEntity.ok().build();
}
@DeleteMapping
ResponseEntity<Void> unlinkEntitiesForBucket(@PathVariable String instanceId,
@PathVariable String roomId,
@RequestParam List<String> entities) {
throw new UnsupportedOperationException("Not implemented");
var room = roomService.find(InstanceId.of(instanceId), RoomId.of(roomId))
.orElseThrow(() -> DoesNotExistsException.forRoom(RoomId.of(roomId)));
entityService.unlinkEntitiesFromRoom(room, entities.stream().map(EntityId::of).toList());
return ResponseEntity.ok().build();
}
}