diff options
Diffstat (limited to 'src/com/p4square/grow/tools/AttributeTool.java')
-rw-r--r-- | src/com/p4square/grow/tools/AttributeTool.java | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/src/com/p4square/grow/tools/AttributeTool.java b/src/com/p4square/grow/tools/AttributeTool.java deleted file mode 100644 index 8e0540a..0000000 --- a/src/com/p4square/grow/tools/AttributeTool.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2014 Jesse Morgan - */ - -package com.p4square.grow.tools; - -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; - -import org.restlet.Client; -import org.restlet.Context; -import org.restlet.data.Protocol; - -import com.p4square.grow.config.Config; -import com.p4square.f1oauth.Attribute; -import com.p4square.f1oauth.F1Access; -import com.p4square.f1oauth.F1API; -import com.p4square.f1oauth.F1Exception; -import com.p4square.restlet.oauth.OAuthUser; - -/** - * Tool for manipulating F1 Attributes. - * - * @author Jesse Morgan <jesse@jesterpm.net> - */ -public class AttributeTool { - - private static Config mConfig; - private static F1API mF1API; - - public static void usage() { - System.out.println("java com.p4square.grow.tools.AttributeTool <command>...\n"); - System.out.println("Commands:"); - System.out.println("\t--domain <domain> Set config domain"); - System.out.println("\t--dev Set config domain to dev"); - System.out.println("\t--config <file> Merge in config file"); - System.out.println("\t--list List all attributes"); - System.out.println("\t--assign <userId> <attribute> <comment> Assign an attribute"); - System.out.println("\t--getall <userId> Get an attribute"); - System.out.println("\t--get <userId> <attribute> Get an attribute"); - } - - public static void main(String... args) { - if (args.length == 0) { - usage(); - System.exit(1); - } - - mConfig = new Config(); - - try { - mConfig.updateConfig(AttributeTool.class.getResourceAsStream("/grow.properties")); - - int offset = 0; - while (offset < args.length) { - if ("--domain".equals(args[offset])) { - mConfig.setDomain(args[offset + 1]); - mF1API = null; - offset += 2; - - } else if ("--dev".equals(args[offset])) { - mConfig.setDomain("dev"); - mF1API = null; - offset += 1; - - } else if ("--config".equals(args[offset])) { - mConfig.updateConfig(args[offset + 1]); - mF1API = null; - offset += 2; - - } else if ("--list".equals(args[offset])) { - offset = list(args, ++offset); - - } else if ("--assign".equals(args[offset])) { - offset = assign(args, ++offset); - - } else if ("--getall".equals(args[offset])) { - offset = getall(args, ++offset); - - } else if ("--get".equals(args[offset])) { - offset = get(args, ++offset); - - } else { - throw new IllegalArgumentException("Unknown command " + args[offset]); - } - } - } catch (Exception e) { - e.printStackTrace(); - System.exit(2); - } - } - - private static F1API getF1API() throws Exception { - if (mF1API == null) { - Context context = new Context(); - Client client = new Client(context, Arrays.asList(Protocol.HTTP, Protocol.HTTPS)); - context.setClientDispatcher(client); - - F1Access f1Access = new F1Access(context, - mConfig.getString("f1ConsumerKey"), - mConfig.getString("f1ConsumerSecret"), - mConfig.getString("f1BaseUrl"), - mConfig.getString("f1ChurchCode"), - F1Access.UserType.WEBLINK); - - // Gather Username and Password - String username = System.console().readLine("F1 Username: "); - char[] password = System.console().readPassword("F1 Password: "); - - OAuthUser user = f1Access.getAccessToken(username, new String(password)); - Arrays.fill(password, ' '); // Lost cause, but I'll still try. - - mF1API = f1Access.getAuthenticatedApi(user); - } - - return mF1API; - } - - private static int list(String[] args, int offset) throws Exception { - final F1API f1 = getF1API(); - - final Map<String, String> attributes = f1.getAttributeList(); - System.out.printf("%7s %s\n", "ID", "Name"); - for (Map.Entry<String, String> entry : attributes.entrySet()) { - System.out.printf("%7s %s\n", entry.getValue(), entry.getKey()); - } - - return offset; - } - - private static int assign(String[] args, int offset) throws Exception { - final String userId = args[offset++]; - final String attributeName = args[offset++]; - final String comment = args[offset++]; - - final F1API f1 = getF1API(); - - Attribute attribute = new Attribute(attributeName); - attribute.setStartDate(new Date()); - attribute.setComment(comment); - - if (f1.addAttribute(userId, attribute)) { - System.out.println("Added attribute " + attributeName + " for " + userId); - } else { - System.out.println("Failed to add attribute " + attributeName + " for " + userId); - } - - return offset; - } - - private static int getall(String[] args, int offset) throws Exception { - final String userId = args[offset++]; - - doGet(userId, null); - - return offset; - } - - private static int get(String[] args, int offset) throws Exception { - final String userId = args[offset++]; - final String attributeName = args[offset++]; - - doGet(userId, attributeName); - - return offset; - } - - private static void doGet(final String userId, final String attributeName) throws Exception { - final F1API f1 = getF1API(); - - List<Attribute> attributes = f1.getAttribute(userId, attributeName); - for (Attribute attribute : attributes) { - System.out.printf("%s %s %s %s %s\n%s\n\n", - userId, - attribute.getAttributeName(), - attribute.getId(), - attribute.getStartDate(), - attribute.getEndDate(), - attribute.getComment()); - } - } -} |