package pl.com.bottega.documentmanagement.controller; import org.springframework.web.bind.annotation.*; import pl.com.bottega.documentmanagement.api.*; import pl.com.bottega.documentmanagement.domain.DocumentNumber; /** * Created by maciuch on 03.07.16. */ @RestController @RequestMapping("/documents") public class DocumentsController { private DocumentFlowProcess documentFlowProcess; private DocumentsCatalog documentsCatalog; public DocumentsController(DocumentFlowProcess documentFlowProcess, DocumentsCatalog documentsCatalog) { this.documentFlowProcess = documentFlowProcess; this.documentsCatalog = documentsCatalog; } @PutMapping public DocumentNumber create(@RequestBody DocumentRequest documentRequest) { return documentFlowProcess.create(documentRequest.getTitle(), documentRequest.getContent()); } @PostMapping("/{documentNumber}") public void update(@PathVariable String documentNumber, @RequestBody DocumentRequest documentRequest) { documentFlowProcess.change(new DocumentNumber(documentNumber), documentRequest.getTitle(), documentRequest.getContent()); } @GetMapping("/{documentNumber}") public DocumentDto show(@PathVariable String documentNumber) { return documentsCatalog.get(new DocumentNumber(documentNumber)); } // /documents?query=hospital&createdBy=40&verifiedBy=76&...&... @GetMapping public DocumentSearchResults index(DocumentCriteria documentCriteria) { return documentsCatalog.find(documentCriteria); } @DeleteMapping("/{documentNumber}") public void destroy(@PathVariable String documentNumber) { documentFlowProcess.archive(new DocumentNumber(documentNumber)); } }