Skip to content

Operazioni sull'utente

Recupero dei termini di servizio

Questa operazione consente di recuperare le LegalAcceptances, ovvero le condizioni che l'utente potrà/dovrà accettare in fase di signup (scelte che, durante l'operazione signup, dovranno essere descritte tramite la classe Acceptances). L'oggetto LegalAcceptances recuperato conterrà gli url per mostrare le pagine dei Termini di Servizio e Privacy Policies di Conio e il dettaglio delle acceptances (AcceptanceDetail) che l'utente dovrà o meno accettare.

Metodo

userService.getLegalAcceptances

Parametri

Un oggetto di tipo LegalAcceptancesParams contenente la lingua di riferimento per ottenere le acceptances e gli url delle pagine web da mostrare all'utente.

Risposta

Un oggetto di tipo LegalAcceptances contenente la lista degli AcceptanceDetail, url dei Termini di Servizio, url relativo alle Privacy Policies e url relativo alle condizioni pre contrattuali.

Codice

Android

LegalAcceptancesParams params = new LegalAcceptancesParams(Language.ITALIAN);

conio.userService.getLegalAcceptances(params)
    .asCallback(result -> result.analysis(
        acceptances -> { /* Handle LegalAcceptances */ },
        error -> { /* Handle error */ }
    ));

iOS

let params = LegalAcceptancesParams(language: .italian)

conio.userService.signup(params: params).asCallback { result in
    switch result {
    case .success(let acceptances):
        // LegalAcceptances
    case .failure(let error):
        // Operation Error
    }
}

Autenticazione

Per poter operare con il portafoglio Conio occorre essere autenticati. Se è la prima volta che l'utente usa il servizio ci si può autenticare con il metodo userService.signup, altrimenti con il metodo userService.login.

Signup

L'operazione di signup permette di creare un nuovo utente Conio.

Metodo

userService.signup

Parametri

Un oggetto di tipo SignupParams, costruito tramite il metodo SignupParams.createCryptoSignup con:

  • acceptances: di tipo Acceptances con l'esito della conferma ai termini di servizio da parte dell'utente, recuperati tramite le LegalAcceptances;

  • credentials: di tipo ConioCredentials con username e password dell'utente;

  • cryptoRequest: di tipo SignupCryptoRequest, che specifica ulteriori parametri comprovati da una firma, come descritto in creazione della SignupCryptoRequest.

Risposta

Un oggetto di tipo Success che indica che l'utente è stato autenticato.

Errori

  • ConioError:

    • APP_IMPROVEMENT_ACCEPTANCE_NOT_ACCEPTED Acceptance obbligatoria;
    • CLIENT_SUPPORT_ACCEPTANCE_NOT_ACCEPTED Acceptance obbligatoria;
    • CRYPTO_PROOF_EXPIRED La crypto proof è scaduta;
    • INVALID_CRYPTO_PROOF La crypto proof non è correttamente firmata;
    • DUPLICATE_EMAIL_ADDRESS Indirizzo email duplicato;
    • INVALID_IBAN IBAN non valido;
    • WALLET_ALREADY_OWNED_BY_ANOTHER_USER Il wallet è già utilizzato da un altro utente;
    • CARDS_SERVICE_COULD_NOT_CREATE_PAYER Errore interno del sottosistema di pagamento.

Codice

Android

// vedi "Creazione SignupCryptoRequest"
SignupCryptoRequest cryptoRequest = new SignupCryptoRequest(...);
ConioCredentials credentials = new ConioCredentials("username", "password");
Acceptances acceptances = new Acceptances(Arrays.asList(
    new Acceptance(AcceptanceType.CLIENT_SUPPORT, true),
    new Acceptance(AcceptanceType.APP_IMPROVEMENT, true)
));

SignupParams params = SignupParams.createCryptoSignup(acceptances, credentials, cryptoRequest);

