Добавление классов-контроллеров и DOT.
This commit is contained in:
parent
d0f9fb2bd0
commit
8ecf9e9cab
@ -0,0 +1,25 @@
|
|||||||
|
package premium_store.controller.DTO;
|
||||||
|
|
||||||
|
import premium_store.model.Client;
|
||||||
|
import premium_store.model.Tank;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//класс, который соединяет танки клиента в одну строчку (нам так захотелось)
|
||||||
|
public class ClientDTO {
|
||||||
|
private final long id;
|
||||||
|
private final List<Tank> tanks;
|
||||||
|
|
||||||
|
public ClientDTO(Client client){
|
||||||
|
this.id = client.getId();
|
||||||
|
this.tanks = client.getTanks();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId(){
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Tank> getTanks(){
|
||||||
|
return tanks;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package premium_store.controller.DTO;
|
||||||
|
|
||||||
|
import premium_store.model.Client;
|
||||||
|
import premium_store.model.Tank;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TankDTO {
|
||||||
|
private final long id;
|
||||||
|
private final List<Client> clients;
|
||||||
|
|
||||||
|
public TankDTO(Tank tank){
|
||||||
|
this.id = tank.getId();
|
||||||
|
this.clients = tank.getClients();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getId(){
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Client> getClients(){
|
||||||
|
return clients;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
package premium_store.controller.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import premium_store.controller.DTO.ClientDTO;
|
||||||
|
import premium_store.model.Tank;
|
||||||
|
import premium_store.service.ClientService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/client")
|
||||||
|
public class ClientController {
|
||||||
|
private final ClientService clientService;
|
||||||
|
|
||||||
|
public ClientController(ClientService clientService){
|
||||||
|
this.clientService = clientService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//аннотация PathVariable связывает значения id из URL и Long id
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public ClientDTO getClient(@PathVariable Long id) {
|
||||||
|
return new ClientDTO(clientService.findClient(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
//с помощью Java Stream преобразуем набор пришедших данных в объекты StudentDto
|
||||||
|
@GetMapping("/")
|
||||||
|
public List<ClientDTO> getClients() {
|
||||||
|
return clientService.findAllClients().stream()
|
||||||
|
.map(ClientDTO::new)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/")
|
||||||
|
public ClientDTO createClient(@RequestParam("nickName") String nickName,
|
||||||
|
@RequestParam("email") String email,
|
||||||
|
@RequestParam("balance") Integer balance) {
|
||||||
|
return new ClientDTO(clientService.addClient(nickName, email, balance));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public ClientDTO updateClient(@PathVariable Long id,
|
||||||
|
@RequestParam("nickName") String nickName,
|
||||||
|
@RequestParam("email") String email,
|
||||||
|
@RequestParam("balance") Integer balance,
|
||||||
|
@RequestParam("tanks") List<Tank> tanks) {
|
||||||
|
return new ClientDTO(clientService.updateClient(id, nickName, email, balance, tanks));
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public ClientDTO deleteClient(@PathVariable Long id) {
|
||||||
|
return new ClientDTO(clientService.deleteClient(id));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
package premium_store.controller.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import premium_store.model.Level;
|
||||||
|
import premium_store.service.LevelService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//привязываем наш контроллер к придуманному корневому URL благодаря аннотациям
|
||||||
|
//здесь происходит внедрение зависимости нашего сервиса
|
||||||
|
//так же здесь прописываем вызовы методов CRUD в привязке к URL
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/level")
|
||||||
|
public class LevelController {
|
||||||
|
private final LevelService levelService;
|
||||||
|
|
||||||
|
public LevelController(LevelService levelService){
|
||||||
|
this.levelService = levelService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//аннотация PathVariable связывает значения id из URL и Long id
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public Level getLevel(@PathVariable Long id) {
|
||||||
|
return levelService.findLevel(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//с помощью Java Stream преобразуем набор пришедших данных в объекты StudentDto
|
||||||
|
@GetMapping("/")
|
||||||
|
public List<Level> getLevels() {
|
||||||
|
return levelService.findAllLevels().stream()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/")
|
||||||
|
public Level createLevel(@RequestParam("Level") int level) {
|
||||||
|
return levelService.addLevel(level);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public Level updateLevel(@PathVariable Long id,
|
||||||
|
@RequestParam("Level") int level) {
|
||||||
|
return levelService.updateLevel(id, level);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public Level deleteLevel(@PathVariable Long id) {
|
||||||
|
return levelService.deleteLevel(id);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
package premium_store.controller.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import premium_store.model.Nation;
|
||||||
|
import premium_store.service.NationService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//привязываем наш контроллер к придуманному корневому URL благодаря аннотациям
|
||||||
|
//здесь происходит внедрение зависимости нашего сервиса
|
||||||
|
//так же здесь прописываем вызовы методов CRUD в привязке к URL
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/nation")
|
||||||
|
public class NationController {
|
||||||
|
private final NationService nationService;
|
||||||
|
|
||||||
|
public NationController(NationService nationService){
|
||||||
|
this.nationService = nationService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//аннотация PathVariable связывает значения id из URL и Long id
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public Nation getNation(@PathVariable Long id) {
|
||||||
|
return nationService.findNation(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
//с помощью Java Stream преобразуем набор пришедших данных в объекты StudentDto
|
||||||
|
@GetMapping("/")
|
||||||
|
public List<Nation> getNations() {
|
||||||
|
return nationService.findAllNations().stream()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/")
|
||||||
|
public Nation createNation(@RequestParam("nation") String nation) {
|
||||||
|
return nationService.addNation(nation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public Nation updateNation(@PathVariable Long id,
|
||||||
|
@RequestParam("nation") String nation) {
|
||||||
|
return nationService.updateNation(id, nation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public Nation deleteNation(@PathVariable Long id) {
|
||||||
|
return nationService.deleteNation(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,57 @@
|
|||||||
|
package premium_store.controller.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import premium_store.controller.DTO.TankDTO;
|
||||||
|
import premium_store.model.Client;
|
||||||
|
import premium_store.model.Level;
|
||||||
|
import premium_store.model.Nation;
|
||||||
|
import premium_store.service.TankService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/tank")
|
||||||
|
public class TankController {
|
||||||
|
private final TankService tankService;
|
||||||
|
|
||||||
|
public TankController(TankService tankService){
|
||||||
|
this.tankService = tankService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//аннотация PathVariable связывает значения id из URL и Long id
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public TankDTO getTank(@PathVariable Long id) {
|
||||||
|
return new TankDTO(tankService.findTank(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
//с помощью Java Stream преобразуем набор пришедших данных в объекты TankDTO
|
||||||
|
@GetMapping("/")
|
||||||
|
public List<TankDTO> getTanks() {
|
||||||
|
return tankService.findAllTanks().stream()
|
||||||
|
.map(TankDTO::new)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/")
|
||||||
|
public TankDTO createTank(@RequestParam("firstName") String name,
|
||||||
|
@RequestParam("nation") Nation nation,
|
||||||
|
@RequestParam("level") Level level,
|
||||||
|
@RequestParam("cost") int cost) {
|
||||||
|
return new TankDTO(tankService.addTank(name, nation, level, cost));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/{id}")
|
||||||
|
public TankDTO updateTank(@PathVariable Long id,
|
||||||
|
@RequestParam("firstName") String name,
|
||||||
|
@RequestParam("nation") Nation nation,
|
||||||
|
@RequestParam("level") Level level,
|
||||||
|
@RequestParam("cost") int cost,
|
||||||
|
@RequestParam("clients")List<Client> clients) {
|
||||||
|
return new TankDTO(tankService.updateTank(id, name, nation, level, cost, clients));
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public TankDTO deleteTank(@PathVariable Long id) {
|
||||||
|
return new TankDTO(tankService.deleteTank(id));
|
||||||
|
}
|
||||||
|
}
|
@ -52,7 +52,7 @@ public class NationService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public Nation deleteNAtion(Long id) {
|
public Nation deleteNation(Long id) {
|
||||||
final Nation currentNation = findNation(id);
|
final Nation currentNation = findNation(id);
|
||||||
nationRepository.delete(currentNation);
|
nationRepository.delete(currentNation);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user