1 | package com.example.baziproekt.service.impl;
|
---|
2 |
|
---|
3 | import com.example.baziproekt.model.Kompanija;
|
---|
4 | import com.example.baziproekt.model.Proizvodi;
|
---|
5 | import com.example.baziproekt.model.exceptions.InvalidArgumentsException;
|
---|
6 | import com.example.baziproekt.model.exceptions.InvalidKompanijaException;
|
---|
7 | import com.example.baziproekt.model.exceptions.ProductNotFoundException;
|
---|
8 | import com.example.baziproekt.repository.KompanijaRepository;
|
---|
9 | import com.example.baziproekt.repository.ProizvodiRepository;
|
---|
10 | import com.example.baziproekt.service.ProizvodiService;
|
---|
11 | import org.springframework.stereotype.Service;
|
---|
12 |
|
---|
13 | import java.util.List;
|
---|
14 | import java.util.Random;
|
---|
15 |
|
---|
16 | @Service
|
---|
17 | public class ProizvodiServiceImpl implements ProizvodiService {
|
---|
18 |
|
---|
19 | private final ProizvodiRepository repository;
|
---|
20 | private final KompanijaRepository kompanijaRepository;
|
---|
21 |
|
---|
22 | public ProizvodiServiceImpl(ProizvodiRepository repository, KompanijaRepository kompanijaRepository) {
|
---|
23 | this.repository = repository;
|
---|
24 | this.kompanijaRepository = kompanijaRepository;
|
---|
25 | }
|
---|
26 |
|
---|
27 | @Override
|
---|
28 | public Proizvodi findById(Integer id) {
|
---|
29 | return repository.findByIds(id).orElseThrow(InvalidArgumentsException::new);
|
---|
30 | }
|
---|
31 |
|
---|
32 | @Override
|
---|
33 | public List<Proizvodi> listAll() {
|
---|
34 | return repository.findAll();
|
---|
35 | }
|
---|
36 |
|
---|
37 | @Override
|
---|
38 | public List<Proizvodi> findByName(String name) {
|
---|
39 | if(name==null ||name.isEmpty())
|
---|
40 | {
|
---|
41 | throw new InvalidArgumentsException();
|
---|
42 | }
|
---|
43 | return repository.findProizvodiByName(name);
|
---|
44 | }
|
---|
45 |
|
---|
46 | @Override
|
---|
47 | public List<Proizvodi> findByKompanija(String ime) {
|
---|
48 |
|
---|
49 | if(ime==null ||ime.isEmpty())
|
---|
50 | {
|
---|
51 | throw new InvalidArgumentsException();
|
---|
52 | }
|
---|
53 | Kompanija kompanija=kompanijaRepository.findKompanijaByIme(ime);
|
---|
54 | return repository.findProizvodiByIme(kompanija);
|
---|
55 | }
|
---|
56 |
|
---|
57 | @Override
|
---|
58 | public Proizvodi create(Integer kolicina, String name, String boja, String karakteristiki, String kompanijaName) {
|
---|
59 | Kompanija kompanija=kompanijaRepository.findKompanijaByIme(kompanijaName);
|
---|
60 | if(kompanija==null)
|
---|
61 | { throw new InvalidKompanijaException();}
|
---|
62 |
|
---|
63 |
|
---|
64 | Proizvodi proizvod=new Proizvodi(kolicina,name,boja,karakteristiki,kompanija);
|
---|
65 | return repository.save(proizvod);
|
---|
66 | }
|
---|
67 |
|
---|
68 | @Override
|
---|
69 | public Proizvodi update(Integer id, Integer kolicina, String name, String boja, String karakteristiki, String kompanijaName) {
|
---|
70 | Proizvodi proizvod=repository.findByIds(id).orElseThrow(ProductNotFoundException::new);
|
---|
71 | proizvod.setBoja(boja);
|
---|
72 | proizvod.setName(name);
|
---|
73 | proizvod.setKarakteristiki(karakteristiki);
|
---|
74 | proizvod.setKolicina(kolicina);
|
---|
75 |
|
---|
76 | Kompanija kompanija=kompanijaRepository.findKompanijaByIme(kompanijaName);
|
---|
77 | if(kompanija==null)
|
---|
78 | { throw new InvalidKompanijaException();}
|
---|
79 | proizvod.setIme(kompanija);
|
---|
80 | return repository.save(proizvod);
|
---|
81 |
|
---|
82 | }
|
---|
83 | }
|
---|