package org.springframework.social.flickr.api.impl;
import org.springframework.social.flickr.api.Domain;
import org.springframework.social.flickr.api.Domains;
import org.springframework.social.flickr.api.Photos;
import org.springframework.social.flickr.api.Stats;
import org.springframework.social.flickr.api.StatsOperations;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
/**
* @author HemantS
*
*/
public class StatsTemplate extends AbstractFlickrOperations implements
StatsOperations {
private final RestTemplate restTemplate;
public StatsTemplate(RestTemplate restTemplate, boolean isAuthorizedForUser) {
super(isAuthorizedForUser);
this.restTemplate = restTemplate;
}
@Override
public Domains getCollectionDomains(String apiKey, String date,
String collectionId, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (collectionId != null)
parameters.set("collection_id", collectionId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getCollectionDomains", parameters),
Domains.class);
}
@Override
public Domain getCollectionReferrers(String apiKey, String date,
String domain, String collectionId, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (domain != null)
parameters.set("domain", domain);
if (collectionId != null)
parameters.set("collection_id", collectionId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getCollectionReferrers", parameters),
Domain.class);
}
@Override
public Stats getCSVFiles(String apiKey) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
return restTemplate.getForObject(
buildUri("flickr.stats.getCSVFiles", parameters), Stats.class);
}
@Override
public Domains getPhotoDomains(String apiKey, String date, String photoId,
String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (photoId != null)
parameters.set("photo_id", photoId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotoDomains", parameters),
Domains.class);
}
@Override
public Domain getPhotoReferrers(String apiKey, String date, String domain,
String photoId, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (domain != null)
parameters.set("domain", domain);
if (photoId != null)
parameters.set("photo_id", photoId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotoReferrers", parameters),
Domain.class);
}
@Override
public Domains getPhotosetDomains(String apiKey, String date,
String photosetId, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (photosetId != null)
parameters.set("photoset_id", photosetId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotosetDomains", parameters),
Domains.class);
}
@Override
public Domain getPhotosetReferrers(String apiKey, String date,
String domain, String photosetId, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (domain != null)
parameters.set("domain", domain);
if (photosetId != null)
parameters.set("photoset_id", photosetId);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotosetReferrers", parameters),
Domain.class);
}
@Override
public Stats getPhotosetStats(String apiKey, String date, String photosetId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (photosetId != null)
parameters.set("photoset_id", photosetId);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotosetStats", parameters),
Stats.class);
}
@Override
public Stats getPhotoStats(String apiKey, String date, String photoId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (photoId != null)
parameters.set("photo_id", photoId);
return restTemplate
.getForObject(
buildUri("flickr.stats.getPhotoStats", parameters),
Stats.class);
}
@Override
public Domains getPhotostreamDomains(String apiKey, String date,
String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotostreamDomains", parameters),
Domains.class);
}
@Override
public Domain getPhotostreamReferrers(String apiKey, String date,
String domain, String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (domain != null)
parameters.set("domain", domain);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotostreamReferrers", parameters),
Domain.class);
}
@Override
public Stats getPhotostreamStats(String apiKey, String date) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
return restTemplate.getForObject(
buildUri("flickr.stats.getPhotostreamStats", parameters),
Stats.class);
}
@Override
public Photos getPopularPhotos(String apiKey, String date, String sort,
String perPage, String page) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (sort != null)
parameters.set("sort", sort);
if (perPage != null)
parameters.set("per_page", perPage);
if (page != null)
parameters.set("page", page);
return restTemplate.getForObject(
buildUri("flickr.stats.getPopularPhotos", parameters),
Photos.class);
}
@Override
public Stats getTotalViews(String apiKey, String date) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
return restTemplate
.getForObject(
buildUri("flickr.stats.getTotalViews", parameters),
Stats.class);
}
@Override
public Stats getCollectionStats(String apiKey, String date,
String collectionId) {
requireAuthorization();
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
if (apiKey != null)
parameters.set("api_key", apiKey);
if (date != null)
parameters.set("date", date);
if (collectionId != null)
parameters.set("collection_id", collectionId);
return restTemplate.getForObject(buildUri("flickr.stats.getCollectionStats", parameters),Stats.class);
}
}