package com.github.scribejava.apis;
import com.github.scribejava.core.builder.api.DefaultApi10a;
import com.github.scribejava.core.model.OAuth1RequestToken;
/**
* OAuth API for Flickr.
*
* @see <a href="http://www.flickr.com/services/api/">Flickr API</a>
*/
public class FlickrApi extends DefaultApi10a {
private static final String AUTHORIZE_URL = "https://www.flickr.com/services/oauth/authorize?oauth_token=%s";
public enum FlickrPerm {
READ, WRITE, DELETE
};
/**
* read, write, or delete (delete includes read/write)
*/
private final String permString;
protected FlickrApi() {
permString = null;
}
protected FlickrApi(FlickrPerm perm) {
permString = perm.name().toLowerCase();
}
private static class InstanceHolder {
private static final FlickrApi INSTANCE = new FlickrApi();
}
public static FlickrApi instance() {
return InstanceHolder.INSTANCE;
}
public static FlickrApi instance(FlickrPerm perm) {
return perm == null ? instance() : new FlickrApi(perm);
}
/**
* {@inheritDoc}
*/
@Override
public String getAccessTokenEndpoint() {
return "https://www.flickr.com/services/oauth/access_token";
}
/**
* {@inheritDoc}
*/
@Override
public String getAuthorizationUrl(OAuth1RequestToken requestToken) {
String authUrl = String.format(AUTHORIZE_URL, requestToken.getToken());
if (permString != null) {
authUrl += "&perms=" + permString;
}
return authUrl;
}
/**
* {@inheritDoc}
*/
@Override
public String getRequestTokenEndpoint() {
return "https://www.flickr.com/services/oauth/request_token";
}
}