LuanMiranda77 / agility-e-commerce-api

Api para gerenciamento de loja online
0 stars 0 forks source link

Modelo de resource #30

Open LuanMiranda77 opened 3 years ago

LuanMiranda77 commented 3 years ago

@RestController @RequestMapping("/book") public class BookController {

@Autowired
private BookService bookService;

@Autowired
private ApplicationEventPublisher publisher;

// metodo de salvar book

@PostMapping
public ResponseEntity<BookDTO> save(@RequestBody @Valid Book book, HttpServletResponse response) {
    BookDTO bookSalvo = bookService.save(book);
    publisher.publishEvent(new RecursoCriadoEvent(this, response, bookSalvo.getLivroId()));
    return ResponseEntity.status(HttpStatus.CREATED).body(bookSalvo);
}

// metodo de atualizar entidade

@PutMapping("/{codigo}")
public ResponseEntity<Book> update(@PathVariable Long codigo, @RequestBody Book book) {
    Book bookSalvo = bookService.update(codigo, book);
    return ResponseEntity.ok(bookSalvo);
}

// metodo de deletar

@DeleteMapping("/{codigo}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void delete(@PathVariable Long codigo) {
    bookService.delete(codigo);
}

@GetMapping(params = "baratos")
public Page<BookResumo> getListaCincoMaisBaratos(Pageable page) {
    System.err.println("Aqui estou");
    return bookService.findListaCincoMaisBaratos(page);
}

// consultar todos os livros (em estoque e sem estoque tb) ordenados de forma ascendente pelo título de forma paginada // (defina um tamanho fixo para a página - ex.: 5 livros). O usuário pode // informar a página que deseja consultar. @GetMapping(params = "tudo") public Page findListBookOrdenadaTituloComOuSemEstoque(Pageable page) { return bookService.findListBookOrdenadaTituloComOuSemEstoque(page); }

// retorna uma lista de livro com filtro
@GetMapping
public Page<BookDTO> getListaBookAllPaginada(BookFilter filter, Pageable page) {
    return bookService.getListaBookAllPaginada(filter, page);
}

}

┆Issue is synchronized with this Trello card by Unito