Skip to content

Commit

Permalink
Merge pull request #238 from lmiladinovic99/milestone-4
Browse files Browse the repository at this point in the history
Pregled transakcija
  • Loading branch information
xmudrii committed Jun 6, 2022
2 parents d9531ca + 781353c commit fc0dcbb
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 18 deletions.
Expand Up @@ -43,18 +43,16 @@ public ResponseEntity<?> dodajTransakciju(@RequestHeader("Authorization") String

@GetMapping(value = "/transakcije", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getTransakcije(@RequestHeader("Authorization") String token, @RequestBody(required = false) DateFilter filter) {
String username = userService.getUserByToken(token);
if(filter == null || filter.from == null || filter.to == null)
return ResponseEntity.ok(transakcijaService.getAll(username)); //Pregled svojih transakcija
return ResponseEntity.ok(transakcijaService.getAll(username, filter.from, filter.to));
return ResponseEntity.ok(transakcijaService.getAll(token)); //Pregled svojih transakcija
return ResponseEntity.ok(transakcijaService.getAll(token, filter.from, filter.to));
}

@GetMapping(value = "/transakcije/{valuta}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> getTransakcijeValuta(@RequestHeader("Authorization") String token, @PathVariable String valuta, @RequestBody(required = false) DateFilter filter) {
String username = userService.getUserByToken(token);
if(filter == null || filter.from == null || filter.to == null)
return ResponseEntity.ok(transakcijaService.getAll(username, valuta));
return ResponseEntity.ok(transakcijaService.getAll(username, valuta, filter.from, filter.to));
return ResponseEntity.ok(transakcijaService.getAll(token, valuta));
return ResponseEntity.ok(transakcijaService.getAll(token, valuta, filter.from, filter.to));
}

@GetMapping(value = "/stanje/{racun}/{valuta}", produces = MediaType.APPLICATION_JSON_VALUE)
Expand Down
Expand Up @@ -9,17 +9,26 @@
import java.util.List;

public interface TransakcijaRepository extends JpaRepository<Transakcija,Long> {

@Query("SELECT T FROM Transakcija T ORDER BY T.datumVreme DESC")
List<Transakcija> getAll();
@Query("SELECT T FROM Transakcija T WHERE T.username=:username ORDER BY T.datumVreme DESC")
List<Transakcija> findByUsername(String username);

@Query("SELECT T FROM Transakcija T WHERE T.datumVreme >= :odFilter AND T.datumVreme <= :doFilter ORDER BY T.datumVreme DESC")
List<Transakcija> getAll(Date odFilter, Date doFilter);

@Query("SELECT T FROM Transakcija T WHERE T.username=:username AND T.datumVreme >=:odFilter AND T.datumVreme <=:doFilter ORDER BY T.datumVreme DESC")
List<Transakcija> findByUsername(String username, Date odFilter, Date doFilter);

@Query("SELECT T FROM Transakcija T WHERE T.valuta.kodValute = :valutaKod ORDER BY T.datumVreme DESC")
List<Transakcija> getAll(String valutaKod);

@Query("SELECT T FROM Transakcija T WHERE T.username=:username AND T.valuta.kodValute=:valutaKod ORDER BY T.datumVreme DESC")
List<Transakcija> findByUsername(String username, String valutaKod);

@Query("SELECT T FROM Transakcija T WHERE T.valuta.kodValute = :valutaKod AND T.datumVreme >=:odFilter AND T.datumVreme <=:doFilter ORDER BY T.datumVreme DESC")
List<Transakcija> getAll(String valutaKod, Date odFilter, Date doFilter);

@Query("SELECT T FROM Transakcija T WHERE T.username=:username AND T.valuta.kodValute=:valutaKod AND T.datumVreme >=:odFilter AND T.datumVreme <=:doFilter ORDER BY T.datumVreme DESC")
List<Transakcija> findByUsername(String username, String valutaKod, Date odFilter, Date doFilter);

Expand Down
Expand Up @@ -54,20 +54,40 @@ public TransakcijaService(RacunRepository racunRepository,
this.entityManager = entityManager;
}

public List<Transakcija> getAll(String username){
return transakcijaRepository.findByUsername(username);
public List<Transakcija> getAll(String token) {
String role = userService.getRoleByToken(token);
String username = userService.getUserByToken(token);
if (role.equals("ROLE_AGENT"))
return transakcijaRepository.findByUsername(username);
else
return transakcijaRepository.getAll();
}

public List<Transakcija> getAll(String username, Date odFilter, Date doFilter){
return transakcijaRepository.findByUsername(username, odFilter, doFilter);
public List<Transakcija> getAll(String token, Date odFilter, Date doFilter){
String role = userService.getRoleByToken(token);
String username = userService.getUserByToken(token);
if (role.equals("ROLE_AGENT"))
return transakcijaRepository.findByUsername(username, odFilter, doFilter);
else
return transakcijaRepository.getAll(odFilter, doFilter);
}

public List<Transakcija> getAll(String username, String valuta){
return transakcijaRepository.findByUsername(username, valuta);
public List<Transakcija> getAll(String token, String valuta){
String role = userService.getRoleByToken(token);
String username = userService.getUserByToken(token);
if (role.equals("ROLE_AGENT"))
return transakcijaRepository.findByUsername(username, valuta);
else
return transakcijaRepository.getAll(valuta);
}

public List<Transakcija> getAll(String username, String valuta, Date odFilter, Date doFilter){
return transakcijaRepository.findByUsername(username, valuta, odFilter, doFilter);
public List<Transakcija> getAll(String token, String valuta, Date odFilter, Date doFilter){
String role = userService.getRoleByToken(token);
String username = userService.getUserByToken(token);
if (role.equals("ROLE_AGENT"))
return transakcijaRepository.findByUsername(username, valuta, odFilter, doFilter);
else
return transakcijaRepository.getAll(valuta, odFilter, doFilter);
}

@Transactional
Expand Down
Expand Up @@ -18,18 +18,29 @@ public String getUserByToken(String token) {
return decodedToken.getSubject().split(",")[0];
} catch (JWTVerificationException e) {
// TODO find a better exception for this case
throw new UsernameNotFoundException("Token is invalid");
throw new UsernameNotFoundException("bad credentials");
}
}

public String[] getRoleByToken(String token) {
public String getRoleByToken(String token) {
try {
DecodedJWT decodedToken = decodeToken(token);

return decodedToken.getSubject().split(",")[1];
} catch (JWTVerificationException e) {
// TODO find a better exception for this case
throw new UsernameNotFoundException("bad credentials");
}
}

public String[] getPermissionsByToken(String token) {
try {
DecodedJWT decodedToken = decodeToken(token);

return decodedToken.getClaim("permissions").asArray(String.class);
} catch (JWTVerificationException e) {
// TODO find a better exception for this case
throw new UsernameNotFoundException("Token is invalid");
throw new UsernameNotFoundException("bad credentials");
}
}

Expand Down

0 comments on commit fc0dcbb

Please sign in to comment.