package org.springframework.social.flickr.api.impl;
import org.springframework.social.flickr.api.Groups;
import org.springframework.social.flickr.api.Person;
import org.springframework.social.flickr.api.Photos;
import org.springframework.social.flickr.api.User;
import org.springframework.social.flickr.api.PeopleOperations;
import org.springframework.web.client.RestTemplate;
/**
* @author HemantS
*
*/
public class PeopleTemplate extends AbstractFlickrOperations implements PeopleOperations{
private final RestTemplate restTemplate;
public PeopleTemplate(RestTemplate restTemplate,boolean isAuthorizedForUser,String consumerKey) {
super(isAuthorizedForUser,consumerKey);
this.restTemplate = restTemplate;
}
@Override
public String getProfileId() {
requireAuthorization();
User user = restTemplate.getForObject(buildUri("flickr.test.login"), User.class);
return user.getId();
}
@Override
public Person getPersonProfile() {
requireAuthorization();
return restTemplate.getForObject(buildUri("flickr.people.getInfo","user_id",getProfileId()), Person.class);
}
@Override
public Person getPersonProfile(String userId) {
return restTemplate.getForObject(buildUri("flickr.people.getInfo","user_id",userId), Person.class);
}
@Override
public User getUserByEmail(String email) {
return restTemplate.getForObject(buildUri("flickr.people.findByEmail","find_email",email), User.class);
}
@Override
public User getUserByUserName(String userName) {
return restTemplate.getForObject(buildUri("flickr.people.findByUsername","username",userName), User.class);
}
@Override
public Groups getGroups(String userId) {
return restTemplate.getForObject(buildUri("flickr.people.getGroups","user_id",userId), Groups.class);
}
@Override
public Groups getPublicGroups(String userId) {
return restTemplate.getForObject(buildUri("flickr.people.getPublicGroups","user_id",userId), Groups.class);
}
@Override
public Photos getPhotos(String userId) {
return restTemplate.getForObject(buildUri("flickr.people.getPhotos","user_id",userId), Photos.class);
}
@Override
public Photos getPublicPhotos(String userId) {
return restTemplate.getForObject(buildUri("flickr.people.getPublicPhotos","user_id",userId), Photos.class);
}
}