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

com.jakewharton.trakt.services.AccountService Maven / Gradle / Ivy

package com.jakewharton.trakt.services;

import com.google.gson.reflect.TypeToken;
import com.jakewharton.trakt.TraktApiBuilder;
import com.jakewharton.trakt.TraktApiService;
import com.jakewharton.trakt.entities.Response;

public class AccountService extends TraktApiService {
    /**
     * Create a new trakt account. Username and e-mail must be unique and not
     * already exist in trakt.
     *
     * @param username Username to register.
     * @param password SHA1 hash of password.
     * @param email E-mail to register, a welcome email will automatically be sent here.
     * @return Builder instance.
     */
    public CreateBuilder create(String username, String password, String email) {
        return (new CreateBuilder(this)).username(username).password(password).email(email);
    }

    /**
     * Test trakt credentials. This is useful for your configuration screen and
     * is a simple way to test someone's trakt account.
     *
     * @return Builder instance.
     */
    public TestBuilder test() {
        return new TestBuilder(this);
    }


    public static final class CreateBuilder extends TraktApiBuilder {
        private static final String POST_USERNAME = "username";
        private static final String POST_PASSWORD = "password";
        private static final String POST_EMAIL = "email";

        private static final String URI = "/account/create/" + FIELD_API_KEY;

        private CreateBuilder(AccountService service) {
            super(service, new TypeToken() {}, URI, HttpMethod.Post);
        }

        /**
         * Username to register.
         *
         * @param username Value.
         * @return Builder instance.
         */
        public CreateBuilder username(String username) {
            this.postParameter(POST_USERNAME, username);
            return this;
        }

        /**
         * SHA1 hash of password.
         *
         * @param password Value.
         * @return Builder instance.
         */
        public CreateBuilder password(String password) {
            this.postParameter(POST_PASSWORD, password);
            return this;
        }

        /**
         * E-mail to register, a welcome email will automatically be sent here.
         *
         * @param email Value.
         * @return Builder instance.
         */
        public CreateBuilder email(String email) {
            this.postParameter(POST_EMAIL, email);
            return this;
        }
    }
    public static final class TestBuilder extends TraktApiBuilder {
        private static final String URI = "/account/test/" + FIELD_API_KEY;

        private TestBuilder(AccountService service) {
            super(service, new TypeToken() {}, URI, HttpMethod.Post);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy