All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yoti.api.client.docs.session.retrieve.GetSessionResult Maven / Gradle / Ivy

The newest version!
package com.yoti.api.client.docs.session.retrieve;

import java.util.List;
import java.util.stream.Collectors;

import com.yoti.api.client.docs.session.retrieve.identityprofile.advanced.AdvancedIdentityProfileResponse;

import com.fasterxml.jackson.annotation.JsonProperty;

public class GetSessionResult {

    @JsonProperty(Property.CLIENT_SESSION_TOKEN_TTL)
    private long clientSessionTokenTtl;

    @JsonProperty(Property.SESSION_ID)
    private String sessionId;

    @JsonProperty(Property.USER_TRACKING_ID)
    private String userTrackingId;

    @JsonProperty(Property.STATE)
    private String state;

    @JsonProperty(Property.CLIENT_SESSION_TOKEN)
    private String clientSessionToken;

    @JsonProperty(Property.BIOMETRIC_CONSENT)
    private String biometricConsent;

    @JsonProperty(Property.CHECKS)
    private List checks;

    @JsonProperty(Property.RESOURCES)
    private ResourceContainer resources;

    @JsonProperty(Property.IDENTITY_PROFILE)
    private IdentityProfileResponse identityProfile;

    @JsonProperty(Property.ADVANCED_IDENTITY_PROFILE)
    private AdvancedIdentityProfileResponse advancedIdentityProfile;

    @JsonProperty(Property.IDENTITY_PROFILE_PREVIEW)
    private IdentityProfilePreviewResponse identityProfilePreview;

    @JsonProperty(Property.ADVANCED_IDENTITY_PROFILE_PREVIEW)
    private IdentityProfilePreviewResponse advancedIdentityProfilePreview;

    @JsonProperty(Property.IMPORT_TOKEN)
    private ImportTokenResponse importToken;

    public long getClientSessionTokenTtl() {
        return clientSessionTokenTtl;
    }

    public String getSessionId() {
        return sessionId;
    }

    public String getUserTrackingId() {
        return userTrackingId;
    }

    public String getState() {
        return state;
    }

    public String getClientSessionToken() {
        return clientSessionToken;
    }

    public String getBiometricConsentTimestamp() {
        return biometricConsent;
    }

    public List getChecks() {
        return checks;
    }

    public ResourceContainer getResources() {
        return resources;
    }

    public IdentityProfileResponse getIdentityProfile() {
        return identityProfile;
    }

    public AdvancedIdentityProfileResponse getAdvancedIdentityProfile() {
        return advancedIdentityProfile;
    }

    public IdentityProfilePreviewResponse getIdentityProfilePreview() {
        return identityProfilePreview;
    }

    public IdentityProfilePreviewResponse getAdvancedIdentityProfilePreview() {
        return advancedIdentityProfilePreview;
    }

    public ImportTokenResponse getImportToken() {
        return importToken;
    }

    public ResourceContainer getResourcesForCheck(String checkId) {
        CheckResponse checkResponse = this.checks.stream()
                .filter(check -> check.getId().equals(checkId))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException("Check not found"));
        return resources.filterForCheck(checkResponse);
    }

    public List getAuthenticityChecks() {
        return filterChecksByType(AuthenticityCheckResponse.class);
    }

    public List getFaceMatchChecks() {
        return filterChecksByType(FaceMatchCheckResponse.class);
    }

    public List getFaceComparisonChecks() {
        return filterChecksByType(FaceComparisonCheckResponse.class);
    }

    public List getIdDocumentTextDataChecks() {
        return filterChecksByType(TextDataCheckResponse.class);
    }

    public List getSupplementaryDocumentTextDataChecks() {
        return filterChecksByType(SupplementaryDocumentTextDataCheckResponse.class);
    }

    public List getLivenessChecks() {
        return filterChecksByType(LivenessCheckResponse.class);
    }

    public List getIdDocumentComparisonChecks() {
        return filterChecksByType(IdDocumentComparisonCheckResponse.class);
    }

    public List getThirdPartyIdentityChecks() {
        return filterChecksByType(ThirdPartyIdentityCheckResponse.class);
    }

    public List getSynecticsIdentityFraudChecks() {
        return filterChecksByType(SynecticsIdentityFraudCheckResponse.class);
    }

    public List getWatchlistScreeningChecks() {
        return filterChecksByType(WatchlistScreeningCheckResponse.class);
    }

    public List getWatchlistAdvancedCaChecks() {
        return filterChecksByType(WatchlistAdvancedCaCheckResponse.class);
    }

    public List getIbvVisualReviewChecks() {
        return filterChecksByType(IbvVisualReviewCheckResponse.class);
    }

    public List getDocumentSchemeValidityChecks() {
        return filterChecksByType(DocumentSchemeValidityCheckResponse.class);
    }

    public List getProfileDocumentMatchChecks() {
        return filterChecksByType(ProfileDocumentMatchCheckResponse.class);
    }

    public List getThirdPartyIdentityFraudOneChecks() {
        return filterChecksByType(ThirdPartyIdentityFraudOneCheckResponse.class);
    }

    private  List filterChecksByType(Class clazz) {
        return checks.stream()
                .filter(clazz::isInstance)
                .map(clazz::cast)
                .collect(Collectors.toList());
    }

    private static final class Property {

        private static final String CLIENT_SESSION_TOKEN_TTL = "client_session_token_ttl";
        private static final String SESSION_ID = "session_id";
        private static final String USER_TRACKING_ID = "user_tracking_id";
        private static final String STATE = "state";
        private static final String CLIENT_SESSION_TOKEN = "client_session_token";
        private static final String BIOMETRIC_CONSENT = "biometric_consent";
        private static final String CHECKS = "checks";
        private static final String RESOURCES = "resources";
        private static final String IDENTITY_PROFILE = "identity_profile";
        private static final String ADVANCED_IDENTITY_PROFILE = "advanced_identity_profile";
        private static final String IDENTITY_PROFILE_PREVIEW = "identity_profile_preview";
        private static final String ADVANCED_IDENTITY_PROFILE_PREVIEW = "advanced_identity_profile_preview";
        private static final String IMPORT_TOKEN = "import_token";

        private Property() { }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy