package org.oauth2.client4j.builder;
import org.oauth2.client4j.common.OAuth;
import org.oauth2.client4j.http.OAuthRequest;
import org.oauth2.client4j.model.OAuthConfig;
import org.oauth2.client4j.utils.OAuthKit;
public class OAuthRequestBuilder {
private OAuthRequest request;
public OAuthRequestBuilder()
{
request = new OAuthRequest();
}
public OAuthRequestBuilder url(String url) {
request.setRequestUrl(url);
return this;
}
public OAuthRequestBuilder parameter(OAuthConfig config) {
request.addParameter(OAuth.OAUTH_CLIENT_ID, config.getApiKey());
request.addParameter(OAuth.OAUTH_REDIRECT_URI, config.getCallback());
request.addParameter(OAuth.OAUTH_RESPONSE_TYPE, OAuth.OAUTH_CODE);
if (!OAuthKit.isEmpty(config.getScope())){
request.addParameter(OAuth.OAUTH_SCOPE, config.getScope());
}
return this;
}
public OAuthRequestBuilder body(OAuthConfig config) {
request.addBodyNameValuePair(OAuth.OAUTH_CLIENT_ID, config.getApiKey());
request.addBodyNameValuePair(OAuth.OAUTH_CLIENT_SECRET, config.getApiSecret());
request.addBodyNameValuePair(OAuth.OAUTH_REDIRECT_URI, config.getCallback());
request.addBodyNameValuePair(OAuth.OAUTH_GRANT_TYPE, OAuth.OAUTH_AUTHORIZATION_CODE);
return this;
}
public OAuthRequestBuilder code(String code) {
request.addBodyNameValuePair(OAuth.OAUTH_CODE,code);
return this;
}
public OAuthRequestBuilder requestType(String requestType) {
request.setRequestType(requestType);
return this;
}
public OAuthRequest build() {
return request;
}
}