package com.ushahidi.platform.mobile.app.data.api.oauth; import com.ushahidi.platform.mobile.app.data.api.service.RestfulService; import android.support.annotation.NonNull; import javax.inject.Inject; import de.rheinfabrik.heimdall.OAuth2AccessToken; import de.rheinfabrik.heimdall.grants.OAuth2ResourceOwnerPasswordCredentialsGrant; import rx.Observable; /** * Authorization code for Ushahidi */ public class UshPasswordCredentialsGrant extends OAuth2ResourceOwnerPasswordCredentialsGrant<OAuth2AccessToken> { private final RestfulService mRestfulService; private String clientSecret; private String clientId; /** * Default constructor * * @param restfulService The API service. Cannot be a null value */ @Inject public UshPasswordCredentialsGrant(@NonNull RestfulService restfulService) { mRestfulService = restfulService; } @Override public Observable<OAuth2AccessToken> grantNewAccessToken() { AccessTokenRequestBody accessTokenRequestBody = new AccessTokenRequestBody(username, password, GRANT_TYPE, clientId, clientSecret, scope); return mRestfulService.grantNewAccessToken(accessTokenRequestBody); } public String getClientSecret() { return clientSecret; } public void setClientSecret(String clientSecret) { this.clientSecret = clientSecret; } public String getClientId() { return clientId; } public void setClientId(String clientId) { this.clientId = clientId; } }