diff options
Diffstat (limited to 'src/main/java')
5 files changed, 22 insertions, 14 deletions
| diff --git a/src/main/java/com/terminaldweller/doc/Doc.java b/src/main/java/com/terminaldweller/doc/Doc.java index c3fa72b..80247eb 100644 --- a/src/main/java/com/terminaldweller/doc/Doc.java +++ b/src/main/java/com/terminaldweller/doc/Doc.java @@ -1,10 +1,7 @@  package com.terminaldweller.doc;  import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType;  import javax.persistence.Id; -import javax.persistence.SequenceGenerator;  import javax.persistence.Table;  /** The document class. */ @@ -12,8 +9,8 @@ import javax.persistence.Table;  @Table  public class Doc {    @Id -  @SequenceGenerator(name = "doc_sequence", sequenceName = "doc_sequence", allocationSize = 1) -  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "doc_sequence") +  // @SequenceGenerator(name = "doc_sequence", sequenceName = "doc_sequence", allocationSize = 1) +  // @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "doc_sequence")    private Long id;    private String name; diff --git a/src/main/java/com/terminaldweller/doc/DocConfig.java b/src/main/java/com/terminaldweller/doc/DocConfig.java index b75b0d4..8b45535 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(11L, "mydoc1", 0L, "a one"); +      Doc mydoc2 = new Doc(111L, "mydoc2", 0L, "and a two");        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 39ddfe9..80e63a8 100644 --- a/src/main/java/com/terminaldweller/doc/DocController.java +++ b/src/main/java/com/terminaldweller/doc/DocController.java @@ -3,6 +3,7 @@ package com.terminaldweller.doc;  import java.util.Optional;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.CrossOrigin;  import org.springframework.web.bind.annotation.DeleteMapping;  import org.springframework.web.bind.annotation.GetMapping;  import org.springframework.web.bind.annotation.PathVariable; @@ -15,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;  /** The document controller class. */  @RestController +@CrossOrigin(origins = "https://localhost:7080")  @RequestMapping(path = "api/v1/doc")  public class DocController {    private final DocService docService; @@ -29,10 +31,10 @@ public class DocController {      return docService.getDocs(id);    } -  @PostMapping +  @PostMapping(path = "{Id}")    @ResponseStatus(HttpStatus.CREATED) -  public void postDocs(@RequestBody Doc doc) { -    docService.addNewDoc(doc); +  public void postDocs(@PathVariable("Id") Long id, @RequestBody Doc doc) { +    docService.addNewDoc(id, doc);    }    @DeleteMapping(path = "{Id}") diff --git a/src/main/java/com/terminaldweller/doc/DocRepository.java b/src/main/java/com/terminaldweller/doc/DocRepository.java index 387835e..56db04e 100644 --- a/src/main/java/com/terminaldweller/doc/DocRepository.java +++ b/src/main/java/com/terminaldweller/doc/DocRepository.java @@ -10,4 +10,7 @@ import org.springframework.stereotype.Repository;  public interface DocRepository extends JpaRepository<Doc, Long> {    @Query("SELECT d FROM Doc d WHERE d.name = ?1")    Optional<Doc> findDocByName(String name); + +  @Query("SELECT d FROM Doc d WHERE d.id = ?1") +  Optional<Doc> findDocById(Long id);  } diff --git a/src/main/java/com/terminaldweller/doc/DocService.java b/src/main/java/com/terminaldweller/doc/DocService.java index c8bab23..df4456e 100644 --- a/src/main/java/com/terminaldweller/doc/DocService.java +++ b/src/main/java/com/terminaldweller/doc/DocService.java @@ -15,7 +15,11 @@ public class DocService {    }    public Optional<Doc> getDocs(Long id) { -    return docRepository.findById(id); +    Optional<Doc> docOptional = docRepository.findById(id); +    if (docOptional.isPresent()) { +      return docOptional; +    } +    throw new IllegalStateException("Id does not exist");    }    /** @@ -23,11 +27,13 @@ public class DocService {     *     * @param doc the new Document to add.     */ -  public void addNewDoc(Doc doc) { -    Optional<Doc> docOptional = docRepository.findDocByName(doc.getName()); +  public void addNewDoc(Long id, Doc doc) { +    // Optional<Doc> docOptional = docRepository.findDocByName(doc.getName()); +    Optional<Doc> docOptional = docRepository.findById(id);      if (docOptional.isPresent()) {        throw new IllegalStateException("Id is already taken");      } +    doc.setId(id);      docRepository.save(doc);    } @@ -55,7 +61,7 @@ public class DocService {    public void deleteDoc(Long id) {      boolean exists = docRepository.existsById(id);      if (!exists) { -      throw new IllegalStateException("doc " + id + " does not exitst"); +      throw new IllegalStateException("doc " + Long.toString(id) + " does not exitst");      }      docRepository.deleteById(id);    } | 
