Ignore:
Timestamp:
02/18/24 22:01:54 (4 months ago)
Author:
ppaunovski <paunovskipavel@…>
Branches:
master
Children:
4251327
Parents:
bde8b13
Message:

All 3 main use cases implemented.

  1. Starting a commute
  2. Writing a ticket
  3. Starting an instance of a Bus Line
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/mk/ukim/finki/busngo/service/impl/AuthServiceImpl.java

    rbde8b13 re272096  
    11package mk.ukim.finki.busngo.service.impl;
    22
     3import mk.ukim.finki.busngo.model.entities.Kondukter;
    34import mk.ukim.finki.busngo.model.entities.Korisnik;
    45import mk.ukim.finki.busngo.model.entities.Patnik;
     6import mk.ukim.finki.busngo.model.entities.Vozac;
     7import mk.ukim.finki.busngo.model.enums.VrabotenType;
    58import mk.ukim.finki.busngo.model.exceptions.InvalidCredentialsException;
    69import mk.ukim.finki.busngo.model.exceptions.UserAlreadyExistsException;
     10import mk.ukim.finki.busngo.repository.KondukterRepository;
    711import mk.ukim.finki.busngo.repository.KorisnikRepository;
    812import mk.ukim.finki.busngo.repository.PatnikRepository;
    9 import mk.ukim.finki.busngo.service.AuthService;
     13import mk.ukim.finki.busngo.repository.VozacRepository;
     14import mk.ukim.finki.busngo.service.*;
    1015import org.springframework.security.crypto.password.PasswordEncoder;
    1116import org.springframework.stereotype.Service;
     17
     18import java.sql.Date;
     19import java.time.LocalDate;
    1220
    1321@Service
     
    1523    private final KorisnikRepository korisnikRepository;
    1624    private final PatnikRepository patnikRepository;
     25    private final VozacRepository vozacRepository;
     26    private final KondukterRepository kondukterRepository;
    1727    private final PasswordEncoder passwordEncoder;
     28    private final PatnikService patnikService;
     29    private final KondukterService kondukterService;
     30    private final VozacService vozacService;
    1831
    19     public AuthServiceImpl(KorisnikRepository korisnikRepository, PatnikRepository patnikRepository, PasswordEncoder passwordEncoder) {
     32    public AuthServiceImpl(KorisnikRepository korisnikRepository, PatnikRepository patnikRepository, VozacRepository vozacRepository, KondukterRepository kondukterRepository, PasswordEncoder passwordEncoder, PatnikService patnikService, KondukterService kondukterService, VozacService vozacService) {
    2033        this.korisnikRepository = korisnikRepository;
    2134        this.patnikRepository = patnikRepository;
     35        this.vozacRepository = vozacRepository;
     36        this.kondukterRepository = kondukterRepository;
    2237        this.passwordEncoder = passwordEncoder;
     38        this.patnikService = patnikService;
     39        this.kondukterService = kondukterService;
     40        this.vozacService = vozacService;
    2341    }
    2442
     
    5270        korisnik.setKIsAdmin(false);
    5371
     72        return patnikRepository.save(korisnik);
     73    }
    5474
    55         return patnikRepository.save(korisnik);
     75    @Override
     76    public Korisnik registerVraboten(String ime, String email, String password, String confirmPassword, String address, String telefon, VrabotenType type, Double salary) {
     77        if (email == null || password == null || email.isEmpty() || password.isEmpty()) {
     78            throw new InvalidCredentialsException();
     79        }
     80
     81        if (!password.equals(confirmPassword)) {
     82            throw new InvalidCredentialsException();
     83        }
     84
     85        if(this.korisnikRepository.findByKEmail(email).isPresent()) {
     86            throw new UserAlreadyExistsException(email);
     87        }
     88
     89
     90        switch (type){
     91            case ADMIN:
     92                Korisnik korisnik = new Korisnik();
     93                korisnik.setKIme(ime);
     94                korisnik.setKAdresa(address);
     95                korisnik.setKLozinka(passwordEncoder.encode(password));
     96                korisnik.setKEmail(email);
     97                korisnik.setKTelefon(telefon);
     98                korisnik.setKIsAdmin(true);
     99                return korisnikRepository.save(korisnik);
     100            case VOZAC:
     101                Vozac vozac = new Vozac();
     102                vozac.setKIme(ime);
     103                vozac.setKAdresa(address);
     104                vozac.setKLozinka(passwordEncoder.encode(password));
     105                vozac.setKEmail(email);
     106                vozac.setKTelefon(telefon);
     107                vozac.setKIsAdmin(false);
     108                vozac.setVPlata(salary);
     109                vozac.setVDatumNaVrabotuvanje(Date.valueOf(LocalDate.now()));
     110                this.korisnikRepository.save(vozac);
     111
     112                return vozacRepository.save(vozac);
     113            case KONDUKTER:
     114                Kondukter kondukter = new Kondukter();
     115                kondukter.setKIme(ime);
     116                kondukter.setKAdresa(address);
     117                kondukter.setKLozinka(passwordEncoder.encode(password));
     118                kondukter.setKEmail(email);
     119                kondukter.setKTelefon(telefon);
     120                kondukter.setKIsAdmin(false);
     121                kondukter.setVPlata(salary);
     122                kondukter.setVDatumNaVrabotuvanje(Date.valueOf(LocalDate.now()));
     123                this.korisnikRepository.save(kondukter);
     124
     125                return kondukterRepository.save(kondukter);
     126        }
     127        return null;
    56128    }
    57129
Note: See TracChangeset for help on using the changeset viewer.