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; } }