package net.ocheyedan.wrk.cmd.trello;
import net.ocheyedan.wrk.Output;
import net.ocheyedan.wrk.RestTemplate;
import net.ocheyedan.wrk.cmd.Args;
import net.ocheyedan.wrk.trello.Organization;
import net.ocheyedan.wrk.trello.Trello;
import org.codehaus.jackson.type.TypeReference;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* User: blangel
* Date: 6/30/12
* Time: 8:19 AM
*/
public final class Orgs extends IdCommand {
private final String url;
private final String description;
public Orgs(Args args) {
super(args);
url = Trello.url("https://trello.com/1/members/my/organizations?key=%s&token=%s", Trello.APP_DEV_KEY,
Trello.USR_TOKEN);
description = "Your organizations:";
}
@Override protected Map<String, String> _run() {
Output.print(description);
List<Organization> orgs = RestTemplate.get(url, new TypeReference<List<Organization>>() { });
if ((orgs == null) || orgs.isEmpty()) {
Output.print(" ^black^None^r^");
return Collections.emptyMap();
}
return printOrgs(orgs, 1);
}
@Override protected boolean valid() {
return (url != null);
}
@Override protected String getCommandName() {
return "orgs";
}
static Map<String, String> printOrgs(List<Organization> orgs, int indexBase) {
Map<String, String> wrkIds = new HashMap<String, String>(orgs.size());
int orgIndex = indexBase;
for (Organization organization : orgs) {
String wrkId = "wrk" + orgIndex++;
wrkIds.put(wrkId, String.format("o:%s", organization.getId()));
Output.print(" ^b^%s^r^ ^black^| %s^r^", organization.getDisplayName(), wrkId);
Output.print(" ^black^%s^r^", organization.getUrl());
}
return wrkIds;
}
}