From 139da86cc7791df947e608ba94dec0eaadab1f6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20St=C3=A4hr?= <software@mstaehr.net>
Date: Wed, 6 Jun 2018 20:53:24 +0200
Subject: [PATCH] refactor: communication interface and add missing functions

---
 .../gf/interfaces/ICommunication.java         | 25 +++++------
 .../modules/communication/model/Message.java  | 38 +++++++++++++++++
 .../communication/model/user/User.java        | 30 --------------
 .../model/user/UserCredentials.java           | 30 --------------
 .../user/UserRegistrationInformation.java     | 41 -------------------
 5 files changed, 51 insertions(+), 113 deletions(-)
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/Message.java
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/User.java
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserCredentials.java
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserRegistrationInformation.java

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
index 60683f26..8a07add1 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/ICommunication.java
@@ -1,10 +1,9 @@
 package unipotsdam.gf.interfaces;
 
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.modules.communication.model.Message;
 import unipotsdam.gf.modules.communication.model.chat.ChatMessage;
 import unipotsdam.gf.modules.communication.model.chat.ChatRoom;
-import unipotsdam.gf.modules.communication.model.user.User;
-import unipotsdam.gf.modules.communication.model.user.UserCredentials;
-import unipotsdam.gf.modules.communication.model.user.UserRegistrationInformation;
 
 import java.util.List;
 
@@ -23,25 +22,27 @@ public interface ICommunication {
     List<ChatMessage> getChatHistory(String roomId);
 
 
+    boolean sendMessageToChat(Message message);
+
     /**
      * endpoint: https://rocket.chat/docs/developer-guides/rest-api/groups/create/
      * creates chatroom
      *
-     * @param name    chat room name
-     * @param userIds member of chat by id; can be empty
+     * @param name                  chat room name
+     * @param studentIdentifierList member of chat by id
      * @return chat room id
      */
-    String createChatRoom(String name, List<String> userIds);
+    String createChatRoom(String name, List<User> studentIdentifierList);
 
 
     /**
      * endpoint: https://rocket.chat/docs/developer-guides/rest-api/groups/invite/
      *
      * @param roomId chat room the user should be add to
-     * @param userId userID to add
+     * @param user   information about user
      * @return if user was added successfully
      */
-    boolean addUserToChatRoom(String roomId, String userId);
+    boolean addUserToChatRoom(String roomId, User user);
 
     /**
      * endpoint: https://rocket.chat/docs/developer-guides/rest-api/groups/settopic/
@@ -65,17 +66,17 @@ public interface ICommunication {
     /**
      * api: https://rocket.chat/docs/developer-guides/rest-api/authentication/login/
      *
-     * @param userCredentials username and password
+     * @param user username and password
      * @return information about user, especially authtoken for later use of endpoints
      */
-    User loginUser(UserCredentials userCredentials);
+    boolean loginUser(User user);
 
     /**
      * registers new user to rocket chat
      *
-     * @param userRegistrationInformation registers user to rocket.chat
+     * @param user registers user to rocket.chat
      * @return user id
      */
-    String registerUser(UserRegistrationInformation userRegistrationInformation);
+    boolean registerUser(User user);
 
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/Message.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/Message.java
new file mode 100644
index 00000000..d01a3271
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/Message.java
@@ -0,0 +1,38 @@
+package unipotsdam.gf.modules.communication.model;
+
+public class Message {
+
+    private String roomIdOrChannel;
+    private String message;
+
+    public Message() {}
+
+    public Message(String roomIdOrChannel, String message) {
+        this.roomIdOrChannel = roomIdOrChannel;
+        this.message = message;
+    }
+
+    public String getRoomIdOrChannel() {
+        return roomIdOrChannel;
+    }
+
+    public void setRoomIdOrChannel(String roomIdOrChannel) {
+        this.roomIdOrChannel = roomIdOrChannel;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    @Override
+    public String toString() {
+        return "Message{" +
+                "roomIdOrChannel='" + roomIdOrChannel + '\'' +
+                ", message='" + message + '\'' +
+                '}';
+    }
+}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/User.java
deleted file mode 100644
index 92914711..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/User.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package unipotsdam.gf.modules.communication.model.user;
-
-public class User {
-
-    String id;
-    String authToken;
-
-    public User() {}
-
-    public User(String id, String authToken) {
-        this.id = id;
-        this.authToken = authToken;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getAuthToken() {
-        return authToken;
-    }
-
-    public void setAuthToken(String authToken) {
-        this.authToken = authToken;
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserCredentials.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserCredentials.java
deleted file mode 100644
index 97ec8969..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserCredentials.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package unipotsdam.gf.modules.communication.model.user;
-
-public class UserCredentials {
-
-    String username;
-    String password;
-
-    public UserCredentials() {}
-
-    public UserCredentials(String username, String password) {
-        this.username = username;
-        this.password = password;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserRegistrationInformation.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserRegistrationInformation.java
deleted file mode 100644
index b109f1f6..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/model/user/UserRegistrationInformation.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package unipotsdam.gf.modules.communication.model.user;
-
-public class UserRegistrationInformation {
-
-    private String username;
-    private String email;
-    private String pass;
-    private String name;
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = email;
-    }
-
-    public String getPass() {
-        return pass;
-    }
-
-    public void setPass(String pass) {
-        this.pass = pass;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-}
-- 
GitLab