package org.springframework.social.flickr.api.impl;
import org.springframework.social.flickr.api.People;
import org.springframework.social.flickr.api.PhotosPeopleOperations;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* @author HemantS
*
*/
public class PhotosPeopleTemplate extends AbstractFlickrOperations implements
PhotosPeopleOperations {
private final RestTemplate restTemplate;
public PhotosPeopleTemplate(RestTemplate restTemplate,
boolean isAuthorizedForUser,String consumerKey) {
super(isAuthorizedForUser,consumerKey);
this.restTemplate = restTemplate;
}
@Override
public boolean add(String photoId, String userId,
String personX, String personY, String personW, String personH) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (photoId != null)
parameters.set("photo_id", photoId);
if (userId != null)
parameters.set("user_id", userId);
if (personX != null)
parameters.set("person_x", personX);
if (personY != null)
parameters.set("person_y", personY);
if (personW != null)
parameters.set("person_w", personW);
if (personH != null)
parameters.set("person_h", personH);
restTemplate.postForObject(buildUri("flickr.photos.people.add"),
parameters, Object.class);
return true;
}
@Override
public boolean delete(String photoId, String userId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (photoId != null)
parameters.set("photo_id", photoId);
if (userId != null)
parameters.set("user_id", userId);
restTemplate.postForObject(buildUri("flickr.photos.people.delete"),
parameters, Object.class);
return true;
}
@Override
public People getList(String photoId) {
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (photoId != null)
parameters.set("photo_id", photoId);
return restTemplate.getForObject(
buildUri("flickr.photos.people.getList", parameters),
People.class);
}
@Override
public boolean deleteCoords(String photoId, String userId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (photoId != null)
parameters.set("photo_id", photoId);
if (userId != null)
parameters.set("user_id", userId);
restTemplate.postForObject(
buildUri("flickr.photos.people.deleteCoords"), parameters,
Object.class);
return true;
}
@Override
public boolean editCoords(String photoId, String userId,
String personX, String personY, String personW, String personH) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (photoId != null)
parameters.set("photo_id", photoId);
if (userId != null)
parameters.set("user_id", userId);
if (personX != null)
parameters.set("person_x", personX);
if (personY != null)
parameters.set("person_y", personY);
if (personW != null)
parameters.set("person_w", personW);
if (personH != null)
parameters.set("person_h", personH);
restTemplate.postForObject(buildUri("flickr.photos.people.editCoords"),parameters, Object.class);
return true;
}
}