source: sources/app/src/main/java/parkup/services/GuestService.java@ c52cdbb

Last change on this file since c52cdbb was bfc49f4, checked in by andrejTavchioski <andrej.tavchioski@…>, 2 years ago

paying session fix

  • Property mode set to 100644
File size: 2.3 KB
Line 
1package parkup.services;
2
3import java.util.List;
4import java.util.Optional;
5import org.springframework.beans.factory.annotation.Autowired;
6import org.springframework.security.core.userdetails.UserDetails;
7import org.springframework.security.core.userdetails.UserDetailsService;
8import org.springframework.security.core.userdetails.UsernameNotFoundException;
9import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
10import org.springframework.stereotype.Service;
11import parkup.entities.Guest;
12import parkup.repositories.GuestRepository;
13
14@Service
15public class GuestService implements UserDetailsService {
16 private final GuestRepository guestRepository;
17 private final BCryptPasswordEncoder passwordEncoder;
18
19 @Autowired
20 public GuestService(GuestRepository guestRepository, BCryptPasswordEncoder passwordEncoder) {
21 this.guestRepository = guestRepository;
22 this.passwordEncoder = passwordEncoder;
23 }
24
25 public List<Guest> getGuests() {
26 return this.guestRepository.findAll();
27 }
28
29 public Guest findById(int guestId) {
30 Optional<Guest> guest = Optional.ofNullable(this.guestRepository.findByGuestId(guestId));
31 return guest.orElse(null);
32 }
33
34 public void addGuest(Guest guest) {
35 Optional<Guest> guestOpt = this.guestRepository.findGuestByEmail(guest.getEmail());
36 if (guestOpt.isPresent()) {
37 throw new IllegalStateException("Email already taken, try adding a guest with a different valid email address");
38 } else {
39 double random = Math.random()*100;
40 guest.setPassword(passwordEncoder.encode(Double.toString(random)));
41 this.guestRepository.save(guest);
42 }
43 }
44
45 public void deleteGuest(int guestId) {
46 Optional<Guest> guest = Optional.ofNullable(this.guestRepository.findByGuestId(guestId));
47 if (guest.isPresent()) {
48 this.guestRepository.deleteByGuestId(guestId);
49 } else {
50 throw new IllegalStateException("Guest doesn't exist, therefore can't be deleted");
51 }
52 }
53
54 @Override
55 public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
56 return guestRepository.findGuestByEmail(s)
57 .orElseThrow(() ->
58 new UsernameNotFoundException("Email not found"));
59 }
60}
Note: See TracBrowser for help on using the repository browser.