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.cmd.Usage; import net.ocheyedan.wrk.trello.Member; import net.ocheyedan.wrk.trello.Trello; import org.codehaus.jackson.type.TypeReference; import java.util.Collections; import java.util.List; import java.util.Map; /** * User: blangel * Date: 6/30/12 * Time: 8:48 PM */ public final class UnAssign extends IdCommand { private final String url; private final String description; public UnAssign(Args args) { super(args); if (args.args.size() == 1) { IdCommand.TrelloId cardId = parseWrkId(args.args.get(0), cardsPrefix); url = Trello.url("https://trello.com/1/cards/%s/members/%s?key=%s&token=%s", cardId.id, Trello.getUsrId(), Trello.APP_DEV_KEY, Trello.USR_TOKEN); description = String.format("Un-assigning user from card ^b^%s^r^:", cardId.id); } else if ((args.args.size() == 3) && "from".equals(args.args.get(1))) { TrelloId cardId = parseWrkId(args.args.get(2), cardsPrefix); TrelloId memberId = parseWrkId(args.args.get(0), membersPrefix); url = Trello.url("https://trello.com/1/cards/%s/members/%s?key=%s&token=%s", cardId.id, memberId.id, Trello.APP_DEV_KEY, Trello.USR_TOKEN); description = String.format("Un-assigning user ^b^%s^r^ from card ^b^%s^r^:", memberId.id, cardId.id); } else { url = description = null; } } @Override protected Map<String, String> _run() { Output.print(description); List<Member> members = RestTemplate.delete(url, new TypeReference<List<Member>>() { }); if (members == null) { Output.print(" ^red^Not added or invalid user.^r^"); } else { Output.print(" ^b^Un-assigned!^r^"); } return Collections.emptyMap(); } @Override protected boolean valid() { return (url != null); } @Override protected String getCommandName() { return "unassign"; } }