Class LocationController


  • @RestController
    @RequestMapping("/location")
    public class LocationController
    extends Object
    Class represents rest controller which is responsible for all operations connected to managing building, room and show-case
    • Constructor Detail

      • LocationController

        public LocationController()
    • Method Detail

      • getAllBuildingsOfUsersInstitution

        @GetMapping("/buildings")
        public List<BuildingVM> getAllBuildingsOfUsersInstitution​(User user)
        Gets all buildings of logged in user's institution
        Parameters:
        user - logged in user
        Returns:
        all buildings of logged in user's institution
      • getAllBuildings

        @GetMapping("/buildings/all/{institutionId}")
        public List<BuildingVM> getAllBuildings​(@PathVariable
                                                Long institutionId)
        Gets all buildings of institution based on its id
        Parameters:
        institutionId - institution id
        Returns:
        all buildings of institution based on its id
      • getBuilding

        @GetMapping("/buildings/{buildingId}")
        public BuildingVM getBuilding​(@PathVariable
                                      Long buildingId,
                                      User user)
        Gets building based on its id
        Parameters:
        buildingId - building id
        user - logged in user
        Returns:
        building based on its id
      • saveBuilding

        @PostMapping("/buildings")
        @ResponseStatus(CREATED)
        public GenericResponse saveBuilding​(@Valid @RequestBody
                                            @Valid Building building,
                                            User user)
        Saves new building to logged in user's institution
        Parameters:
        building - building
        user - logged in user
        Returns:
        message containing whether operation was processed
      • updateBuilding

        @PutMapping("/buildings/{buildingId}")
        public GenericResponse updateBuilding​(@Valid @RequestBody
                                              @Valid Building building,
                                              @PathVariable
                                              Long buildingId,
                                              User user)
        Updates building information based on its id
        Parameters:
        building - updated building
        buildingId - building id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • deleteBuilding

        @DeleteMapping("/buildings/{buildingId}")
        public GenericResponse deleteBuilding​(@PathVariable
                                              Long buildingId,
                                              User user)
        Deletes building based on its id
        Parameters:
        buildingId - building id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • getAllRooms

        @GetMapping("/rooms/all/{buildingId}")
        public List<RoomVM> getAllRooms​(@PathVariable
                                        Long buildingId)
        Gets all rooms of building based on its id
        Parameters:
        buildingId - building id
        Returns:
        all rooms of building based on its id
      • getRoom

        @GetMapping("/rooms/{roomId}")
        public RoomVM getRoom​(@PathVariable
                              Long roomId,
                              User user)
        Gets room based on its id
        Parameters:
        roomId - room id
        user - logged in user
        Returns:
        room based on its id
      • saveRoom

        @PostMapping("/rooms/{buildingId}")
        @ResponseStatus(CREATED)
        public GenericResponse saveRoom​(@Valid @RequestBody
                                        @Valid Room room,
                                        @PathVariable
                                        Long buildingId,
                                        User user)
        Saves new room to given building defined by id
        Parameters:
        room - room
        buildingId - building id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • updateRoom

        @PutMapping("/rooms/{roomId}")
        public GenericResponse updateRoom​(@Valid @RequestBody
                                          @Valid Room room,
                                          @PathVariable
                                          Long roomId,
                                          User user)
        Updates room information based on its id
        Parameters:
        room - updated room
        roomId - room id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • deleteRoom

        @DeleteMapping("/rooms/{roomId}")
        public GenericResponse deleteRoom​(@PathVariable
                                          Long roomId,
                                          User user)
        Deletes room based on its id
        Parameters:
        roomId - room id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • getAllShowcases

        @GetMapping("/showcases/all/{roomId}")
        public List<ShowcaseVM> getAllShowcases​(@PathVariable
                                                Long roomId)
        Gets all showcases of room based on its id
        Parameters:
        roomId - room id
        Returns:
        all showcases of room based on its id
      • getShowcase

        @GetMapping("/showcases/{showcaseId}")
        public ShowcaseVM getShowcase​(@PathVariable
                                      Long showcaseId,
                                      User user)
        Gets showcase based on its id
        Parameters:
        showcaseId - showcase id
        user - logged in user
        Returns:
        showcase based on its id
      • saveShowcase

        @PostMapping("/showcases/{roomId}")
        @ResponseStatus(CREATED)
        public GenericResponse saveShowcase​(@Valid @RequestBody
                                            @Valid Showcase showcase,
                                            @PathVariable
                                            Long roomId,
                                            User user)
        Saves new showcase to given room defined by id
        Parameters:
        showcase - showcase
        roomId - room id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • updateShowcase

        @PutMapping("/showcases/{showcaseId}")
        public GenericResponse updateShowcase​(@Valid @RequestBody
                                              @Valid Showcase showcase,
                                              @PathVariable
                                              Long showcaseId,
                                              User user)
        Updates showcase information based on its id
        Parameters:
        showcase - updated showcase
        showcaseId - showcase id
        user - logged in user
        Returns:
        message containing whether operation was processed
      • deleteShowcase

        @DeleteMapping("/showcases/{showcaseId}")
        public GenericResponse deleteShowcase​(@PathVariable
                                              Long showcaseId,
                                              User user)
        Deletes showcase based on its id
        Parameters:
        showcaseId - showcase id
        user - logged in user
        Returns:
        message containing whether operation was processed