package org.gupa.j2me;
import java.io.IOException;
import java.util.Hashtable;
import net.oauth.j2me.BadTokenStateException;
import net.oauth.j2me.Consumer;
import net.oauth.j2me.OAuthServiceProviderException;
import net.oauth.j2me.token.AccessToken;
import net.oauth.j2me.token.RequestToken;
/**
*
* @author Mete Ercan Pakdil
* @version 1.0
* http://www.mtrcn.com
*
*/
public class GUPAConsumer {
public static final String BASE_DOMAIN="http://www.geomatikygulamalar.com/v2";
public static final String API_DOMAIN="http://gupa.geomatikuygulamalar.com/v1";
private Consumer oauthConsumer;
private RequestToken requestToken;
private AccessToken accessToken;
/** Creates a new instance of GUPA */
public GUPAConsumer(String key, String secret) {
oauthConsumer = new Consumer(key, secret);
oauthConsumer.setSignatureMethod("HMAC-SHA1");
}
public String buildAuthorizeURL(String requestToken){
return API_DOMAIN+"/oauth/authorize?oauth_token="+requestToken;
}
public RequestToken getNewRequestToken() throws OAuthServiceProviderException {
requestToken = oauthConsumer.getRequestToken(API_DOMAIN + "/oauth/request_token",null);
return requestToken;
}
public AccessToken getNewAccessToken() throws OAuthServiceProviderException, BadTokenStateException {
if (requestToken==null) {
throw new BadTokenStateException("No request token set");
}
accessToken = oauthConsumer.getAccessToken(API_DOMAIN + "/oauth/access_token",requestToken,null);
requestToken = null;
return accessToken;
}
public String api(String method, Hashtable params, AccessToken accessToken) throws OAuthServiceProviderException, BadTokenStateException, IOException {
return oauthConsumer.accessProtectedResource(API_DOMAIN+method, accessToken, params, "POST");
}
// accessors and stuff
public RequestToken getRequestToken() {
return requestToken;
}
public void setAccessToken(AccessToken accessToken) {
this.accessToken=accessToken;
}
public void setRequestToken(RequestToken requestToken){
this.requestToken = requestToken;
}
}