diff --git a/README.md b/README.md
new file mode 100644
index 0000000..02aa2a3
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# Simple messaging server on Spring Boot
diff --git a/pom.xml b/pom.xml
index d41bc3c..b48edc1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.6.4
+ 3.1.0
com.example
@@ -14,7 +14,7 @@
demo
Demo project for Spring Boot
- 11
+ 17
diff --git a/src/main/java/com/example/demo/RestFullController.java b/src/main/java/com/example/demo/RestFullController.java
index 0af4731..75f7f9c 100644
--- a/src/main/java/com/example/demo/RestFullController.java
+++ b/src/main/java/com/example/demo/RestFullController.java
@@ -1,23 +1,33 @@
package com.example.demo;
-import com.example.demo.models.Chat;
-import com.example.demo.models.Message;
-import com.example.demo.models.User;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.UUID;
import java.util.stream.Collectors;
-import static org.springframework.web.bind.annotation.RequestMethod.GET;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PatchMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
-@Controller
+import com.example.demo.models.Chat;
+import com.example.demo.models.ID;
+import com.example.demo.models.Message;
+import com.example.demo.models.User;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+@RestController
public class RestFullController {
static Gson gson = new Gson();
@@ -31,12 +41,10 @@ public class RestFullController {
public static ArrayList usersArrayList = new ArrayList<>();
public static ArrayList chatsArrayList = new ArrayList<>();
public static ArrayList messagesArrayList = new ArrayList<>();
-// public static ArrayList userArrayList= new ArrayList<>();
-
// Конструктор конроллера - деиствия при запуске программы
public RestFullController() {
- String s = "", s1 = "", s2 = "", s3 = "";
+ String s1, s2, s3;
Gson gson = new Gson();
try {
s1 = new String(Files.readAllBytes(Paths.get(fileNameUsers)));
@@ -54,167 +62,231 @@ public RestFullController() {
}
- public static void update(String nameFile) {
+ private static void updateDB(String nameFile) {
Gson gson = new Gson();
FileWriter fw;
ArrayList> ent = new ArrayList<>();
switch (nameFile) {
case "users":
- ent = usersArrayList;
+ ent = usersArrayList;
break;
case "chats":
- ent = chatsArrayList;
+ ent = chatsArrayList;
break;
case "messages":
- ent = messagesArrayList;
+ ent = messagesArrayList;
break;
default:
- ent = new ArrayList<>();
+ System.out.println(
+ "Please, take notice of the fact that you're a retard since you're not using function as intended.");
}
try {
fw = new FileWriter("src/main/java/com/example/demo/files/" + nameFile + ".json");
- String l = "[";
+ StringBuilder l = new StringBuilder("[");
for (int i = 0; i < ent.size(); i++) {
if (i == ent.size() - 1) {
- l += gson.toJson(ent.get(i));
+ l.append(gson.toJson(ent.get(i)));
} else {
- l += gson.toJson(ent.get(i)) + ",";
+ l.append(gson.toJson(ent.get(i))).append(",");
}
}
fw.write(l + "]");
fw.close();
} catch (IOException e) {
- throw new RuntimeException(e);
+ System.out.println("WARNING, BIG SAD HAPPENED");
}
}
- // http://localhost:8080/authorization?login=loginExample&password=220512281
- @RequestMapping(
- value = "/authorization",
- params = {"login", "password"},
- method = GET)
- @ResponseBody
- public String authorization(
- @RequestParam("login") String login,
+ // requests.post("http://localhost:8080/authorization",data={"userId": "test1","password": "1"}).text
+ @PostMapping(value = "/authorization", params = { "userId", "password" })
+ public ResponseEntity authorization(@RequestParam("userId") String userId,
@RequestParam("password") String password) {
- for (User user : usersArrayList) {
- if (user.getLogin().equals(login) &&
- user.getPassword().hashCode() == Integer.parseInt(password)) {
- return "" + user.getName() + "-";
- }
- }
- return "false";
- }
-
- // http://localhost:8080/registration?name=Stas&login=loginExample1&password=passExample1
- // http://localhost:8080/registration?name=Yuri&login=loginExample2&password=passExample2
- @RequestMapping(
- value = "/registration",
- params = {"name", "login", "password"},
- method = GET)
- @ResponseBody
- public String registration(
- @RequestParam("name") String name,
- @RequestParam("login") String login,
+ User currentUser = usersArrayList.stream()
+ .filter(user -> user.getId().equals(userId) && user.getPassword().equals(password)).findFirst()
+ .orElse(null);
+ return (currentUser == null) ? new ResponseEntity("No user found", HttpStatus.UNAUTHORIZED)
+ : new ResponseEntity(gson.toJson(currentUser), HttpStatus.OK);
+ }
+
+ // requests.post("http://localhost:8080/registration", data={"name": "test","password": "0"}).text
+ @PostMapping(value = "/registration", params = { "name", "password" })
+ public ResponseEntity registration(@RequestParam("name") String name,
@RequestParam("password") String password) {
- int n = usersArrayList.size();
- usersArrayList.add(new User(("U" + n), false, name, login, password, new ArrayList<>()));
- update("users");
- return gson.toJson(usersArrayList.get(n));
- }
-
- // http://localhost:8080/createNewChatWithTwoUsers?user1=Yuri&user2=Stas
- @RequestMapping(
- value = "/createNewChatWithTwoUsers",
- params = {"user1", "user2"},
- method = GET)
- @ResponseBody
- public String createNewChatWithTwoUsers(
- @RequestParam("user1") String user1,
- @RequestParam("user2") String user2) {
- int n = usersArrayList.size();
+ String id = "U" + UUID.randomUUID();
+ User newUser = new User(id, false, name, password);
+ usersArrayList.add(newUser);
+ updateDB("users");
+ return new ResponseEntity(gson.toJson(newUser), HttpStatus.OK);
+ }
+
+ // requests.post("http://localhost:8080/createNewChat", data={"userId1":"test1","userId2": "test2"}).text
+ @PostMapping(value = "/createNewChat", params = { "userId1", "userId2" })
+ public ResponseEntity createNewChat(@RequestParam("userId1") String userId1,
+ @RequestParam("userId2") String userId2) {
+ if (userId1.equals(userId2)) {
+ return new ResponseEntity("You can't create chat with yourself", HttpStatus.BAD_REQUEST);
+ }
+ User user1, user2 = null;
try {
- chatsArrayList.add(new Chat(("C" + n), false, new ArrayList(), new TreeSet<>(List.of(user1, user2))));
- } catch (Error | Exception e) {
- return "false";
+ user1 = findInListById(usersArrayList, userId1);
+ user2 = findInListById(usersArrayList, userId2);
+ } catch (NoSuchElementException e) {
+ return new ResponseEntity("No user(s) found", HttpStatus.BAD_REQUEST);
}
- update("chats");
- return "true";
- }
-
- // http://localhost:8080/createNewMessage?user1=Yuri&user2=Stas
- @RequestMapping(
- value = "/createNewMessage",
- params = {"user1", "user2", "text", "chatId"},
- method = GET)
- @ResponseBody
- public String sendNewMessageInChat(
- @RequestParam("user1") String user1,
- @RequestParam("user2") String user2,
- @RequestParam("text") String text,
- @RequestParam("chatId") String chatId) {
- int n = messagesArrayList.size();
+ Chat newChat = new Chat(("C" + UUID.randomUUID()), new ArrayList(List.of(userId1, userId2)));
+ chatsArrayList.add(newChat);
+ user1.addChat(newChat);
+ user2.addChat(newChat);
+ updateDB("chats");
+ updateDB("users");
+ return new ResponseEntity(newChat.id, HttpStatus.OK);
+ }
+
+ // requests.post("http://localhost:8080/createNewMessage", data={"userId1":"test1","userId2": "test2","text":"TEXT","chatId":"test"}).text
+ @PostMapping(value = "/createNewMessage", params = { "userId1", "userId2",
+ "text", "chatId" })
+ public ResponseEntity createNewMessage(@RequestParam("userId1") String userId1,
+ @RequestParam("userId2") String userId2,
+ @RequestParam("text") String text, @RequestParam("chatId") String chatId) {
+ Chat chat = null;
try {
- messagesArrayList.add(new Message(("M" + n), false, text, new Date().getTime(), user1, user2, new TreeSet<>()));
- chatsArrayList.get(n).messages.add(("M" + n));
- } catch (Error | Exception e) {
- return "false";
+ findInListById(usersArrayList, userId1);
+ findInListById(usersArrayList, userId2);
+ chat = findInListById(chatsArrayList, chatId);
+ } catch (NoSuchElementException e) {
+ return new ResponseEntity("No user(s) found, or chat does not exist", HttpStatus.BAD_REQUEST);
}
- update("messages");
- return "true";
+ Message newMessage = new Message(("M" + UUID.randomUUID()), false, text, new Date().getTime(), chatId,
+ new ArrayList(List.of(userId1,
+ userId2)));
+ messagesArrayList.add(newMessage);
+ chat.addMessage(newMessage);
+ updateDB("messages");
+ updateDB("chats");
+ return new ResponseEntity("PLACEHOLDER", HttpStatus.OK);
}
- // Методы админа
- @RequestMapping(
- value = "/getAllUsers",
- method = GET)
- @ResponseBody
- public Iterable returnUsers() {
+ /* Admin-only methods */
+ // requests.get("http://localhost:8080/getAllUsers").text
+ @GetMapping(value = "/getAllUsers")
+ public ArrayList getAllUsers() {
return usersArrayList;
}
- @RequestMapping(
- value = "/getAllChats",
- method = GET)
- @ResponseBody
- public Iterable returnChats() {
+ // requests.get("http://localhost:8080/getAllChats").text
+ @GetMapping(value = "/getAllChats")
+ public ArrayList getAllChats() {
return chatsArrayList;
}
- //
-
- // Методы Админа и Юзера
- @RequestMapping(
- value = "/getAllChatsByUser",
- params = {"userId"},
- method = GET)
- @ResponseBody
- public Iterable getAllChatsByUser(
- @RequestParam("userId") String userId) {
- ArrayList f = usersArrayList.get(getIdFromId(userId)).chatArrayList;
- return (Iterable) chatsArrayList
- .stream()
- .filter(it -> f.contains(it.id));
- }
-
- @RequestMapping(
- value = "/getAllCMessagesByChat",
- params = {"chatId"},
- method = GET)
- @ResponseBody
- public Iterable getAllCMessagesByChat(
- @RequestParam("chatId") String chatId) {
- ArrayList f = Objects.requireNonNull(chatsArrayList.stream()
- .filter(it -> chatId.equals(it.id))
- .findAny()
- .orElse(null)).messages;
- return (Iterable) messagesArrayList
- .stream()
- .filter(it -> f.contains(it.id));
- }
- //
-
- public int getIdFromId(String s) {
- return Integer.parseInt(s.substring(1));
+
+ // requests.get("http://localhost:8080/getMessageByText",params={"text":"TE"}).text
+ @GetMapping(value = "/getMessageByText", params = { "text" })
+ public ArrayList getMessageByText(@RequestParam("text") String text) {
+ return (ArrayList) messagesArrayList.stream().filter(message -> message.getText().contains(text))
+ .collect(Collectors.toList());
}
+ /* Admin and user methods, although User is handicapped at frontend */
+
+ // requests.get("http://localhost:8080/getAllMessagesByChat",params={"chatId":"test1"}).text
+ @GetMapping(value = "/getAllMessagesByChat", params = { "chatId" })
+ public ArrayList getAllMessagesByChat(@RequestParam("chatId") String chatId) {
+ ArrayList messagesIds = findInListById(chatsArrayList, chatId).getMessagesIds();
+ // if(messagesIds.isEmpty()){ return new ArrayList();}
+ return (ArrayList) messagesArrayList.stream().filter(message -> messagesIds.contains(message.id))
+ .collect(Collectors.toList());
+ }
+
+ // requests.get("http://localhost:8080/getAllChatsByUser",params={"userId":"test1"}).text
+ @GetMapping(value = "/getAllChatsByUser", params = { "userId" })
+ public ArrayList getAllChatsByUser(@RequestParam("userId") String userId) {
+ ArrayList chatsIds = findInListById(usersArrayList, userId).getChatsIds();
+ // if(chatsIds.isEmpty()){ return new ArrayList();}
+ return (ArrayList) chatsArrayList.stream().filter(chat -> chatsIds.contains(chat.id))
+ .collect(Collectors.toList());
+ }
+
+ // requests.delete("http://localhost:8080/deleteUserData", params={"userId":"test1"}).text
+ @DeleteMapping(value = "/deleteUserData", params = { "userId" })
+ public ResponseEntity deleteUserData(@RequestParam("userId") String userId) {
+ // this basically means that if nothing in usersArrayList is deleted, then
+ // there's no such user
+ if (!(usersArrayList.removeIf(user -> user.getId().equals(userId)))) {
+ return new ResponseEntity("No user found", HttpStatus.BAD_REQUEST);
+ }
+ chatsArrayList.removeIf(chat -> chat.getUsersIds().contains(userId));
+ messagesArrayList.removeIf(message -> message.getUsersIds().contains(userId));
+ updateDB("users");
+ updateDB("chats");
+ updateDB("messages");
+
+ return new ResponseEntity("Successfully deleted data for user " + userId, HttpStatus.OK);
+ }
+
+ // requests.delete("http://localhost:8080/deleteMessage",params={"messageId":"M655e9c66-c622-4b08-99b0-d409a4ae0e53"}).text
+ @DeleteMapping(value = "/deleteMessage", params = { "messageId" })
+ public ResponseEntity deleteMessage(@RequestParam("messageId") String messageId) {
+ Message message = null;
+ try {
+ message = findInListById(messagesArrayList, messageId);
+ } catch (NoSuchElementException e) {
+ return new ResponseEntity("No message found", HttpStatus.BAD_REQUEST);
+ }
+ messagesArrayList.remove(message);
+ updateDB("messages");
+ Chat chat = findInListById(chatsArrayList, message.getChatId());
+ chat.deleteMessage(messageId);
+ // if, after deletion of the message, parent chat is empty, we should delete it
+ // completely - who needs empty chat after all?
+ if (chat.getMessagesIds().isEmpty()) {
+ chatsArrayList.remove(chat);
+ // this ugly mess is written so that we can update every user's chatlist (for
+ // those who had aforementioned chat in it)
+ usersArrayList.stream().filter(user -> chat.getUsersIds().contains(user.getId()))
+ .forEach(user -> user.deleteChat(chat.getId()));
+ updateDB("users");
+ }
+ updateDB("chats");
+
+ return new ResponseEntity("Successfully deleted message " + messageId, HttpStatus.OK);
+ }
+
+ // requests.post("http://localhost:8080/hideMessage",data={"messageId":"M655e9c66-c622-4b08-99b0-d409a4ae0e53"}).text
+ @PostMapping(value = "/hideMessage", params = { "messageId" })
+ public ResponseEntity hideMessage(@RequestParam("messageId") String messageId) {
+ Message message = null;
+ try {
+ message = findInListById(messagesArrayList, messageId);
+ } catch (NoSuchElementException e) {
+ return new ResponseEntity("No message found", HttpStatus.BAD_REQUEST);
+ }
+ message.setDeleted(true);
+ updateDB("messages");
+ return new ResponseEntity("Successfully hidden message " + messageId, HttpStatus.OK);
+ }
+
+ // requests.patch("http://localhost:8080/patchPassword",params={"userId":"test1","oldPassword":"1","newPassword":"new1"}).text
+ @PatchMapping(value = "/patchPassword", params = { "userId", "oldPassword", "newPassword"
+ })
+ public ResponseEntity patchPassword(@RequestParam("userId") String userId,
+ @RequestParam("oldPassword") String oldPassword, @RequestParam("newPassword") String newPassword) {
+ User user = null;
+ try {
+ user = findInListById(usersArrayList, userId);
+ } catch (NoSuchElementException e) {
+ return new ResponseEntity("No user found", HttpStatus.BAD_REQUEST);
+ }
+ if (!(user.getPassword().equals(oldPassword))) {
+ return new ResponseEntity("Old password does not match the input", HttpStatus.UNAUTHORIZED);
+ }
+ user.setPassword(newPassword);
+ updateDB("users");
+ return new ResponseEntity("The new password has been set", HttpStatus.OK);
+ }
+
+ // Helper function for finding User/Chat/Message object in
+ // user-/chat-/message-ArrayList
+ private static T findInListById(ArrayList list, String objId) throws NoSuchElementException {
+ return list.stream().filter(listObj -> listObj.id.equals(objId)).findFirst().orElseThrow();
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/files/chats.json b/src/main/java/com/example/demo/files/chats.json
index 0637a08..c2fb59f 100644
--- a/src/main/java/com/example/demo/files/chats.json
+++ b/src/main/java/com/example/demo/files/chats.json
@@ -1 +1,22 @@
-[]
\ No newline at end of file
+[
+ {
+ "deleted": false,
+ "messagesIds": [
+ "M655e9c66-c622-4b08-99b0-d409a4ae0e53"
+ ],
+ "usersIds": [
+ "test1",
+ "test2"
+ ],
+ "id": "test1"
+ },
+ {
+ "deleted": false,
+ "messagesIds": [],
+ "usersIds": [
+ "test1",
+ "test2"
+ ],
+ "id": "test2"
+ }
+]
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/files/messages.json b/src/main/java/com/example/demo/files/messages.json
index 0637a08..9fff1f8 100644
--- a/src/main/java/com/example/demo/files/messages.json
+++ b/src/main/java/com/example/demo/files/messages.json
@@ -1 +1,13 @@
-[]
\ No newline at end of file
+[
+ {
+ "deleted": false,
+ "text": "TEXT",
+ "time": 1685384274888,
+ "chatId": "test1",
+ "usersIds": [
+ "test1",
+ "test2"
+ ],
+ "id": "M655e9c66-c622-4b08-99b0-d409a4ae0e53"
+ }
+]
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/files/users.json b/src/main/java/com/example/demo/files/users.json
index 0cb9622..d9b397b 100644
--- a/src/main/java/com/example/demo/files/users.json
+++ b/src/main/java/com/example/demo/files/users.json
@@ -1 +1,29 @@
-[{"id":"U0","isAdmin":true,"name":"Матвей Дыгало","login":"muton","password":"PASSWORD","chatArrayList":[]}]
\ No newline at end of file
+[
+ {
+ "admin": true,
+ "name": "name1",
+ "password": "1",
+ "chatsIds": [
+ "test1",
+ "test2"
+ ],
+ "id": "test1"
+ },
+ {
+ "admin": false,
+ "name": "name2",
+ "password": "2",
+ "chatsIds": [
+ "test1",
+ "test2"
+ ],
+ "id": "test2"
+ },
+ {
+ "admin": false,
+ "name": "rtwetw",
+ "password": "rwer",
+ "chatsIds": [],
+ "id": "Ua91f511e-1abe-4cd1-bc12-bbae88374c0e"
+ }
+]
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/models/Admin.java b/src/main/java/com/example/demo/models/Admin.java
deleted file mode 100644
index 1197a6a..0000000
--- a/src/main/java/com/example/demo/models/Admin.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.example.demo.models;
-
-import java.util.ArrayList;
-
-public class Admin extends User{
- public Admin(String id, Boolean isAdmin, String name, String login, String password, ArrayList chatArrayList) {
- super(id, isAdmin, name, login, password, chatArrayList);
- }
-
-
-
-}
diff --git a/src/main/java/com/example/demo/models/Chat.java b/src/main/java/com/example/demo/models/Chat.java
index 89c0d47..68fe87a 100644
--- a/src/main/java/com/example/demo/models/Chat.java
+++ b/src/main/java/com/example/demo/models/Chat.java
@@ -1,19 +1,66 @@
package com.example.demo.models;
import java.util.ArrayList;
-import java.util.TreeSet;
-public class Chat {
- public String id;
- public Boolean isDeleted;
- public ArrayList messages;
- public TreeSet setIdUsers;
+public class Chat extends ID {
+ private Boolean deleted;
+ private ArrayList messagesIds;
+ private ArrayList usersIds;
- public Chat(String id, Boolean isDeleted, ArrayList messages, TreeSet setIdUsers) {
- this.id = id;
- this.isDeleted = isDeleted;
- this.messages = messages;
- this.setIdUsers = setIdUsers;
+ public Chat(String id, ArrayList usersIds) {
+ super(id);
+ this.deleted = false;
+ this.messagesIds = new ArrayList();
+ this.usersIds = usersIds;
}
+ public void addMessage(Message message) {
+ this.messagesIds.add(message.id);
+ }
+
+ /**
+ * @return Boolean return the isDeleted
+ */
+ public Boolean isDeleted() {
+ return deleted;
+ }
+
+ /**
+ * @param isDeleted the isDeleted to set
+ */
+ public void setDeleted(Boolean deleted) {
+ this.deleted = deleted;
+ }
+
+ /**
+ * @return ArrayList return the messagesIds
+ */
+ public ArrayList getMessagesIds() {
+ return messagesIds;
+ }
+
+ /**
+ * @param messagesIds the messagesIds to set
+ */
+ public void setMessagesIds(ArrayList messagesIds) {
+ this.messagesIds = messagesIds;
+ }
+
+ /**
+ * @return ArrayList return the usersIds
+ */
+ public ArrayList getUsersIds() {
+ return usersIds;
+ }
+
+ /**
+ * @param usersIds the usersIds to set
+ */
+ public void setUsersIds(ArrayList usersIds) {
+ this.usersIds = usersIds;
+ }
+
+ public void deleteMessage(String messageId) {
+ this.messagesIds.remove(messageId);
+ }
}
diff --git a/src/main/java/com/example/demo/models/ID.java b/src/main/java/com/example/demo/models/ID.java
new file mode 100644
index 0000000..bb40be9
--- /dev/null
+++ b/src/main/java/com/example/demo/models/ID.java
@@ -0,0 +1,23 @@
+package com.example.demo.models;
+
+import java.util.ArrayList;
+import java.util.Optional;
+
+public abstract class ID {
+ public String id;
+ public ID(String id) {
+ this.id = id;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public static Optional findInListById(ArrayList list, String objId) {
+ return list.stream().filter(listObj -> listObj.id.equals(objId)).findFirst();
+ }
+}
diff --git a/src/main/java/com/example/demo/models/Message.java b/src/main/java/com/example/demo/models/Message.java
index d44f927..462004d 100644
--- a/src/main/java/com/example/demo/models/Message.java
+++ b/src/main/java/com/example/demo/models/Message.java
@@ -1,24 +1,91 @@
package com.example.demo.models;
import java.util.ArrayList;
-import java.util.TreeSet;
-
-public class Message {
- public String id;
- public Boolean isDeleted;
- public String text;
- public Long time;
- public String idUserAuthor;
- public String idUserRecipient;
- public TreeSet setIdUsers;
-
- public Message(String id, Boolean isDeleted, String text, Long time, String idUserAuthor, String idUserRecipient, TreeSet setIdUsers) {
- this.id = id;
- this.isDeleted = isDeleted;
+
+public class Message extends ID {
+ private Boolean deleted;
+ private String text;
+ private Long time;
+ private String chatId;
+ private ArrayList usersIds;
+
+ public Message(String id, Boolean deleted, String text, Long time, String chatId, ArrayList usersIds) {
+ super(id);
+ this.deleted = deleted;
this.text = text;
this.time = time;
- this.idUserAuthor = idUserAuthor;
- this.idUserRecipient = idUserRecipient;
- this.setIdUsers = setIdUsers;
+ this.chatId = chatId;
+ this.usersIds = (ArrayList) usersIds;
+ }
+
+ /**
+ * @return Boolean return the deleted
+ */
+ public Boolean isDeleted() {
+ return deleted;
+ }
+
+ /**
+ * @param deleted the deleted to set
+ */
+ public void setDeleted(Boolean deleted) {
+ this.deleted = deleted;
+ }
+
+ /**
+ * @return String return the text
+ */
+ public String getText() {
+ return text;
+ }
+
+ /**
+ * @param text the text to set
+ */
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ /**
+ * @return Long return the time
+ */
+ public Long getTime() {
+ return time;
}
+
+ /**
+ * @param time the time to set
+ */
+ public void setTime(Long time) {
+ this.time = time;
+ }
+
+ /**
+ * @return ArrayList return the usersIds
+ */
+ public ArrayList getUsersIds() {
+ return usersIds;
+ }
+
+ /**
+ * @param usersIds the usersIds to set
+ */
+ public void setUsersIds(ArrayList usersIds) {
+ this.usersIds = usersIds;
+ }
+
+ /**
+ * @return String return the chatId
+ */
+ public String getChatId() {
+ return chatId;
+ }
+
+ /**
+ * @param chatId the chatId to set
+ */
+ public void setChatId(String chatId) {
+ this.chatId = chatId;
+ }
+
}
diff --git a/src/main/java/com/example/demo/models/User.java b/src/main/java/com/example/demo/models/User.java
index 0f78b08..b7f2ec6 100644
--- a/src/main/java/com/example/demo/models/User.java
+++ b/src/main/java/com/example/demo/models/User.java
@@ -2,44 +2,81 @@
import java.util.ArrayList;
-public class User {
- public String id;
- public Boolean isAdmin;
- public String name;
- public String login;
- public String password;
- public ArrayList chatArrayList = new ArrayList<>();
-
- public User(String id, Boolean isAdmin, String name, String login, String password, ArrayList chatArrayList) {
- this.id = id;
- this.isAdmin = isAdmin;
+public class User extends ID {
+ private Boolean admin;
+ private String name;
+ private String password;
+ private ArrayList chatsIds;
+
+ public User(String id, Boolean admin, String name, String password) {
+ super(id);
+ this.admin = admin;
this.name = name;
- this.login = login;
this.password = password;
- this.chatArrayList = chatArrayList;
+ this.chatsIds = new ArrayList();
+ }
+
+ public void addChat(Chat chat) {
+ this.chatsIds.add(chat.id);
}
- public String getId() {
- return id;
+ /**
+ * @return Boolean return the admin
+ */
+ public Boolean isAdmin() {
+ return admin;
}
- public Boolean getAdmin() {
- return isAdmin;
+ /**
+ * @param admin the admin to set
+ */
+ public void setAdmin(Boolean admin) {
+ this.admin = admin;
}
+ /**
+ * @return String return the name
+ */
public String getName() {
return name;
}
- public String getLogin() {
- return login;
+ /**
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
}
+ /**
+ * @return String return the password
+ */
public String getPassword() {
return password;
}
- public ArrayList getChatArrayList() {
- return chatArrayList;
+ /**
+ * @param password the password to set
+ */
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * @return ArrayList return the chatsIds
+ */
+ public ArrayList getChatsIds() {
+ return chatsIds;
+ }
+
+ /**
+ * @param chatsIds the chatsIds to set
+ */
+ public void setChatsIds(ArrayList chatsIds) {
+ this.chatsIds = chatsIds;
+ }
+
+ public void deleteChat(String chatId) {
+ this.chatsIds.remove(chatId);
}
}