From a4d978f7839c5b4b58c529919e9ffd60b630ac42 Mon Sep 17 00:00:00 2001
From: Luke <lomah001@gold.ac.uk>
Date: Sun, 14 Apr 2019 16:05:05 +0100
Subject: [PATCH] upd: added pre authorization to device registration api,
 added call to user repository to assign device to user

---
 .../glowhouse/controller/DeviceController.java  | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/backend/glowhouse/controller/DeviceController.java b/src/main/java/com/backend/glowhouse/controller/DeviceController.java
index 08bfb70..43797e5 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;
     }
 }
-- 
GitLab