Ignore:
Timestamp:
04/26/25 19:03:52 (5 days ago)
Author:
Nikola Jordanoski <nikolaj_koko@…>
Branches:
master
Children:
1624c61
Parents:
ac41d70
Message:

Refactoring and partial exception handling

Location:
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java

    rac41d70 r48e50b4  
    66import jakarta.servlet.http.HttpServletResponse;
    77import lombok.NonNull;
    8 import mk.ukim.finki.it.reservengo.service.impl.JWTServiceImpl;
     8import mk.ukim.finki.it.reservengo.service.intf.JWTService;
    99import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
    1010import org.springframework.security.core.context.SecurityContextHolder;
     
    2020public class JWTAuthenticationFilter extends OncePerRequestFilter {
    2121
    22     private final JWTServiceImpl jwtService;
     22    private final JWTService jwtService;
    2323    private final UserDetailsService userDetailsService;
    2424
    25     public JWTAuthenticationFilter(JWTServiceImpl jwtService, UserDetailsService userDetailsService) {
     25    public JWTAuthenticationFilter(JWTService jwtService, UserDetailsService userDetailsService) {
    2626        this.jwtService = jwtService;
    2727        this.userDetailsService = userDetailsService;
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Local.java

    rac41d70 r48e50b4  
    2626        this.workers = workers;
    2727    }
     28
     29    public Local(String name) {
     30        this.name = name;
     31    }
     32
    2833
    2934    public Local() {
     
    6873    @OneToMany(mappedBy = "local")
    6974    private List<LocalWorker> workers;
    70 
    71     public Local(String name) {
    72         this.name = name;
    73     }
    7475
    7576    public double calculateLocalAverageRating() {
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AdminServiceImpl.java

    rac41d70 r48e50b4  
    11package mk.ukim.finki.it.reservengo.service.impl;
    22
    3 import mk.ukim.finki.it.reservengo.model.Local;
    4 import mk.ukim.finki.it.reservengo.model.exceptions.LocalNotFoundException;
    5 import mk.ukim.finki.it.reservengo.repository.LocalRepository;
    63import mk.ukim.finki.it.reservengo.service.intf.AdminService;
     4import mk.ukim.finki.it.reservengo.service.intf.LocalService;
    75import org.springframework.stereotype.Service;
    86
     
    108public class AdminServiceImpl implements AdminService {
    119
    12     private final LocalRepository localRepository;
     10    private final LocalService localService;
    1311
    14     public AdminServiceImpl(LocalRepository localRepository) {
    15         this.localRepository = localRepository;
     12    public AdminServiceImpl(LocalService localService) {
     13        this.localService = localService;
    1614    }
    1715
    1816    @Override
    1917    public void addLocal(String name) {
    20         Local local = new Local(name);
    21         localRepository.save(local);
     18        localService.save(name);
    2219    }
    2320
    2421    @Override
    2522    public void deleteLocal(Long id) {
    26         Local local = localRepository.findById(id).orElseThrow(() -> new LocalNotFoundException(id));
    27         localRepository.delete(local);
     23        localService.delete(id);
    2824    }
    2925}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/CustomerServiceImpl.java

    rac41d70 r48e50b4  
    11package mk.ukim.finki.it.reservengo.service.impl;
    22
    3 import jakarta.transaction.Transactional;
    43import mk.ukim.finki.it.reservengo.model.Customer;
    54import mk.ukim.finki.it.reservengo.model.Local;
    65import mk.ukim.finki.it.reservengo.model.exceptions.CustomerNotFoundException;
    7 import mk.ukim.finki.it.reservengo.model.exceptions.LocalNotFoundException;
    86import mk.ukim.finki.it.reservengo.repository.CustomerRepository;
    9 import mk.ukim.finki.it.reservengo.repository.LocalRepository;
    107import mk.ukim.finki.it.reservengo.service.intf.CustomerService;
     8import mk.ukim.finki.it.reservengo.service.intf.LocalService;
    119import org.springframework.stereotype.Service;
    1210
     
    1614public class CustomerServiceImpl implements CustomerService {
    1715    private final CustomerRepository customerRepository;
    18     private final LocalRepository localRepository;
     16    private final LocalService localService;
    1917
    20     public CustomerServiceImpl(CustomerRepository customerRepository, LocalRepository localRepository) {
     18    public CustomerServiceImpl(CustomerRepository customerRepository, LocalService localService) {
    2119        this.customerRepository = customerRepository;
    22         this.localRepository = localRepository;
     20        this.localService = localService;
    2321    }
    2422
     
    3735    public void addFavouriteLocal(Long userId, Long localId) {
    3836        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
    39         Local local = localRepository.findById(localId).orElseThrow(() -> new LocalNotFoundException(localId));
     37        Local local = localService.getLocalById(localId);
    4038
    4139        if (!customer.getFavouriteLocals().contains(local)) {
     
    4947    public void removeFavouriteLocal(Long userId, Long localId) {
    5048        Customer customer = customerRepository.findById(userId).orElseThrow(() -> new CustomerNotFoundException(userId));
    51         Local local = localRepository.findById(localId).orElseThrow(() -> new LocalNotFoundException(localId));
     49        Local local = localService.getLocalById(localId);
    5250
    5351        customer.getFavouriteLocals().remove(local);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/JWTServiceImpl.java

    rac41d70 r48e50b4  
    2727    @Override
    2828    public Claims extractAllClaims(String token) {
    29         return Jwts.parserBuilder()
     29        return Jwts
     30                .parserBuilder()
    3031                .setSigningKey(getSignInKey())
    3132                .build()
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java

    rac41d70 r48e50b4  
    2525    @Override
    2626    public Local getLocalById(Long id) {
    27         return localRepository.findById(id)
    28                 .orElseThrow(() -> new LocalIdNotFoundException(id));
     27        return localRepository.findById(id).orElseThrow(() -> new LocalIdNotFoundException(id));
     28    }
     29
     30    @Override
     31    public void save(String name) {
     32        Local local = new Local(name);
     33        localRepository.save(local);
     34    }
     35
     36    @Override
     37    public void delete(Long id) {
     38        Local local = localRepository.findById(id).orElseThrow(() -> new LocalIdNotFoundException(id));
     39        localRepository.delete(local);
    2940    }
    3041
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/AuthService.java

    rac41d70 r48e50b4  
    55
    66public interface AuthService {
    7     JWTAuthenticationResponse registerCustomer(String firstName, String lastName, String email, String password, String phoneNumber) throws EmailNotFoundException;
     7    JWTAuthenticationResponse registerCustomer(String firstName, String lastName, String email, String password, String phoneNumber);
    88
    99    JWTAuthenticationResponse registerLocalWorker(String firstName, String lastName, String email, String password, String phoneNumber);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java

    rac41d70 r48e50b4  
    99
    1010    Local getLocalById(Long id);
     11
     12    void save(String name);
     13
     14    void delete(Long id);
    1115}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java

    rac41d70 r48e50b4  
    11package mk.ukim.finki.it.reservengo.web;
    22
     3import jakarta.servlet.http.HttpServletRequest;
    34import mk.ukim.finki.it.reservengo.model.JWTAuthenticationResponse;
    45import mk.ukim.finki.it.reservengo.service.intf.AuthService;
     
    67import org.springframework.http.MediaType;
    78import org.springframework.http.ResponseEntity;
     9import org.springframework.security.authentication.BadCredentialsException;
     10import org.springframework.security.core.AuthenticationException;
     11import org.springframework.security.core.userdetails.UsernameNotFoundException;
    812import org.springframework.web.bind.annotation.*;
    913
     
    4549
    4650    @PostMapping("/login")
    47     public ResponseEntity<JWTAuthenticationResponse> login(@RequestParam String email,
    48                                                            @RequestParam String password) {
    49         return new ResponseEntity<>(authenticationService.login(email, password), HttpStatus.OK);
     51    public ResponseEntity<?> login(@RequestParam String email,
     52                                   @RequestParam String password) {
     53        JWTAuthenticationResponse response = authenticationService.login(email, password);
     54        return ResponseEntity.ok(response);
    5055    }
     56
     57    @GetMapping("/logout")
     58    public void logout(HttpServletRequest request) {
     59        request.getSession().invalidate();
     60    }
     61
    5162}
Note: See TracChangeset for help on using the changeset viewer.