Добавление классов-контроллеров и 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
|
||||
public Nation deleteNAtion(Long id) {
|
||||
public Nation deleteNation(Long id) {
|
||||
final Nation currentNation = findNation(id);
|
||||
nationRepository.delete(currentNation);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user