Ignore:
Timestamp:
07/07/23 12:14:58 (12 months ago)
Author:
HristijanMitic00 <hristijan.mitic.01@…>
Branches:
main
Parents:
1dd9226
Message:

First commit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/project/fmo/app/projcetfmo/Service/impl/KorisnikServiceImpl.java

    r1dd9226 rd14176d  
    1 package project.fmo.app.projcetfmo.Service.impl;public class KorisnikServiceImpl {
     1package project.fmo.app.projcetfmo.Service.impl;
     2
     3import org.springframework.security.core.authority.SimpleGrantedAuthority;
     4import org.springframework.security.core.userdetails.User;
     5import org.springframework.security.core.userdetails.UserDetails;
     6import org.springframework.security.core.userdetails.UsernameNotFoundException;
     7import org.springframework.security.crypto.password.PasswordEncoder;
     8import org.springframework.stereotype.Service;
     9import project.fmo.app.projcetfmo.Model.*;
     10import project.fmo.app.projcetfmo.Repository.*;
     11import project.fmo.app.projcetfmo.Service.KorisnikService;
     12
     13import java.sql.Timestamp;
     14import java.time.LocalDateTime;
     15import java.util.List;
     16import java.util.Objects;
     17import java.util.stream.Collectors;
     18import java.util.stream.Stream;
     19
     20@Service
     21public class KorisnikServiceImpl implements KorisnikService {
     22
     23    private final PasswordEncoder passwordEncoder;
     24    private final AdminRepository adminRepository;
     25    private final DostavuvacRepository dostavuvacRepository;
     26
     27    private final TelefnoskiBrojRepository telefnoskiBrojRepository;
     28    private final KupuvacRepository kupuvacRepository;
     29    private final KorisnikRepository korisnikRepository;
     30
     31    public KorisnikServiceImpl(PasswordEncoder passwordEncoder, AdminRepository adminRepository, DostavuvacRepository dostavuvacRepository, TelefnoskiBrojRepository telefnoskiBrojRepository, KupuvacRepository kupuvacRepository, KorisnikRepository korisnikRepository) {
     32        this.passwordEncoder = passwordEncoder;
     33        this.adminRepository = adminRepository;
     34        this.dostavuvacRepository = dostavuvacRepository;
     35        this.telefnoskiBrojRepository = telefnoskiBrojRepository;
     36        this.kupuvacRepository = kupuvacRepository;
     37        this.korisnikRepository = korisnikRepository;
     38    }
     39
     40    @Override
     41    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
     42        Korisnik korisnik = korisnikRepository.findByImePrezime(username);
     43        for (AdminKorisnik a: adminRepository.findAll()) {
     44            if (a.getIdKorisnik() == korisnik.getIdKorisnik()) {
     45                return new User(korisnik.getImePrezime(), korisnik.getPasswordKorisnik(), Stream.of(new SimpleGrantedAuthority("ROLE_ADMIN")).collect(Collectors.toList()));
     46            }
     47        }
     48        for (Dostavuvac a: dostavuvacRepository.findAll()) {
     49            if (a.getIdKorisnik() == korisnik.getIdKorisnik()) {
     50                return new User(korisnik.getImePrezime(), korisnik.getPasswordKorisnik(), Stream.of(new SimpleGrantedAuthority("ROLE_DELIVER")).collect(Collectors.toList()));
     51            }
     52        }
     53        for (Kupuvac a: kupuvacRepository.findAll()){
     54            if (a.getIdKorisnik() == korisnik.getIdKorisnik()){
     55                return new User(korisnik.getImePrezime(),korisnik.getPasswordKorisnik(), Stream.of(new SimpleGrantedAuthority("ROLE_USER")).collect(Collectors.toList()) );
     56            }
     57        }
     58        return null;
     59    }
     60
     61    @Override
     62    public Korisnik findbyImePrezime(String ime) {
     63        return korisnikRepository.findByImePrezime(ime);
     64    }
     65
     66    @Override
     67    public Korisnik findById(Integer id) {
     68        return korisnikRepository.findById(id).orElse(null);
     69    }
     70
     71    @Override
     72    public Korisnik register(String username, String password, String repeatPassword, String mail, String number) {
     73        if (username==null || username.isEmpty()  || password==null || password.isEmpty())
     74            throw new RuntimeException();
     75        if (!password.equals(repeatPassword))
     76            throw new RuntimeException();
     77
     78        Korisnik korisnik = new Korisnik(username,password, Timestamp.valueOf(LocalDateTime.now()));
     79        korisnikRepository.save(korisnik);
     80        Kupuvac k = new Kupuvac(korisnik.getIdKorisnik(), mail);
     81        kupuvacRepository.save(k);
     82        Telefonskibroj t = new Telefonskibroj(new TelefonskibrojPK(korisnik.getIdKorisnik(),number));
     83        telefnoskiBrojRepository.save(t);
     84        return korisnik;
     85
     86    }
     87
     88    @Override
     89    public List<Object> statistics2() {
     90        return korisnikRepository.statistics2();
     91    }
    292}
Note: See TracChangeset for help on using the changeset viewer.