summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/tools/AttributeTool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/tools/AttributeTool.java')
-rw-r--r--src/com/p4square/grow/tools/AttributeTool.java184
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());
- }
- }
-}