diff --git a/src/main/java/com/backend/glowhouse/controller/DeviceController.java b/src/main/java/com/backend/glowhouse/controller/DeviceController.java index 08bfb70e0696d4b219b72f79b66a56632b30dfc4..43797e59b742167d50890b6be989b2651c32ac67 100644 --- a/src/main/java/com/backend/glowhouse/controller/DeviceController.java +++ b/src/main/java/com/backend/glowhouse/controller/DeviceController.java @@ -2,29 +2,34 @@ package com.backend.glowhouse.controller; import com.backend.glowhouse.model.Device; import com.backend.glowhouse.model.DeviceRegistrationRequest; -import com.backend.glowhouse.repository.DeviceRepository; +import com.backend.glowhouse.repository.device.DeviceRepository; +import com.backend.glowhouse.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("api/device") public class DeviceController { private DeviceRepository deviceRepository; + private UserRepository userRepository; @Autowired - public DeviceController(DeviceRepository deviceRepository) { + public DeviceController(DeviceRepository deviceRepository, UserRepository userRepository) { this.deviceRepository = deviceRepository; + this.userRepository = userRepository; } @PostMapping("/registerDevice") - public ResponseEntity registerDevice(@RequestBody DeviceRegistrationRequest deviceRegistrationRequest) { + @PreAuthorize("hasRole('USER')") + public Boolean registerDevice(@RequestBody DeviceRegistrationRequest deviceRegistrationRequest) { String deviceId = deviceRegistrationRequest.getDeviceId(); String username = deviceRegistrationRequest.getUsername(); - Device deviceToRegister = deviceRepository.registerDevice(deviceId, username); + Device deviceToRegister = deviceRepository.updateDeviceAssignUserAndSetRegisteredTrue(deviceId, username); + Boolean wasRegistered = userRepository.updateUserAssignDevice(username, deviceToRegister); - return ResponseEntity.ok(deviceToRegister); + return wasRegistered; } }