conio.userService.signup(params)
    .asCallback(result -> result.analysis(
        success -> { /* Handle success */ },
        error -> { /* Handle error */ }
    ));

iOS

// vedi "Creazione SignupCryptoRequest"

let credentials = ConioCredentials(username: "username", password: "password")

 var acceptancesList = [Acceptance]()
        acceptancesList.append(.init(type: .appImprovement, isAccepted: true))
        acceptancesList.append(.init(type: .clientSupport, isAccepted: true))
let acceptances = Acceptances(acceptances: acceptancesList)
let cryptoRequest = SignupCryptoRequest.init(proofID: "", cryptoProof: Data(), proofExpiration: 0, externalUserID: "", userLevel: "", iban: "", email: "", firstName: "", lastName: "")
let signupParams = SignupParams.createCryptoSignup(credentials: credentials, acceptances: acceptances, cryptoRequest: cryptoRequest)

conio.userService.signup(params: params).asCallback { result in
    switch result {
    case .success:
        // Handle Succes
    case .failure(let error):
        // Operation Error
    }
}

Login

L'operazione di login permette di autenticarsi a Conio. È raccomandabile eseguire questa operazione ad ogni avvio dell'applicazione, similmente a come avviene per altri servizi terzi.

Metodo

userService.login

Parametri

Un oggetto di tipo LoginParams, costruito tramite il metodo LoginParams.createCryptoLogin con:

  • credentials: di tipo ConioCredentials con username e password dell'utente

  • cryptoRequest: di tipo LoginCryptoRequest, che specifica ulteriori parametri comprovati da una firma, come descritto in creazione della LoginCryptoRequest.

Risposta

Un oggetto di tipo Success che indica che l'utente è stato autenticato.

Errori

Codice

Android

LoginCryptoRequest cryptoRequest = new LoginCryptoRequest(...);
ConioCredentials credentials = new ConioCredentials("username", "password");

LoginParams params = LoginParams.createCryptoLogin(credentials, cryptoRequest);

conio.userService.login(params)
    .asCallback(result -> result.analysis(
        success -> { /* Handle success */ },
        error -> { /* Handle error */ }
    ));

iOS

let params = LoginParams(username: "lemonade", password: "secretword", loginCryptoRequest: <LoginCryptoRequest>)
conio.userService.login(params: params).asCallback { result in
    switch result {
    case .success:
        // success
    case .failure(let error):
        // Operation Error
    }
}

Logout

Consente di disconnettere l'utenza Conio.

Metodo

userService.logout

Risposta

Un oggetto di tipo Success che indica che l'utente è stato disconnesso.

Codice

Android

conio.userService.logout()
    .asCallback(result -> result.analysis(
        success -> { /* Handle success */ },
        error -> { /* Handle error */ }
    ));

iOS

conio.userService.logout().asCallback { result in
    switch result {
    case .success:
        // success
    case .failure(let error):
        // Operation Error
    }
}

Change Email

Consente di modificare l'email associata all'utenza Conio.

Metodo

userService.changeEmail

Parametri

Un oggetto di tipo CryptoChangeEmailParams.

  • newEmail: di tipo String, è il nuovo valore utilizzato per modificare l'attuale email dell'utente.

Risposta

Android

Un oggetto di tipo Success che indica se l'email dell'utente è stata modificata correttamente.

iOS

Un oggetto di tipo Void che indica se l'email dell'utente è stata modificata correttamente.

Codice

Android

ChangeEmailParams params = new ChangeEmailParams("newEmail@conio.com");

conio.userService.changeEmail(params).asCallback(result -> result.analysis(
        activityList -> { /* Success */ },
        error -> { /* ... */ }
));

iOS

let params = ChangeEmailParams(newEmail: "newEmail@conio.com")
conio.userService.changeEmail(with: params).asCallback { result in
    switch result {
    case .failure(let error):
        /* ... */
    case .success:
        /* Success */
    }
}