diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 797acea53..000000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/controller/MessageController.java b/src/main/java/com/example/demo/controller/MessageController.java
index 2129c124f..251c94ea4 100644
--- a/src/main/java/com/example/demo/controller/MessageController.java
+++ b/src/main/java/com/example/demo/controller/MessageController.java
@@ -1,4 +1,53 @@
package com.example.demo.controller;
+import com.example.demo.models.Message;
+import com.example.demo.repository.MessageRepo;
+import com.example.demo.service.MessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/message")
public class MessageController {
-}
+
+ private MessageService messageService;
+
+ @Autowired
+ public MessageController(MessageService messageService) {
+ this.messageService = messageService;
+
+ }
+
+ @PostMapping(value = "/create")
+ public ResponseEntity create(@RequestBody Message message) {
+ return new ResponseEntity<>(messageService.create(message), HttpStatus.CREATED);
+ }
+
+ @GetMapping(value = "/read/{id}")
+ public ResponseEntity read(@PathVariable Long id ){
+ return new ResponseEntity<>(messageService.read(id), HttpStatus.OK);
+
+ }
+
+ @GetMapping(value = "/all")
+ public ResponseEntity> readAll(){
+ return new ResponseEntity<>(messageService.readAll(), HttpStatus.OK);
+ }
+
+ @PutMapping(value = "/update{id}")
+ public ResponseEntity update (@PathVariable Long id, @RequestBody Message newMessageData){
+ return new ResponseEntity<>(messageService.update(id, newMessageData), HttpStatus.OK);
+ }
+
+ @DeleteMapping(value = "delete{id}")
+ public ResponseEntity delete(@PathVariable Long id ){
+ return new ResponseEntity<>(messageService.delete(id), HttpStatus.OK);
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/demo/models/Channel.java b/src/main/java/com/example/demo/models/Channel.java
index 36bf7e819..4964093eb 100644
--- a/src/main/java/com/example/demo/models/Channel.java
+++ b/src/main/java/com/example/demo/models/Channel.java
@@ -1,50 +1,5 @@
package com.example.demo.models;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import java.util.List;
-
-@Entity
public class Channel {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- private Long id;
- private String name;
- private List profileList;
- private List messages;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public List getProfileList() {
- return profileList;
- }
-
- public void setProfileList(List profileList) {
- this.profileList = profileList;
- }
-
- public List getMessages() {
- return messages;
- }
-
- public void setMessages(List messages) {
- this.messages = messages;
- }
}
diff --git a/src/main/java/com/example/demo/models/Message.java b/src/main/java/com/example/demo/models/Message.java
index 7f846d245..563851cc1 100644
--- a/src/main/java/com/example/demo/models/Message.java
+++ b/src/main/java/com/example/demo/models/Message.java
@@ -1,4 +1,64 @@
package com.example.demo.models;
+import org.apache.catalina.User;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.util.Date;
+
+@Entity
public class Message {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ Long id;
+ Profile profile;
+ String body;
+ Date timestamp;
+
+
+ public Message() {
+ }
+
+ public Message(Long id, Profile profile, String body, Date timestamp) {
+ this.id = id;
+ this.profile = profile;
+ this.body = body;
+ this.timestamp = timestamp;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Profile getProfile() {
+ return profile;
+ }
+
+ public void setProfile(Profile profile) {
+ this.profile = profile;
+ }
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+ public Date getTimestamp() {
+ return timestamp;
+ }
+
+ public void setTimestamp(Date timestamp) {
+ this.timestamp = timestamp;
+ }
+
}
diff --git a/src/main/java/com/example/demo/repository/MessageRepo.java b/src/main/java/com/example/demo/repository/MessageRepo.java
index 38eca51bb..d4c9bd8ef 100644
--- a/src/main/java/com/example/demo/repository/MessageRepo.java
+++ b/src/main/java/com/example/demo/repository/MessageRepo.java
@@ -1,4 +1,10 @@
package com.example.demo.repository;
-public class MessageRepo {
+import com.example.demo.models.Message;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface MessageRepo extends JpaRepository {
+
}
diff --git a/src/main/java/com/example/demo/service/MessageService.java b/src/main/java/com/example/demo/service/MessageService.java
index b953cf94b..c36f67100 100644
--- a/src/main/java/com/example/demo/service/MessageService.java
+++ b/src/main/java/com/example/demo/service/MessageService.java
@@ -1,4 +1,52 @@
package com.example.demo.service;
+import com.example.demo.models.Message;
+import com.example.demo.repository.MessageRepo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
public class MessageService {
+ private MessageRepo messageRepo;
+
+
+ @Autowired
+ public MessageService(MessageRepo messageRepo){
+ this.messageRepo = messageRepo;
+ }
+
+
+ public Message create (Message message){
+ return messageRepo.save(message);
+ }
+
+ public Message read(Long id){
+ return messageRepo.getById(id);
+ }
+
+ public List readAll(){
+ return messageRepo.findAll();
+ }
+
+ public Message update(Long id, Message newMessageData){
+ Message messageInDB = read(id);
+ messageInDB.setBody(newMessageData.getBody());
+ messageInDB.setProfile(newMessageData.getProfile());
+ messageInDB.setTimestamp(newMessageData.getTimestamp());
+ messageRepo.save(messageInDB);
+ return messageInDB;
+ }
+
+ public Message delete(Long id){
+ Message messageInDB = read(id);
+ messageRepo.delete(messageInDB);
+ return messageInDB;
+ }
+
+ public void deleteAll(){
+ messageRepo.deleteAll();
+ }
+
+
+
}
diff --git a/target/classes/com/example/demo/config/ChannelConfig.class b/target/classes/com/example/demo/config/ChannelConfig.class
new file mode 100644
index 000000000..bb2612675
Binary files /dev/null and b/target/classes/com/example/demo/config/ChannelConfig.class differ
diff --git a/target/classes/com/example/demo/config/MessageConfig.class b/target/classes/com/example/demo/config/MessageConfig.class
new file mode 100644
index 000000000..de19b497b
Binary files /dev/null and b/target/classes/com/example/demo/config/MessageConfig.class differ
diff --git a/target/classes/com/example/demo/config/ProfileConfig.class b/target/classes/com/example/demo/config/ProfileConfig.class
new file mode 100644
index 000000000..dea009db9
Binary files /dev/null and b/target/classes/com/example/demo/config/ProfileConfig.class differ
diff --git a/target/classes/com/example/demo/controller/ChannelController.class b/target/classes/com/example/demo/controller/ChannelController.class
new file mode 100644
index 000000000..16bf677d4
Binary files /dev/null and b/target/classes/com/example/demo/controller/ChannelController.class differ
diff --git a/target/classes/com/example/demo/controller/MessageController.class b/target/classes/com/example/demo/controller/MessageController.class
new file mode 100644
index 000000000..0f631f61e
Binary files /dev/null and b/target/classes/com/example/demo/controller/MessageController.class differ
diff --git a/target/classes/com/example/demo/controller/ProfileController.class b/target/classes/com/example/demo/controller/ProfileController.class
new file mode 100644
index 000000000..bac317719
Binary files /dev/null and b/target/classes/com/example/demo/controller/ProfileController.class differ
diff --git a/target/classes/com/example/demo/models/Channel.class b/target/classes/com/example/demo/models/Channel.class
new file mode 100644
index 000000000..021a44606
Binary files /dev/null and b/target/classes/com/example/demo/models/Channel.class differ
diff --git a/target/classes/com/example/demo/models/Message.class b/target/classes/com/example/demo/models/Message.class
new file mode 100644
index 000000000..953bcac9c
Binary files /dev/null and b/target/classes/com/example/demo/models/Message.class differ
diff --git a/target/classes/com/example/demo/models/Profile.class b/target/classes/com/example/demo/models/Profile.class
new file mode 100644
index 000000000..75bf6f170
Binary files /dev/null and b/target/classes/com/example/demo/models/Profile.class differ
diff --git a/target/classes/com/example/demo/repository/ChannelRepo.class b/target/classes/com/example/demo/repository/ChannelRepo.class
new file mode 100644
index 000000000..91a30cadd
Binary files /dev/null and b/target/classes/com/example/demo/repository/ChannelRepo.class differ
diff --git a/target/classes/com/example/demo/repository/MessageRepo.class b/target/classes/com/example/demo/repository/MessageRepo.class
new file mode 100644
index 000000000..aa8a258cb
Binary files /dev/null and b/target/classes/com/example/demo/repository/MessageRepo.class differ
diff --git a/target/classes/com/example/demo/repository/ProfileRepo.class b/target/classes/com/example/demo/repository/ProfileRepo.class
new file mode 100644
index 000000000..017fd49fc
Binary files /dev/null and b/target/classes/com/example/demo/repository/ProfileRepo.class differ
diff --git a/target/classes/com/example/demo/service/ChannelService.class b/target/classes/com/example/demo/service/ChannelService.class
new file mode 100644
index 000000000..bee65a896
Binary files /dev/null and b/target/classes/com/example/demo/service/ChannelService.class differ
diff --git a/target/classes/com/example/demo/service/MessageService.class b/target/classes/com/example/demo/service/MessageService.class
new file mode 100644
index 000000000..4e3c8f004
Binary files /dev/null and b/target/classes/com/example/demo/service/MessageService.class differ
diff --git a/target/classes/com/example/demo/service/ProfileService.class b/target/classes/com/example/demo/service/ProfileService.class
new file mode 100644
index 000000000..68a2c8821
Binary files /dev/null and b/target/classes/com/example/demo/service/ProfileService.class differ
diff --git a/target/test-classes/com/example/demo/config/TestChannelConfig.class b/target/test-classes/com/example/demo/config/TestChannelConfig.class
new file mode 100644
index 000000000..20ae89798
Binary files /dev/null and b/target/test-classes/com/example/demo/config/TestChannelConfig.class differ
diff --git a/target/test-classes/com/example/demo/config/TestMessageConfig.class b/target/test-classes/com/example/demo/config/TestMessageConfig.class
new file mode 100644
index 000000000..3cff01262
Binary files /dev/null and b/target/test-classes/com/example/demo/config/TestMessageConfig.class differ
diff --git a/target/test-classes/com/example/demo/config/TestProfileConfig.class b/target/test-classes/com/example/demo/config/TestProfileConfig.class
new file mode 100644
index 000000000..e81974155
Binary files /dev/null and b/target/test-classes/com/example/demo/config/TestProfileConfig.class differ
diff --git a/target/test-classes/com/example/demo/controllers/TestChannelController.class b/target/test-classes/com/example/demo/controllers/TestChannelController.class
new file mode 100644
index 000000000..c7cb4ee57
Binary files /dev/null and b/target/test-classes/com/example/demo/controllers/TestChannelController.class differ
diff --git a/target/test-classes/com/example/demo/controllers/TestMessageController.class b/target/test-classes/com/example/demo/controllers/TestMessageController.class
new file mode 100644
index 000000000..0c30170cf
Binary files /dev/null and b/target/test-classes/com/example/demo/controllers/TestMessageController.class differ
diff --git a/target/test-classes/com/example/demo/controllers/TestProfileController.class b/target/test-classes/com/example/demo/controllers/TestProfileController.class
new file mode 100644
index 000000000..f6fc918ed
Binary files /dev/null and b/target/test-classes/com/example/demo/controllers/TestProfileController.class differ
diff --git a/target/test-classes/com/example/demo/models/TestChannel.class b/target/test-classes/com/example/demo/models/TestChannel.class
new file mode 100644
index 000000000..9ee3d414d
Binary files /dev/null and b/target/test-classes/com/example/demo/models/TestChannel.class differ
diff --git a/target/test-classes/com/example/demo/models/TestMessage.class b/target/test-classes/com/example/demo/models/TestMessage.class
new file mode 100644
index 000000000..1bf48a94e
Binary files /dev/null and b/target/test-classes/com/example/demo/models/TestMessage.class differ
diff --git a/target/test-classes/com/example/demo/models/TestProfile.class b/target/test-classes/com/example/demo/models/TestProfile.class
new file mode 100644
index 000000000..9784c6fab
Binary files /dev/null and b/target/test-classes/com/example/demo/models/TestProfile.class differ
diff --git a/target/test-classes/com/example/demo/repositories/TestChannelRepo.class b/target/test-classes/com/example/demo/repositories/TestChannelRepo.class
new file mode 100644
index 000000000..7224277b1
Binary files /dev/null and b/target/test-classes/com/example/demo/repositories/TestChannelRepo.class differ
diff --git a/target/test-classes/com/example/demo/repositories/TestMessageRepo.class b/target/test-classes/com/example/demo/repositories/TestMessageRepo.class
new file mode 100644
index 000000000..d861fb7d1
Binary files /dev/null and b/target/test-classes/com/example/demo/repositories/TestMessageRepo.class differ
diff --git a/target/test-classes/com/example/demo/repositories/TestProfileRepo.class b/target/test-classes/com/example/demo/repositories/TestProfileRepo.class
new file mode 100644
index 000000000..8a519520a
Binary files /dev/null and b/target/test-classes/com/example/demo/repositories/TestProfileRepo.class differ
diff --git a/target/test-classes/com/example/demo/services/TestChannelService.class b/target/test-classes/com/example/demo/services/TestChannelService.class
new file mode 100644
index 000000000..1f069309f
Binary files /dev/null and b/target/test-classes/com/example/demo/services/TestChannelService.class differ
diff --git a/target/test-classes/com/example/demo/services/TestMessageService.class b/target/test-classes/com/example/demo/services/TestMessageService.class
new file mode 100644
index 000000000..10d33fe70
Binary files /dev/null and b/target/test-classes/com/example/demo/services/TestMessageService.class differ
diff --git a/target/test-classes/com/example/demo/services/TestProfileService.class b/target/test-classes/com/example/demo/services/TestProfileService.class
new file mode 100644
index 000000000..278cabb0a
Binary files /dev/null and b/target/test-classes/com/example/demo/services/TestProfileService.class differ