Files
Layer3Gen/demo-jakarta/src/main/java/com/example/demo/controller/BookControllerDTO.java
2023-02-26 16:26:41 +01:00

64 lines
2.1 KiB
Java

package com.example.demo.controller;
import com.example.demo.model.Book;
import com.example.demo.controller.dto.BookDTO;
import com.example.demo.service.BookService;
import com.example.demo.service.mapper.BookMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
/**
* Generated by Springboot-3layer-Generator at Feb 26, 2023, 4:26:01 PM
*/
@RestController
@RequestMapping("/book-dto/")
public class BookControllerDTO implements CrudController<BookDTO,java.lang.Integer>{
@Autowired
private BookService service;
@Autowired
private BookMapper mapper;
@Override
public ResponseEntity<BookDTO> create(@RequestBody BookDTO dto) {
Book entity = mapper.toEntity(dto);
entity = service.create(entity);
return ResponseEntity.ok(mapper.toDto(entity));
}
@Override
public ResponseEntity<BookDTO> update(@RequestBody BookDTO dto) {
Book entity = mapper.toEntity(dto);
entity = service.update(entity);
return ResponseEntity.ok(mapper.toDto(entity));
}
@Override
public ResponseEntity<Page<BookDTO>> find(
@RequestBody BookDTO dto,
@RequestParam("page") Integer page,
@RequestParam("size") Integer size) {
Pageable pageable = PageRequest.of(page,size);
Book entity = mapper.toEntity(dto);
Page<BookDTO> pages = service.find(entity, pageable).map(mapper::toDto);
return ResponseEntity.ok(pages);
}
@Override
public ResponseEntity<BookDTO> getOne(@PathVariable("id") java.lang.Integer primaryKey) {
Optional<Book> entity = service.getOne(primaryKey);
return entity.map(e -> ResponseEntity.ok(mapper.toDto(e))).orElseGet(() -> ResponseEntity.notFound().build());
}
@Override
public void delete(java.lang.Integer primaryKey) {
service.delete(primaryKey);
}
}