package org.springframework.social.flickr.api.impl; import org.springframework.social.flickr.api.Category; import org.springframework.social.flickr.api.Group2; import org.springframework.social.flickr.api.Groups; import org.springframework.social.flickr.api.GroupsOperations; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; /** * @author HemantS * */ public class GroupsTemplate extends AbstractFlickrOperations implements GroupsOperations { private final RestTemplate restTemplate; public GroupsTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser, String consumerKey) { super(isAuthorizedForUser,consumerKey); this.restTemplate = restTemplate; } @Override public Category browse(String catId) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (catId != null) parameters.set("cat_id", catId); return restTemplate.getForObject( buildUri("flickr.groups.browse", parameters), Category.class); } @Override public Group2 getInfo(String groupId, String lang) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (groupId != null) parameters.set("group_id", groupId); if (lang != null) parameters.set("lang", lang); return restTemplate.getForObject( buildUri("flickr.groups.getInfo", parameters), Group2.class); } @Override public Groups search(String text, String perPage, String page) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (text != null) parameters.set("text", text); if (perPage != null) parameters.set("per_page", perPage); if (page != null) parameters.set("page", page); return restTemplate.getForObject( buildUri("flickr.groups.search", parameters), Groups.class); } @Override public boolean join(String groupId, String acceptRules) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (groupId != null) parameters.set("group_id", groupId); if (acceptRules != null) parameters.set("accept_rules", acceptRules); restTemplate.postForObject(buildUri("flickr.groups.join"),parameters, Object.class); return true; } @Override public boolean joinRequest(String groupId, String message, String acceptRules) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (groupId != null) parameters.set("group_id", groupId); if (message != null) parameters.set("message", message); if (acceptRules != null) parameters.set("accept_rules", acceptRules); restTemplate.postForObject(buildUri("flickr.groups.joinRequest"),parameters, Object.class); return true; } @Override public boolean leave(String groupId, String deletePhotos) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (groupId != null) parameters.set("group_id", groupId); if (deletePhotos != null) parameters.set("delete_photos", deletePhotos); restTemplate.postForObject(buildUri("flickr.groups.leave"),parameters, Object.class); return true; } }