package org.springframework.social.flickr.api.impl;
import org.springframework.social.flickr.api.GroupsDiscussTopicsOperations;
import org.springframework.social.flickr.api.Topic;
import org.springframework.social.flickr.api.Topics;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* The Class GroupsDiscussTopicsTemplate.
*
* @author HemantS
*/
public class GroupsDiscussTopicsTemplate extends AbstractFlickrOperations
implements GroupsDiscussTopicsOperations {
private final RestTemplate restTemplate;
public GroupsDiscussTopicsTemplate(RestTemplate restTemplate,
boolean isAuthorizedForUser, String consumerKey) {
super(isAuthorizedForUser, consumerKey);
this.restTemplate = restTemplate;
}
@Override
public Topic add(String groupId, String subject, String message) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (groupId != null)
parameters.set("group_id", groupId);
if (subject != null)
parameters.set("subject", subject);
if (message != null)
parameters.set("message", message);
return restTemplate.postForObject(buildUri("flickr.groups.discuss.topics.add"),parameters, Topic.class);
}
@Override
public Topic getInfo(String topicId) {
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (topicId != null)
parameters.set("topic_id", topicId);
return restTemplate.getForObject(buildUri("flickr.groups.discuss.topics.add",parameters), Topic.class);
}
@Override
public Topics getList(String groupId, String perPage, String page) {
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (groupId != null)
parameters.set("group_id", groupId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(buildUri("flickr.groups.discuss.topics.getList",parameters), Topics.class);
}
}