[0e4d807] | 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 | }
|
---|