package org.springframework.social.flickr.api.impl; import org.springframework.social.flickr.api.Location; import org.springframework.social.flickr.api.Place; import org.springframework.social.flickr.api.Place_types; import org.springframework.social.flickr.api.Places; import org.springframework.social.flickr.api.PlacesOperations; import org.springframework.social.flickr.api.Shapes; import org.springframework.social.flickr.api.Tags; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; /** * @author HemantS * */ public class PlacesTemplate extends AbstractFlickrOperations implements PlacesOperations { private final RestTemplate restTemplate; public PlacesTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser, String consumerKey) { super(isAuthorizedForUser,consumerKey); this.restTemplate = restTemplate; } @Override public Places find(String query) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (query != null) parameters.set("query", query); return restTemplate.getForObject( buildUri("flickr.places.find", parameters), Places.class); } @Override public Places findByLatLon(String lat, String lon, String accuracy) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (lat != null) parameters.set("lat", lat); if (lon != null) parameters.set("lon", lon); if (accuracy != null) parameters.set("accuracy", accuracy); return restTemplate.getForObject( buildUri("flickr.places.findByLatLon", parameters), Places.class); } @Override public Places getChildrenWithPhotosPublic(String placeId, String woeId) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeId != null) parameters.set("place_id", placeId); if (woeId != null) parameters.set("woe_id", woeId); return restTemplate.getForObject( buildUri("flickr.places.getChildrenWithPhotosPublic", parameters), Places.class); } @Override public Place getInfo(String placeId, String woeId) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeId != null) parameters.set("place_id", placeId); if (woeId != null) parameters.set("woe_id", woeId); return restTemplate.getForObject( buildUri("flickr.places.getInfo", parameters), Place.class); } @Override public Place getInfoByUrl(String url) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (url != null) parameters.set("url", url); return restTemplate .getForObject( buildUri("flickr.places.getInfoByUrl", parameters), Place.class); } @Override public Place_types getPlaceTypes() { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); return restTemplate.getForObject( buildUri("flickr.places.getPlaceTypes", parameters), Place_types.class); } @Override public Shapes getShapeHistory(String placeId, String woeId) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeId != null) parameters.set("place_id", placeId); if (woeId != null) parameters.set("woe_id", woeId); return restTemplate.getForObject( buildUri("flickr.places.getShapeHistory", parameters), Shapes.class); } @Override public Places getTopPlacesList(String placeTypeId, String date, String woeId, String placeId) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeTypeId != null) parameters.set("place_type_id", placeTypeId); if (date != null) parameters.set("date", date); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); return restTemplate.getForObject( buildUri("flickr.places.getTopPlacesList", parameters), Places.class); } @Override public Places placesForBoundingBox(String bbox, String placeType, String placeTypeId) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (bbox != null) parameters.set("bbox", bbox); if (placeType != null) parameters.set("place_type", placeType); if (placeTypeId != null) parameters.set("place_type_id", placeTypeId); return restTemplate.getForObject( buildUri("flickr.places.placesForBoundingBox", parameters), Places.class); } @Override public Places placesForContacts(String placeType, String placeTypeId, String woeId, String placeId, String threshold, String contacts, String minUploadDate, String maxUploadDate, String minTakenDate, String maxTakenDate) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeType != null) parameters.set("place_type", placeType); if (placeTypeId != null) parameters.set("place_type_id", placeTypeId); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); if (threshold != null) parameters.set("threshold", threshold); if (contacts != null) parameters.set("contacts", contacts); if (minUploadDate != null) parameters.set("min_upload_date", minUploadDate); if (maxUploadDate != null) parameters.set("max_upload_date", maxUploadDate); if (minTakenDate != null) parameters.set("min_taken_date", minTakenDate); if (maxTakenDate != null) parameters.set("max_taken_date", maxTakenDate); return restTemplate.getForObject( buildUri("flickr.places.placesForContacts", parameters), Places.class); } @Override public Places placesForTags(String placeTypeId, String woeId, String placeId, String threshold, String tags, String tagMode, String machineTags, String machineTagMode, String minUploadDate, String maxUploadDate, String minTakenDate, String maxTakenDate) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeTypeId != null) parameters.set("place_type_id", placeTypeId); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); if (threshold != null) parameters.set("threshold", threshold); if (tags != null) parameters.set("tags", tags); if (tagMode != null) parameters.set("tag_mode", tagMode); if (machineTags != null) parameters.set("machine_tags", machineTags); if (machineTagMode != null) parameters.set("machine_tag_mode", machineTagMode); if (minUploadDate != null) parameters.set("min_upload_date", minUploadDate); if (maxUploadDate != null) parameters.set("max_upload_date", maxUploadDate); if (minTakenDate != null) parameters.set("min_taken_date", minTakenDate); if (maxTakenDate != null) parameters.set("max_taken_date", maxTakenDate); return restTemplate.getForObject( buildUri("flickr.places.placesForTags", parameters), Places.class); } @Override public Places placesForUser(String placeTypeId, String placeType, String woeId, String placeId, String threshold, String minUploadDate, String maxUploadDate, String minTakenDate, String maxTakenDate) { requireAuthorization(); MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (placeTypeId != null) parameters.set("place_type_id", placeTypeId); if (placeType != null) parameters.set("place_type", placeType); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); if (threshold != null) parameters.set("threshold", threshold); if (minUploadDate != null) parameters.set("min_upload_date", minUploadDate); if (maxUploadDate != null) parameters.set("max_upload_date", maxUploadDate); if (minTakenDate != null) parameters.set("min_taken_date", minTakenDate); if (maxTakenDate != null) parameters.set("max_taken_date", maxTakenDate); return restTemplate.getForObject( buildUri("flickr.places.placesForUser", parameters), Places.class); } @Override public Tags tagsForPlace(String woeId, String placeId, String minUploadDate, String maxUploadDate, String minTakenDate, String maxTakenDate) { MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>(); if (woeId != null) parameters.set("woe_id", woeId); if (placeId != null) parameters.set("place_id", placeId); if (minUploadDate != null) parameters.set("min_upload_date", minUploadDate); if (maxUploadDate != null) parameters.set("max_upload_date", maxUploadDate); if (minTakenDate != null) parameters.set("min_taken_date", minTakenDate); if (maxTakenDate != null) parameters.set("max_taken_date", maxTakenDate); return restTemplate.getForObject( buildUri("flickr.places.tagsForPlace", parameters), Tags.class); } }