package org.springframework.social.flickr.api;
import java.util.List;
/**
* The Interface PhotosetOperations.
*/
public interface PhotosetOperations {
/**
* Create a new photoset for the calling user.
*
* This method requires authentication with 'write' permission.
*
* @param title
* @param description
* options send null
* @param primaryPhotoId
* @return
*/
Photoset create(String title, String description, String primaryPhotoId);
/**
* Add a photo to the end of an existing photoset.
*
* This method requires authentication with 'write' permission.
*
* @param photosetId
* @param photoId
* @return
*/
boolean addPhoto(String photosetId, String photoId);
/**
* Modify the meta-data for a photoset.
*
* This method requires authentication with 'write' permission.
*
* @param photosetId
* @param title
* @param description
* A description of the photoset. May contain limited html.
* @return
*/
boolean editMeta(String photosetId, String title, String description);
/**
* Modify the photos in a photoset. Use this method to add, remove and
* re-order photos.
*
* This method requires authentication with 'write' permission.
*
* @param photosetId
* @param primaryPhotoId
* The id of the photo to use as the 'primary' photo for the set.
* This id must also be passed along in photo_ids list argument.
*
* @param photoIds
* A list of photo ids to include in the set. They will appear in
* the set in the order sent. This list must contain the primary
* photo id. All photos must belong to the owner of the set. This
* list of photos replaces the existing list. Call
* flickr.photosets.addPhoto to append a photo to a set.
*
* @return
*/
boolean editPhotos(String photosetId, String primaryPhotoId,
List<String> photoIds);
/**
* Returns next and previous photos for a photo in a set.
*
* This method does not require authentication.
*
* @param photoId
* @param photosetId
* @return
*/
/*
* TODO: Need to handle in special way PhotoCount getContext(String photoId ,
* String photosetId);
*/
/**
* Gets information about a photoset.
*
* This method does not require authentication.
*
* @param photosetId
* @return
*/
Photoset getInfo(String photosetId);
/**
* Returns the photosets belonging to the specified user.
*
* This method does not require authentication.
*
* @param userId
* @param page
* optional send null
* @param perPage
* optional send null
* @return
*/
Photosets getList(String userId, String page, String perPage);
/**
* Delete.
*
* @param photosetId the photoset id
*/
boolean delete( String photosetId);
/**
* Gets the photos.
*
* @param photosetId the photoset id
* @param extras the extras
* @param privacyFilter the privacy filter
* @param perPage the per page
* @param page the page
* @param media the media
* @return the photos
*/
Photoset getPhotos( String photosetId, String[] extras,
PrivacyFilterEnum privacyFilter, String perPage, String page, MediaEnum media);// extras,privacyFilter,perPage,page,media optional
/**
* Order sets.
*
* @param photosetIds the photoset ids
*/
boolean orderSets( String[] photosetIds);
/**
* Removes the photo.
*
* @param photosetId the photoset id
* @param photoId the photo id
*/
boolean removePhoto( String photosetId, String photoId);
/**
* Removes the photos.
*
* @param photosetId the photoset id
* @param photoIds the photo ids
*/
boolean removePhotos( String photosetId, String[] photoIds);
/**
* Reorder photos.
*
* @param photosetId the photoset id
* @param photoIds the photo ids
*/
boolean reorderPhotos( String photosetId, String[] photoIds);
/**
* Sets the primary photo.
*
* @param photosetId the photoset id
* @param photoId the photo id
*/
boolean setPrimaryPhoto( String photosetId, String photoId);
}