From 38fcdd35fef65c98c9fc27caa925353179d7a431 Mon Sep 17 00:00:00 2001
From: Luke <lomah001@gold.ac.uk>
Date: Sun, 14 Apr 2019 16:03:37 +0100
Subject: [PATCH] add: added custom user repository and implementation for this
 interface

---
 .../repository/UserRepositoryCustom.java      |  7 ++++
 .../repository/UserRepositoryImpl.java        | 32 +++++++++++++++++++
 2 files changed, 39 insertions(+)
 create mode 100644 src/main/java/com/backend/glowhouse/repository/UserRepositoryCustom.java
 create mode 100644 src/main/java/com/backend/glowhouse/repository/UserRepositoryImpl.java

diff --git a/src/main/java/com/backend/glowhouse/repository/UserRepositoryCustom.java b/src/main/java/com/backend/glowhouse/repository/UserRepositoryCustom.java
new file mode 100644
index 0000000..e4d2ce4
--- /dev/null
+++ b/src/main/java/com/backend/glowhouse/repository/UserRepositoryCustom.java
@@ -0,0 +1,7 @@
+package com.backend.glowhouse.repository;
+
+import com.backend.glowhouse.model.Device;
+
+public interface UserRepositoryCustom {
+    public boolean updateUserAssignDevice(String username, Device device);
+}
diff --git a/src/main/java/com/backend/glowhouse/repository/UserRepositoryImpl.java b/src/main/java/com/backend/glowhouse/repository/UserRepositoryImpl.java
new file mode 100644
index 0000000..06e63b2
--- /dev/null
+++ b/src/main/java/com/backend/glowhouse/repository/UserRepositoryImpl.java
@@ -0,0 +1,32 @@
+package com.backend.glowhouse.repository;
+
+import com.backend.glowhouse.model.Device;
+import com.backend.glowhouse.model.User;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
+
+
+public class UserRepositoryImpl implements UserRepositoryCustom{
+    private final MongoTemplate mongoTemplate;
+
+    @Autowired
+    public  UserRepositoryImpl(MongoTemplate mongoTemplate) {
+        this.mongoTemplate = mongoTemplate;
+    }
+
+    @Override
+    public boolean updateUserAssignDevice(String username, Device device) {
+        Query query = new Query();
+        query.addCriteria(Criteria.where("username").is(username));
+
+        Update update = new Update()
+                .set("device", device);
+
+        mongoTemplate.updateFirst(query, update, User.class);
+
+        return true;
+    }
+}
-- 
GitLab