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

Last change on this file was bc20307, checked in by Tasevski2 <39170279+Tasevski2@…>, 2 years ago

Push before video

  • Property mode set to 100644
File size: 2.4 KB
RevLine 
[ce6ad22]1package parkup.services;
2
3import java.util.List;
4import java.util.Optional;
5import org.springframework.beans.factory.annotation.Autowired;
[bfc49f4]6import org.springframework.security.core.userdetails.UserDetails;
7import org.springframework.security.core.userdetails.UserDetailsService;
8import org.springframework.security.core.userdetails.UsernameNotFoundException;
[3753356]9import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
[ce6ad22]10import org.springframework.stereotype.Service;
11import parkup.entities.Guest;
12import parkup.repositories.GuestRepository;
13
14@Service
[bfc49f4]15public class GuestService implements UserDetailsService {
[ce6ad22]16 private final GuestRepository guestRepository;
[3753356]17 private final BCryptPasswordEncoder passwordEncoder;
[ce6ad22]18
19 @Autowired
[3753356]20 public GuestService(GuestRepository guestRepository, BCryptPasswordEncoder passwordEncoder) {
[ce6ad22]21 this.guestRepository = guestRepository;
[3753356]22 this.passwordEncoder = passwordEncoder;
[ce6ad22]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
[e8b1076]34 public Guest addGuest(Guest guest) {
[ce6ad22]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 {
[e8b1076]39 double random = Math.random()*10000;
[bc20307]40 guest.setPassword(passwordEncoder.encode(Integer.toString((int)random)));
41 this.guestRepository.save(guest);
[e8b1076]42 guest.setPassword(Integer.toString((int)random));
[bc20307]43 return guest;
[ce6ad22]44 }
45 }
46
47 public void deleteGuest(int guestId) {
48 Optional<Guest> guest = Optional.ofNullable(this.guestRepository.findByGuestId(guestId));
49 if (guest.isPresent()) {
50 this.guestRepository.deleteByGuestId(guestId);
51 } else {
52 throw new IllegalStateException("Guest doesn't exist, therefore can't be deleted");
53 }
54 }
[bfc49f4]55
56 @Override
57 public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
58 return guestRepository.findGuestByEmail(s)
59 .orElseThrow(() ->
60 new UsernameNotFoundException("Email not found"));
61 }
[ce6ad22]62}
Note: See TracBrowser for help on using the repository browser.