package com.belladati.sdk.auth.impl;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import org.apache.http.client.utils.URIBuilder;
import com.belladati.sdk.BellaDatiService;
import com.belladati.sdk.auth.OAuthRequest;
import com.belladati.sdk.impl.BellaDatiClient;
import com.belladati.sdk.impl.BellaDatiServiceImpl;
import com.belladati.sdk.impl.TokenHolder;
public class OAuthRequestImpl implements OAuthRequest {
/** The serialVersionUID */
private static final long serialVersionUID = -8823818244254801967L;
private final BellaDatiClient client;
private final TokenHolder tokenHolder;
public OAuthRequestImpl(BellaDatiClient client, TokenHolder tokenHolder) {
this.client = client;
this.tokenHolder = tokenHolder;
}
@Override
public URL getAuthorizationUrl() {
try {
return new URIBuilder(
client.getBaseUrl() + "authorizeRequestToken/" + tokenHolder.getToken() + "/" + tokenHolder.getConsumerKey())
.build().toURL();
} catch (MalformedURLException e) {
throw new IllegalArgumentException("Invalid URL", e);
} catch (URISyntaxException e) {
throw new IllegalArgumentException("Invalid URL", e);
}
}
@Override
public BellaDatiService requestAccess() {
client.postToken("oauth/accessToken", tokenHolder);
return new BellaDatiServiceImpl(client, tokenHolder);
}
@Override
public String toString() {
return "OAuth Authentication(server: " + client.getBaseUrl() + ", key: " + tokenHolder.getConsumerKey() + ")";
}
}