source: src/main/java/com/example/eatys_app/service/SeSostoiOdServiceImpl.java@ b3f2adb

Last change on this file since b3f2adb 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
3
4import com.example.eatys_app.model.Kupuvac;
5import com.example.eatys_app.model.Naracka;
6import com.example.eatys_app.model.Obrok;
7import com.example.eatys_app.model.SeSostoiOd;
8import com.example.eatys_app.model.exceptions.*;
9import com.example.eatys_app.repository.*;
10import jakarta.transaction.Transactional;
11import org.springframework.stereotype.Service;
12
13@Service
14public class SeSostoiOdServiceImpl implements SeSostoiOdService {
15
16 private final SeSostoiOdRepository seSostoiOdRepository;
17 private final NarackaRepository narackaRepository;
18 private final ObrokRepository obrokRepository;
19 private final KupuvacRepository kupuvacRepository;
20 private final CenaRepository cenaRepository;
21
22 public SeSostoiOdServiceImpl(SeSostoiOdRepository seSostoiOdRepository, NarackaRepository narackaRepository, ObrokRepository obrokRepository, KupuvacRepository kupuvacRepository, CenaRepository cenaRepository) {
23 this.seSostoiOdRepository = seSostoiOdRepository;
24 this.narackaRepository = narackaRepository;
25 this.obrokRepository = obrokRepository;
26 this.kupuvacRepository = kupuvacRepository;
27 this.cenaRepository = cenaRepository;
28 }
29
30
31 @Override
32 public SeSostoiOd create(String kupuvacName, Integer obrokId, Integer kolicina) {
33 Kupuvac kupuvac=this.kupuvacRepository.findByIme(kupuvacName).orElseThrow(KupuvacNotFoundException2::new);
34 Naracka naracka=this.narackaRepository.findByKupuvac(kupuvac).orElseThrow(NarackaNotFoundException2::new);
35 Obrok obrok=this.obrokRepository.findById(obrokId).orElseThrow(InvalidObrokIdException::new);
36 Integer cena=this.cenaRepository.findByObrok(obrok).orElseThrow(InvalidObrokIdException::new).getCenaIznos()*kolicina;
37 SeSostoiOd seSostoiOd = new SeSostoiOd(naracka,obrok,kolicina,cena);
38 return this.seSostoiOdRepository.save(seSostoiOd);
39 }
40
41 @Override
42 public SeSostoiOd delete(String kupuvacName, Integer obrokId) {
43 Kupuvac kupuvac=this.kupuvacRepository.findByIme(kupuvacName).orElseThrow(KupuvacNotFoundException2::new);
44 Naracka naracka=this.narackaRepository.findByKupuvac(kupuvac).orElseThrow(NarackaNotFoundException2::new);
45 Obrok obrok=this.obrokRepository.findById(obrokId).orElseThrow(InvalidObrokIdException::new);
46 SeSostoiOd seSostoiOd=this.seSostoiOdRepository.findByNarackaAndObrok(naracka,obrok).orElseThrow(InvalidNarackaAndObrokException::new);
47 this.seSostoiOdRepository.delete(seSostoiOd);
48 return seSostoiOd;
49 }
50
51
52 @Override
53 public void payment(String kupuvacName) {
54 Kupuvac kupuvac=this.kupuvacRepository.findByIme(kupuvacName).orElseThrow(KupuvacNotFoundException2::new);
55 Naracka naracka=this.narackaRepository.findByKupuvac(kupuvac).orElseThrow(NarackaNotFoundException2::new);
56 this.narackaRepository.delete(naracka);
57 }
58
59
60 @Override
61 public Naracka getActiveShoppingCart(String username) {
62
63 Kupuvac kupuvac = this.kupuvacRepository.findByIme(username)
64 .orElseThrow(() -> new KupuvacNotFoundException(username));
65
66 return this.narackaRepository
67 .findByKupuvac(kupuvac)
68 .orElseGet(() -> {
69 Naracka cart = new Naracka(kupuvac);
70 return this.narackaRepository.save(cart);
71 });
72 }
73}
Note: See TracBrowser for help on using the repository browser.