package org.springframework.social.flickr.api.impl; import org.springframework.social.flickr.api.PhotosSuggestionsOperations; import org.springframework.social.flickr.api.Suggestions; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; /** * @author HemantS * */ public class PhotosSuggestionsTemplate extends AbstractFlickrOperations implements PhotosSuggestionsOperations { private final RestTemplate restTemplate; public PhotosSuggestionsTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser,String consumerKey) { super(isAuthorizedForUser, consumerKey); this.restTemplate = restTemplate; } @Override public boolean approveSuggestion(String suggestionId) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (suggestionId != null) parameters.set("suggestion_id", suggestionId); restTemplate.postForObject( buildUri("flickr.photos.suggestions.approveSuggestion"), parameters, Object.class); return true; } @Override public Suggestions getList(String photoId, String statusId) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (photoId != null) parameters.set("photo_id", photoId); if (statusId != null) parameters.set("status_id", statusId); return restTemplate.getForObject( buildUri("flickr.photos.suggestions.getList", parameters), Suggestions.class); } @Override public boolean rejectSuggestion(String suggestionId) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (suggestionId != null) parameters.set("suggestion_id", suggestionId); restTemplate.postForObject( buildUri("flickr.photos.suggestions.rejectSuggestion"), parameters, Object.class); return true; } @Override public boolean removeSuggestion(String suggestionId) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (suggestionId != null) parameters.set("suggestion_id", suggestionId); restTemplate.postForObject( buildUri("flickr.photos.suggestions.removeSuggestion"), parameters, Object.class); return true; } @Override public Suggestions suggestLocation(String photoId, String lat, String lon, String accuracy, String woeId, String placeId, String note) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (photoId != null) parameters.set("photo_id", photoId); if (lat != null) parameters.set("lat", lat); if (lon != null) parameters.set("lon", lon); if (accuracy != null) parameters.set("accuracy", accuracy); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); if (note != null) parameters.set("note", note); return restTemplate.postForObject( buildUri("flickr.photos.suggestions.suggestLocation"), parameters, Suggestions.class); } }