com.flickr4java.flickr.urls.UrlsInterface Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of flickr4java Show documentation
Show all versions of flickr4java Show documentation
Java API For Flickr. Fork of FlickrJ.
/*
* Copyright (c) 2005 Aetrion LLC.
*/
package com.flickr4java.flickr.urls;
import com.flickr4java.flickr.FlickrException;
import com.flickr4java.flickr.Response;
import com.flickr4java.flickr.Transport;
import com.flickr4java.flickr.galleries.Gallery;
import com.flickr4java.flickr.groups.Group;
import com.flickr4java.flickr.people.User;
import com.flickr4java.flickr.util.XMLUtilities;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import java.util.HashMap;
import java.util.Map;
/**
* Interface for testing Flickr connectivity.
*
* @author Anthony Eden
*/
public class UrlsInterface {
public static final String METHOD_GET_GROUP = "flickr.urls.getGroup";
public static final String METHOD_GET_USER_PHOTOS = "flickr.urls.getUserPhotos";
public static final String METHOD_GET_USER_PROFILE = "flickr.urls.getUserProfile";
public static final String METHOD_LOOKUP_GROUP = "flickr.urls.lookupGroup";
public static final String METHOD_LOOKUP_USER = "flickr.urls.lookupUser";
public static final String METHOD_LOOKUP_GALLERY = "flickr.urls.lookupGallery";
private final String apiKey;
private final String sharedSecret;
private final Transport transport;
/**
* Construct a UrlsInterface.
*
* @param apiKey
* The API key
* @param transportAPI
* The Transport interface
*/
public UrlsInterface(String apiKey, String sharedSecret, Transport transportAPI) {
this.apiKey = apiKey;
this.sharedSecret = sharedSecret;
this.transport = transportAPI;
}
/**
* Get the group URL for the specified group ID
*
* @param groupId
* The group ID
* @return The group URL
* @throws FlickrException
*/
public String getGroup(String groupId) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_GET_GROUP);
parameters.put("group_id", groupId);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Element payload = response.getPayload();
return payload.getAttribute("url");
}
/**
* Get the URL for the user's photos.
*
* @param userId
* The user ID
* @return The user photo URL
* @throws FlickrException
*/
public String getUserPhotos(String userId) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_GET_USER_PHOTOS);
parameters.put("user_id", userId);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Element payload = response.getPayload();
return payload.getAttribute("url");
}
/**
* Get the URL for the user's profile.
*
* @param userId
* The user ID
* @return The URL
* @throws FlickrException
*/
public String getUserProfile(String userId) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_GET_USER_PROFILE);
parameters.put("user_id", userId);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Element payload = response.getPayload();
return payload.getAttribute("url");
}
/**
* Lookup the group for the specified URL.
*
* @param url
* The url
* @return The group
* @throws FlickrException
*/
public Group lookupGroup(String url) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_LOOKUP_GROUP);
parameters.put("url", url);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Group group = new Group();
Element payload = response.getPayload();
Element groupnameElement = (Element) payload.getElementsByTagName("groupname").item(0);
group.setId(payload.getAttribute("id"));
group.setName(((Text) groupnameElement.getFirstChild()).getData());
return group;
}
/**
* Lookup the username for the specified User URL.
*
* @param url
* The user profile URL
* @return The username
* @throws FlickrException
*/
public String lookupUser(String url) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_LOOKUP_USER);
parameters.put("url", url);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Element payload = response.getPayload();
Element groupnameElement = (Element) payload.getElementsByTagName("username").item(0);
return ((Text) groupnameElement.getFirstChild()).getData();
}
/**
* Lookup the Gallery for the specified ID.
*
* @param galleryId
* The user profile URL
* @return The Gallery
* @throws FlickrException
*/
public Gallery lookupGallery(String galleryId) throws FlickrException {
Map parameters = new HashMap();
parameters.put("method", METHOD_LOOKUP_GALLERY);
parameters.put("url", galleryId);
Response response = transport.get(transport.getPath(), parameters, apiKey, sharedSecret);
if (response.isError()) {
throw new FlickrException(response.getErrorCode(), response.getErrorMessage());
}
Element galleryElement = response.getPayload();
Gallery gallery = new Gallery();
gallery.setId(galleryElement.getAttribute("id"));
gallery.setUrl(galleryElement.getAttribute("url"));
User owner = new User();
owner.setId(galleryElement.getAttribute("owner"));
gallery.setOwner(owner);
gallery.setCreateDate(galleryElement.getAttribute("date_create"));
gallery.setUpdateDate(galleryElement.getAttribute("date_update"));
gallery.setPrimaryPhotoId(galleryElement.getAttribute("primary_photo_id"));
gallery.setPrimaryPhotoServer(galleryElement.getAttribute("primary_photo_server"));
gallery.setVideoCount(galleryElement.getAttribute("count_videos"));
gallery.setPhotoCount(galleryElement.getAttribute("count_photos"));
gallery.setPrimaryPhotoFarm(galleryElement.getAttribute("farm"));
gallery.setPrimaryPhotoSecret(galleryElement.getAttribute("secret"));
gallery.setTitle(XMLUtilities.getChildValue(galleryElement, "title"));
gallery.setDesc(XMLUtilities.getChildValue(galleryElement, "description"));
return gallery;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy