001package com.gigya.android.sdk.api;
002
003import android.support.annotation.NonNull;
004
005import com.gigya.android.sdk.GigyaCallback;
006import com.gigya.android.sdk.GigyaDefinitions;
007import com.gigya.android.sdk.GigyaLoginCallback;
008import com.gigya.android.sdk.interruption.tfa.models.TFAProvidersModel;
009import com.gigya.android.sdk.providers.IProviderPermissionsCallback;
010
011import java.util.Map;
012
013public interface IBusinessApiService<A> {
014
015    <V> void send(String api, Map<String, Object> params, int requestMethod, Class<V> clazz, GigyaCallback<V> gigyaCallback);
016
017    void logout(final GigyaCallback<GigyaApiResponse> gigyaCallback);
018
019    void login(Map<String, Object> params, final GigyaLoginCallback<A> loginCallback);
020
021    void login(@GigyaDefinitions.Providers.SocialProvider String socialProvider, Map<String, Object> params, final GigyaLoginCallback<A> gigyaLoginCallback);
022
023    void verifyLogin(String UID, final GigyaCallback<A> gigyaCallback);
024
025    void notifyNativeSocialLogin(Map<String, Object> params, final GigyaLoginCallback<A> loginCallback, final Runnable optionalCompletionHandler);
026
027    void finalizeRegistration(Map<String, Object> params, final GigyaLoginCallback<A> loginCallback);
028
029    void register(final Map<String, Object> params, final GigyaLoginCallback<A> loginCallback);
030
031    void getAccount(final GigyaCallback<A> gigyaCallback);
032
033    void getAccount(final Map<String, Object> params, final GigyaCallback<A> gigyaCallback);
034
035    void getAccount(@NonNull final String[] include, @NonNull final String[] profileExtraFields, GigyaCallback<A> gigyaCallback);
036
037    void setAccount(A updatedAccount, final GigyaCallback<A> gigyaCallback);
038
039    void setAccount(final Map<String, Object> params, final GigyaCallback<A> gigyaCallback);
040
041    void refreshNativeProviderSession(Map<String, Object> params, final IProviderPermissionsCallback providerPermissionsCallback);
042
043    void forgotPassword(Map<String, Object> params, final GigyaCallback<GigyaApiResponse> callback);
044
045    void addConnection(@GigyaDefinitions.Providers.SocialProvider String socialProvider, final GigyaLoginCallback<A> gigyaLoginCallback);
046
047    void removeConnection(@GigyaDefinitions.Providers.SocialProvider String socialProvider, GigyaCallback<GigyaApiResponse> gigyaCallback);
048
049    void getConflictingAccounts(final String regToken, final GigyaCallback<GigyaApiResponse> callback);
050
051    void getTFAProviders(final String regToken, final GigyaCallback<TFAProvidersModel> callback);
052
053    void updateDevice(@NonNull String pushToken, @NonNull final GigyaCallback<GigyaApiResponse> gigyaCallback);
054}