package org.springframework.social.flickr.api.impl;
import org.springframework.social.flickr.api.GroupsDiscussRepliesOperations;
import org.springframework.social.flickr.api.Replies;
import org.springframework.social.flickr.api.Reply;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* The Class GroupsDiscussRepliesTemplate.
*
* @author HemantS
*/
public class GroupsDiscussRepliesTemplate extends AbstractFlickrOperations
implements GroupsDiscussRepliesOperations {
private final RestTemplate restTemplate;
public GroupsDiscussRepliesTemplate(RestTemplate restTemplate,
boolean isAuthorizedForUser, String consumerKey) {
super(isAuthorizedForUser, consumerKey);
this.restTemplate = restTemplate;
}
@Override
public Reply add(String topicId, String message) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (message != null)
parameters.set("message", message);
if (topicId != null)
parameters.set("topic_id", topicId);
return restTemplate.postForObject(buildUri("flickr.groups.discuss.replies.add"),parameters, Reply.class);
}
@Override
public boolean delete(String topicId, String replyId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (replyId != null)
parameters.set("reply_id", replyId);
if (topicId != null)
parameters.set("topic_id", topicId);
restTemplate.postForObject(buildUri("flickr.groups.discuss.replies.delete"),parameters, Object.class);
return true;
}
@Override
public boolean edit(String topicId, String replyId, String message) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (replyId != null)
parameters.set("reply_id", replyId);
if (topicId != null)
parameters.set("topic_id", topicId);
if (message != null)
parameters.set("message", message);
restTemplate.postForObject(buildUri("flickr.groups.discuss.replies.edit"),parameters, Object.class);
return true;
}
@Override
public Reply getInfo(String topicId, String replyId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (replyId != null)
parameters.set("reply_id", replyId);
if (topicId != null)
parameters.set("topic_id", topicId);
return restTemplate.getForObject(buildUri("flickr.groups.discuss.replies.getInfo",parameters), Reply.class);
}
@Override
public Replies getList(String topicId, String replyId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (replyId != null)
parameters.set("reply_id", replyId);
if (topicId != null)
parameters.set("topic_id", topicId);
return restTemplate.getForObject(buildUri("flickr.groups.discuss.replies.getList",parameters), Replies.class);
}
}