Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pregled transakcija #238

Merged
merged 3 commits into from Jun 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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