source: src/main/java/com/example/eatys_app/service/RezervacijaServiceImpl.java

Last change on this file was b3f2adb, checked in by Aleksandar Siljanoski <acewow3@…>, 14 months ago

Adding project to repo

  • Property mode set to 100644
File size: 3.3 KB
Line 
1package com.example.eatys_app.service;
2
3import com.example.eatys_app.model.Kupuvac;
4import com.example.eatys_app.model.Restoran;
5import com.example.eatys_app.model.Rezervacija;
6import com.example.eatys_app.model.exceptions.InvalidRestoranIdException;
7import com.example.eatys_app.model.exceptions.InvalidRezervacijaIdException;
8import com.example.eatys_app.model.exceptions.KupuvacNotFoundException;
9import com.example.eatys_app.model.exceptions.KupuvacNotFoundException2;
10import com.example.eatys_app.repository.KupuvacRepository;
11import com.example.eatys_app.repository.RestoranRepository;
12import com.example.eatys_app.repository.RezervacijaRepository;
13import org.springframework.stereotype.Service;
14
15import java.sql.Timestamp;
16import java.util.Date;
17import java.util.List;
18import java.util.Optional;
19
20@Service
21public class RezervacijaServiceImpl implements RezervacijaService{
22
23 private final KupuvacRepository kupuvacRepository;
24 private final RezervacijaRepository rezervacijaRepository;
25 private final RestoranRepository restoranRepository;
26
27 public RezervacijaServiceImpl(KupuvacRepository kupuvacRepository, RezervacijaRepository rezervacijaRepository, RestoranRepository restoranRepository) {
28 this.kupuvacRepository = kupuvacRepository;
29 this.rezervacijaRepository = rezervacijaRepository;
30 this.restoranRepository = restoranRepository;
31 }
32
33 @Override
34 public List<Rezervacija> getActiveRezervacii(String username) {
35 Kupuvac kupuvac = this.kupuvacRepository.findByIme(username)
36 .orElseThrow(() -> new KupuvacNotFoundException(username));
37 return this.rezervacijaRepository.findAllByKupuvac(kupuvac);
38 }
39
40 @Override
41 public Rezervacija findById(Integer id) {
42 return this.rezervacijaRepository.findById(id).orElseThrow(InvalidRezervacijaIdException::new);
43 }
44
45 @Override
46 public Rezervacija create(String kupuvacIme, Date vreme, Integer lugje, String opis, Integer restoranId) {
47 Restoran restoran=this.restoranRepository.findById(restoranId).orElseThrow(InvalidRestoranIdException::new);
48 String status="R";
49 Kupuvac kupuvac=this.kupuvacRepository.findByIme(kupuvacIme).orElseThrow(KupuvacNotFoundException2::new);
50 Rezervacija rezervacija= new Rezervacija(vreme,lugje,status,opis,restoran,kupuvac);
51 return this.rezervacijaRepository.save(rezervacija);
52 }
53
54 @Override
55 public Rezervacija update(Integer id, String kupuvacIme, Date vreme, Integer lugje, String opis, Integer restoranId) {
56 Rezervacija rezervacija=this.rezervacijaRepository.findById(id).orElseThrow(InvalidRezervacijaIdException::new);
57 Restoran restoran=this.restoranRepository.findById(restoranId).orElseThrow(InvalidRestoranIdException::new);
58 String status="R";
59 Kupuvac kupuvac=this.kupuvacRepository.findByIme(kupuvacIme).orElseThrow(KupuvacNotFoundException2::new);
60 rezervacija.setVreme(vreme);
61 rezervacija.setLugje(lugje);
62 rezervacija.setStatus(status);
63 rezervacija.setOpis(opis);
64 rezervacija.setRestoran(restoran);
65 rezervacija.setKupuvac(kupuvac);
66 return this.rezervacijaRepository.save(rezervacija);
67 }
68
69 @Override
70 public Rezervacija delete(Integer id) {
71 Rezervacija rezervacija=this.findById(id);
72 this.rezervacijaRepository.delete(rezervacija);
73 return rezervacija;
74 }
75}
Note: See TracBrowser for help on using the repository browser.