• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

TrueLayer / truelayer-java / #78

12 Oct 2023 09:04AM UTC coverage: 91.158% (-0.6%) from 91.724%
#78

push

github-actions

web-flow
[DNTT-165] Adds support for related_products object, X-Device-User-Agent (#228)

3 of 3 new or added lines in 1 file covered. (100.0%)

433 of 475 relevant lines covered (91.16%)

0.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.21
/src/main/java/com/truelayer/java/http/auth/AccessTokenManager.java
1
package com.truelayer.java.http.auth;
2

3
import com.truelayer.java.TrueLayerException;
4
import com.truelayer.java.auth.IAuthenticationHandler;
5
import com.truelayer.java.auth.entities.AccessToken;
6
import com.truelayer.java.entities.RequestScopes;
7
import com.truelayer.java.http.auth.cache.ICredentialsCache;
8
import com.truelayer.java.http.entities.ApiResponse;
9
import java.util.Optional;
10
import lombok.Builder;
11
import lombok.Synchronized;
12

13
@Builder
14
public class AccessTokenManager implements IAccessTokenManager {
15

16
    private final IAuthenticationHandler authenticationHandler;
17

18
    private final ICredentialsCache credentialsCache;
19

20
    private Optional<ICredentialsCache> getCredentialsCache() {
21
        return Optional.ofNullable(credentialsCache);
1✔
22
    }
23

24
    @Override
25
    public AccessToken getToken(RequestScopes scopes) {
26
        if (getCredentialsCache().isPresent()) {
1✔
27
            return getCredentialsCache().get().getToken(scopes).orElseGet(() -> {
1✔
28
                AccessToken token = tryGetToken(scopes);
1✔
29
                credentialsCache.storeToken(scopes, token);
1✔
30
                return token;
1✔
31
            });
32
        }
33

34
        return tryGetToken(scopes);
×
35
    }
36

37
    @Override
38
    @Synchronized
1✔
39
    public void invalidateToken(RequestScopes scopes) {
40
        getCredentialsCache().ifPresent(iCredentialsCache -> iCredentialsCache.clearToken(scopes));
1✔
41
    }
1✔
42

43
    private AccessToken tryGetToken(RequestScopes scopes) {
44
        ApiResponse<AccessToken> accessTokenResponse;
45
        try {
46
            accessTokenResponse =
1✔
47
                    authenticationHandler.getOauthToken(scopes.getScopes()).get();
1✔
48
        } catch (Exception e) {
×
49
            throw new TrueLayerException("unable to get an access token response", e);
×
50
        }
1✔
51

52
        if (accessTokenResponse.isError()) {
1✔
53
            throw new TrueLayerException(
1✔
54
                    String.format("Unable to authenticate request: %s", accessTokenResponse.getError()));
1✔
55
        }
56

57
        return accessTokenResponse.getData();
1✔
58
    }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc