package org.springframework.social.flickr.api;
import java.io.File;
/**
* @author HemantS
*
*/
/**
* The Interface PhotoOperations.
*/
public interface PhotoOperations {
/**
* Adds the tags.
*
* @param photoId the photo id
* @param tagList the tag list
* @return true, if successful
*/
boolean addTags(String photoId, String[] tagList);
/**
* Adds the tags.
*
* @param photoId the photo id
* @param tags comma separated tags
* @return true, if successful
*/
boolean addTags(String photoId, String tags);
/**
* Remove a tag from a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param tagId
* @return
*/
boolean removeTag(String tagId);
/**
* Delete the photoT
* This method require 'delete' permission
*
* @param photoId the photo id
* @return true, if successful
*/
boolean delete(String photoId);
/**
* Gets the recent.
*
* @param perPage the per page
* @param page the page
* @param List of extras
* @return the recent
*/
Photos getRecent(String perPage, String page, String[] extras);
/**
* Returns the list of people who have favorited a given photo.
*
* @param perPage the per page
* @param page the page
* @param photoId the photo id
* @return the favorites
*/
Photo getFavorites(String perPage, String page, String photoId);
/**
* Get information about a photo. The calling user must have permission to view the photo.
*
* @param photoId the photo id
* @return the info
*/
PhotoDetail getInfo(String photoId);
/**
* Returns the available sizes for a photo. The calling user must have permission to view the photo.
*
* @param photoId the photo id
* @return the sizes
*/
Sizes getSizes(String photoId);
/**
* Get permissions for a photo.
* <p/>
* This method requires authentication with 'read' permission.
*
* @param photoId
* @return
*/
Perms getPerms(String photoId);
/**
* Set permissions for a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param perms
* @return
*/
PhotoId setPerms(Perms perms);
/**
* Set the content type of a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param photoId
* @param contentType
* @return
*/
boolean setContentType(String photoId, ContentTypeEnum contentTypeEnum);
/**
* Set the safety level of a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param photoId
* @param safetyLevel
* @param hidden
* @return
*/
boolean setSafetyLevel(String photoId, SafetyLevelEnum safetyLevel, Boolean hidden);
boolean setSafetyLevel(String photoId, SafetyLevelEnum safetyLevel);
/**
* Set the meta information for a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param photoId
* @param title
* @param description
* @return
*/
boolean setMeta(String photoId, String title, String description);
/**
* Rotate a photo.
* <p/>
* This method requires authentication with 'write' permission.
*
* @param photoId
* @param rotation The amount of degrees by which to rotate the photo (clockwise) from it's current orientation. Valid values are 90, 180 and 270.
* @return
*/
PhotoId rotate(String photoId, RotateEnum rotation);
/*peding */
String upload(File photo, String title, String description, String[] tags, Perms perms, ContentTypeEnum contentType, HiddenEnum hiddenType);
}