package glaze.examples.infochimps;
import static glaze.examples.infochimps.InfochimpsApi.*;
import static glaze.Glaze.Get;
import glaze.examples.infochimps.model.InfluenceMetrics;
import glaze.examples.infochimps.model.UfoSights;
import java.net.URI;
import java.util.Collections;
import java.util.Map;
import com.google.common.base.Optional;
/**
* Infochimps Social API example.
*
*/
public class InfochimpsApp
{
private static final String API_KEY = "api_test-W1cipwpcdu9Cbd9pmm8D4Cjc469";
private static final Map<String, Object> EMPTY_MAP = Collections.emptyMap();
public static void main(String... args)
{
String screenName = "ladygaga"; // "infochimps";
String query = "location:spain"; // "description:ufo"
InfochimpsApp app = new InfochimpsApp();
app.tsrank(screenName);
app.influence(screenName);
app.ufoSight(query);
}
// Here for example purposes.
// Logically it must be encapsulated in the Api class.
private void influence(String screenName)
{
URI uri = uriInfluenceMetrics(API_KEY, screenName);
InfluenceMetrics metrics = Get(uri).withErrorHandler(infochimpsErrors()).map(InfluenceMetrics.class);
System.out.format("%s\n", metrics);
}
private void tsrank(String screenName)
{
URI uri = uriTsrank(API_KEY, screenName);
Map<String, Object> result = Get(uri).withErrorHandler(infochimpsErrors()).map();
System.out.format("Rank: %s\n", Optional.fromNullable(result).or(EMPTY_MAP).get("trstrank"));
}
private void ufoSight(String query)
{
URI uri = uriUfoSight(API_KEY, query, 0, 2);
UfoSights sights = Get(uri).withErrorHandler(infochimpsErrors()).map(UfoSights.class);
System.out.format("%s\n", sights);
}
}