aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorterminaldweller <thabogre@gmail.com>2022-05-03 10:28:42 +0000
committerterminaldweller <thabogre@gmail.com>2022-05-03 10:28:42 +0000
commit056dcb5b4fda70f963bfb392fcd2816170f2bc12 (patch)
treecf79d8f2ef8cbfe574d59b9d785dbb52496aff4d
parentupdate (diff)
downloadmdrtl-056dcb5b4fda70f963bfb392fcd2816170f2bc12.tar.gz
mdrtl-056dcb5b4fda70f963bfb392fcd2816170f2bc12.zip
added PUT, the CRUD is done now. just need to test the crud
-rw-r--r--spring-front/Dockerfile2
-rw-r--r--src/main/java/com/terminaldweller/doc/Doc.java22
-rw-r--r--src/main/java/com/terminaldweller/doc/DocConfig.java4
-rw-r--r--src/main/java/com/terminaldweller/doc/DocController.java6
-rw-r--r--src/main/java/com/terminaldweller/doc/DocService.java16
5 files changed, 45 insertions, 5 deletions
diff --git a/spring-front/Dockerfile b/spring-front/Dockerfile
index 5e236e6..e76de11 100644
--- a/spring-front/Dockerfile
+++ b/spring-front/Dockerfile
@@ -1,4 +1,4 @@
-FROM node:lts-alpine3.15 as certbuilder
+FROM alpine:3.15 as certbuilder
RUN apk add openssl
WORKDIR /certs
RUN openssl req -nodes -new -x509 -subj="/C=US/ST=Denial/L=springfield/O=Dis/CN=localhost" -keyout server.key -out server.cert
diff --git a/src/main/java/com/terminaldweller/doc/Doc.java b/src/main/java/com/terminaldweller/doc/Doc.java
index 1ec9dca..c3fa72b 100644
--- a/src/main/java/com/terminaldweller/doc/Doc.java
+++ b/src/main/java/com/terminaldweller/doc/Doc.java
@@ -18,6 +18,7 @@ public class Doc {
private String name;
private long lastModified;
+ private String body;
public Doc() {}
@@ -28,15 +29,24 @@ public class Doc {
* @param name the name of the documment given by the user.
* @param lastModified the date of the last modification in unix epoch.
*/
- public Doc(Long id, String name, long lastModified) {
+ public Doc(Long id, String name, long lastModified, String body) {
this.id = id;
this.name = name;
this.lastModified = lastModified;
+ this.body = body;
}
- public Doc(String name, long lastModified) {
+ /**
+ * Constructor without the id.
+ *
+ * @param name document name
+ * @param lastModified date of last modification
+ * @param body document content
+ */
+ public Doc(String name, long lastModified, String body) {
this.name = name;
this.lastModified = lastModified;
+ this.body = body;
}
public Long getId() {
@@ -51,6 +61,10 @@ public class Doc {
return this.lastModified;
}
+ public String getBody() {
+ return this.body;
+ }
+
public void setId(Long id) {
this.id = id;
}
@@ -62,4 +76,8 @@ public class Doc {
public void setLastModified(long lastModified) {
this.lastModified = lastModified;
}
+
+ public void setBody(String body) {
+ this.body = body;
+ }
}
diff --git a/src/main/java/com/terminaldweller/doc/DocConfig.java b/src/main/java/com/terminaldweller/doc/DocConfig.java
index 1826817..b75b0d4 100644
--- a/src/main/java/com/terminaldweller/doc/DocConfig.java
+++ b/src/main/java/com/terminaldweller/doc/DocConfig.java
@@ -11,8 +11,8 @@ public class DocConfig {
@Bean
CommandLineRunner commandLineRunner(DocRepository repository) {
return args -> {
- Doc mydoc1 = new Doc("mydoc1", 0L);
- Doc mydoc2 = new Doc("mydoc2", 0L);
+ Doc mydoc1 = new Doc("mydoc1", 0L, "");
+ Doc mydoc2 = new Doc("mydoc2", 0L, "");
repository.saveAll(List.of(mydoc1, mydoc2));
};
diff --git a/src/main/java/com/terminaldweller/doc/DocController.java b/src/main/java/com/terminaldweller/doc/DocController.java
index a91fb0d..e73ef41 100644
--- a/src/main/java/com/terminaldweller/doc/DocController.java
+++ b/src/main/java/com/terminaldweller/doc/DocController.java
@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
@@ -38,4 +39,9 @@ public class DocController {
public void deleteDocs(@PathVariable("Id") Long id) {
docService.deleteDoc(id);
}
+
+ @PutMapping(path = "{Id}")
+ public void updatDoc(@RequestBody Doc doc, @PathVariable("Id") long id) {
+ docService.updateDoc(doc, id);
+ }
}
diff --git a/src/main/java/com/terminaldweller/doc/DocService.java b/src/main/java/com/terminaldweller/doc/DocService.java
index b682087..5a07c23 100644
--- a/src/main/java/com/terminaldweller/doc/DocService.java
+++ b/src/main/java/com/terminaldweller/doc/DocService.java
@@ -33,6 +33,22 @@ public class DocService {
}
/**
+ * Update a Document.
+ *
+ * @param doc the document to update.
+ */
+ public void updateDoc(Doc doc, Long id) {
+ Optional<Doc> docOptional = docRepository.findById(id);
+ if (!docOptional.isPresent()) {
+ throw new IllegalStateException("Resource must be created before update");
+ }
+ doc.setId(id);
+ doc.setLastModified(System.currentTimeMillis() / 1000L);
+ doc.setBody(doc.getBody());
+ docRepository.save(doc);
+ }
+
+ /**
* Deletes a document from the data store.
*
* @param id The identifier for the document to be deleted.