Vincent Sima 6 年之前
父節點
當前提交
f285a92510
共有 12 個文件被更改,包括 302 次插入12 次删除
  1. 二進制
      .DS_Store
  2. 二進制
      Client/.DS_Store
  3. 9
    2
      Client/Client.iml
  4. 6
    0
      Client/pom.xml
  5. 二進制
      Client/src/.DS_Store
  6. 二進制
      Client/src/main/.DS_Store
  7. 29
    0
      Client/src/main/java/Id.java
  8. 47
    0
      Client/src/main/java/Message.java
  9. 47
    2
      Client/src/main/java/SimpleShell.java
  10. 150
    8
      Client/src/main/java/YouAreEll.java
  11. 9
    0
      YouAreEll.iml
  12. 5
    0
      pom.xml

二進制
.DS_Store 查看文件


二進制
Client/.DS_Store 查看文件


+ 9
- 2
Client/Client.iml 查看文件

@@ -5,12 +5,19 @@
5 5
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
6 6
     <content url="file://$MODULE_DIR$">
7 7
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
9
-      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
10 8
       <excludeFolder url="file://$MODULE_DIR$/target" />
11 9
     </content>
12 10
     <orderEntry type="inheritedJdk" />
13 11
     <orderEntry type="sourceFolder" forTests="false" />
12
+    <orderEntry type="library" name="Maven: com.mashape.unirest:unirest-java:1.4.9" level="project" />
13
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
14
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
15
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
16
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
17
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.1" level="project" />
18
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.4" level="project" />
19
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
20
+    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
14 21
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.6" level="project" />
15 22
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
16 23
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.6" level="project" />

+ 6
- 0
Client/pom.xml 查看文件

@@ -11,5 +11,11 @@
11 11
 
12 12
     <artifactId>Client</artifactId>
13 13
 
14
+    <dependency>
15
+        <groupId>com.mashape.unirest</groupId>
16
+        <artifactId>unirest-java</artifactId>
17
+        <version>1.4.9</version>
18
+    </dependency>
19
+
14 20
 
15 21
 </project>

二進制
Client/src/.DS_Store 查看文件


二進制
Client/src/main/.DS_Store 查看文件


+ 29
- 0
Client/src/main/java/Id.java 查看文件

@@ -0,0 +1,29 @@
1
+public class Id {
2
+    String userid;
3
+    String name;
4
+    String github;
5
+
6
+    public String getUserid() {
7
+        return userid;
8
+    }
9
+
10
+    public void setUserid(String userId) {
11
+        this.userid = userId;
12
+    }
13
+
14
+    public String getName() {
15
+        return name;
16
+    }
17
+
18
+    public void setName(String name) {
19
+        this.name = name;
20
+    }
21
+
22
+    public String getGithub() {
23
+        return github;
24
+    }
25
+
26
+    public void setGithub(String github) {
27
+        this.github = github;
28
+    }
29
+}

+ 47
- 0
Client/src/main/java/Message.java 查看文件

@@ -0,0 +1,47 @@
1
+public class Message {
2
+    String toid;
3
+    String sequence;
4
+    String message;
5
+    String fromid;
6
+    String timestamp;
7
+
8
+    public String getToid() {
9
+        return toid;
10
+    }
11
+
12
+    public void setToid(String toid) {
13
+        this.toid = toid;
14
+    }
15
+
16
+    public String getSequence() {
17
+        return sequence;
18
+    }
19
+
20
+    public void setSequence(String sequence) {
21
+        this.sequence = sequence;
22
+    }
23
+
24
+    public String getMessage() {
25
+        return message;
26
+    }
27
+
28
+    public void setMessage(String message) {
29
+        this.message = message;
30
+    }
31
+
32
+    public String getFromid() {
33
+        return fromid;
34
+    }
35
+
36
+    public void setFromid(String fromid) {
37
+        this.fromid = fromid;
38
+    }
39
+
40
+    public String getTimestamp() {
41
+        return timestamp;
42
+    }
43
+
44
+    public void setTimestamp(String timestamp) {
45
+        this.timestamp = timestamp;
46
+    }
47
+}

+ 47
- 2
Client/src/main/java/SimpleShell.java 查看文件

@@ -9,8 +9,7 @@ public class SimpleShell {
9 9
 
10 10
 
11 11
     public static void prettyPrint(String output) {
12
-        // yep, make an effort to format things nicely, eh?
13
-        System.out.println(output);
12
+    System.out.println(output);
14 13
     }
15 14
     public static void main(String[] args) throws java.io.IOException {
16 15
 
@@ -64,6 +63,21 @@ public class SimpleShell {
64 63
                     SimpleShell.prettyPrint(results);
65 64
                     continue;
66 65
                 }
66
+                if (list.contains("adduser")) {
67
+                    System.out.println("What is your name?");
68
+                    String n = console.readLine();
69
+                    System.out.println("What is your GitHub name?");
70
+                    String g = console.readLine();
71
+                    webber.addUser(n, g);
72
+                    continue;
73
+                }
74
+                if (list.contains("changename")) {
75
+                    System.out.println("What is your new name?");
76
+                    String g = console.readLine();
77
+                    webber.renameUser(g);
78
+                    continue;
79
+                }
80
+
67 81
 
68 82
                 // messages
69 83
                 if (list.contains("messages")) {
@@ -71,6 +85,37 @@ public class SimpleShell {
71 85
                     SimpleShell.prettyPrint(results);
72 86
                     continue;
73 87
                 }
88
+                if (list.contains("getmessages")) {
89
+                    String results = webber.get_my_messages();
90
+                    SimpleShell.prettyPrint(results);
91
+                    continue;
92
+                }
93
+
94
+                if (list.contains("getmessagesfrom")) {
95
+                    System.out.println("From who?");
96
+                    String u = console.readLine();
97
+                    String results = webber.get_messages_from(u);
98
+                    SimpleShell.prettyPrint(results);
99
+                    continue;
100
+                }
101
+
102
+                if (list.contains("sendmessage")) {
103
+                    System.out.println("To anyone specific? (Y/N)");
104
+                    String p = console.readLine();
105
+                    if (p.contains("n")) {
106
+                    System.out.println("What is your message?");
107
+                    String message = console.readLine();
108
+                    webber.send_message_to_all(message);
109
+                    } else {
110
+                        System.out.println("Who is the recipient?");
111
+                        String r = console.readLine();
112
+                        System.out.println("What is your message?");
113
+                        String message = console.readLine();
114
+                        webber.send_message_to_specific(message, r);
115
+                    }
116
+                    continue;
117
+                }
118
+
74 119
                 // you need to add a bunch more.
75 120
 
76 121
                 //!! command returns the last command in history

+ 150
- 8
Client/src/main/java/YouAreEll.java 查看文件

@@ -1,23 +1,165 @@
1
-public class YouAreEll {
1
+import java.io.IOException;
2
+import java.util.Arrays;
3
+import java.util.Iterator;
4
+import java.util.List;
2 5
 
3
-    YouAreEll() {
4
-    }
6
+import com.fasterxml.jackson.databind.ObjectMapper;
7
+import com.mashape.unirest.http.HttpResponse;
8
+import com.mashape.unirest.http.JsonNode;
9
+import com.mashape.unirest.http.Unirest;
10
+import com.mashape.unirest.http.exceptions.UnirestException;
11
+
12
+
13
+public class YouAreEll {
14
+    List<Id> myObjects;
5 15
 
6 16
     public static void main(String[] args) {
7 17
         YouAreEll urlhandler = new YouAreEll();
8
-        System.out.println(urlhandler.MakeURLCall("/ids", "GET", ""));
9
-        System.out.println(urlhandler.MakeURLCall("/messages", "GET", ""));
18
+        urlhandler.get_messages();
19
+    }
20
+
21
+    public void addUser(String name, String gh){
22
+        try {
23
+            HttpResponse<JsonNode> jsonResponse
24
+                    = Unirest.post("http://zipcode.rocks:8085/ids")
25
+                    .body("{\"userid\":\"-\", \"github\":\""+ gh +"\", \"name\":\"" + name + "\"}")
26
+                    .asJson();
27
+        } catch (UnirestException e) {
28
+            System.out.println("Error");
29
+        }
30
+    }
31
+
32
+    public void renameUser(String name){
33
+        try {
34
+            HttpResponse<JsonNode> jsonResponse
35
+                    = Unirest.put("http://zipcode.rocks:8085/ids")
36
+                    .body("{\"userid\":\"-\", \"github\":\"vincesima\", \"name\":\"" + name + "\"}")
37
+                    .asJson();
38
+        } catch (UnirestException e) {
39
+            System.out.println("Error");
40
+        }
41
+    }
42
+
43
+    public void send_message_to_all(String message) {
44
+        try {
45
+            HttpResponse<JsonNode> jsonResponse
46
+                    = Unirest.post("http://zipcode.rocks:8085/ids/vincesima/messages")
47
+                    .body("{\"fromid\":\"vincesima\", \"toid\":\"\", \"message\":\"" + message + "\"}")
48
+                    .asJson();
49
+        } catch (UnirestException e) {
50
+            System.out.println("Error");
51
+        }
52
+    }
53
+
54
+    public void send_message_to_specific(String message, String toid) {
55
+        try {
56
+            HttpResponse<JsonNode> jsonResponse
57
+                    = Unirest.post("http://zipcode.rocks:8085/ids/vincesima/messages")
58
+                    .body("{\"fromid\":\"vincesima\", \"toid\":\"" + toid + "\", \"message\":\"" + message + "\"}")
59
+                    .asJson();
60
+        } catch (UnirestException e) {
61
+            System.out.println("Error");
62
+        }
10 63
     }
11 64
 
12 65
     public String get_ids() {
13
-        return MakeURLCall("/ids", "GET", "");
66
+        StringBuilder sb = new StringBuilder();
67
+        try {
68
+            String userJson = this.MakeURLCall("/ids", "GET", "");
69
+            ObjectMapper objectMapper = new ObjectMapper();
70
+            List<Id> myObjects = Arrays.asList(objectMapper.readValue(userJson, Id[].class));
71
+            for (Iterator<Id> iter = myObjects.iterator(); iter.hasNext(); ) {
72
+                Id element = iter.next();
73
+                sb.append("Name: " + element.getName() + "\n");
74
+                sb.append("GitHub: " + element.getGithub() + "\n");
75
+                sb.append("UserID: " + element.getUserid() + "\n\n");
76
+            }
77
+        } catch (IOException e) {
78
+            System.out.println("Error");
79
+        }
80
+        return sb.toString();
14 81
     }
15 82
 
16 83
     public String get_messages() {
17
-        return MakeURLCall("/messages", "GET", "");
84
+        StringBuilder sb = new StringBuilder();
85
+        try {
86
+            String userJson = this.MakeURLCall("/messages", "GET", "");
87
+            //System.out.println(userJson);
88
+            ObjectMapper objectMapper = new ObjectMapper();
89
+            List<Message> myObjects = Arrays.asList(objectMapper.readValue(userJson, Message[].class));
90
+            for (Iterator<Message> iter = myObjects.iterator(); iter.hasNext(); ) {
91
+                Message element = iter.next();
92
+                formatMessage(element, sb);
93
+
94
+            }
95
+        } catch (IOException e) {
96
+            System.out.println("Error");
97
+        }
98
+        System.out.println(sb.toString());
99
+        return sb.toString();
100
+    }
101
+
102
+    public String get_my_messages() {
103
+        StringBuilder sb = new StringBuilder();
104
+        try {
105
+            String userJson = this.MakeURLCall("/ids/vincesima/messages", "GET", "");
106
+            ObjectMapper objectMapper = new ObjectMapper();
107
+            List<Message> myObjects = Arrays.asList(objectMapper.readValue(userJson, Message[].class));
108
+            for (Iterator<Message> iter = myObjects.iterator(); iter.hasNext(); ) {
109
+                Message element = iter.next();
110
+                formatMessage(element, sb);
111
+
112
+            }
113
+        } catch (IOException e) {
114
+            System.out.println("Error");
115
+        }
116
+        return sb.toString();
117
+
118
+    }
119
+
120
+    public String get_messages_from(String user){
121
+        StringBuilder sb = new StringBuilder();
122
+        try {
123
+            String userJson = this.MakeURLCall("/ids/vincesima/from/"+user, "GET", "");
124
+            ObjectMapper objectMapper = new ObjectMapper();
125
+            List<Message> myObjects = Arrays.asList(objectMapper.readValue(userJson, Message[].class));
126
+            for (Iterator<Message> iter = myObjects.iterator(); iter.hasNext(); ) {
127
+                Message element = iter.next();
128
+                formatMessage(element, sb);
129
+            }
130
+        } catch (IOException e) {
131
+            System.out.println("Error");
132
+        }
133
+        return sb.toString();
134
+    }
135
+
136
+    public String formatMessage(Message element, StringBuilder sb){
137
+        sb.append("From: " + element.getFromid() + "\n");
138
+        sb.append("To: " + element.getToid() + "\n");
139
+        sb.append("Message: " + element.getMessage() + "\n");
140
+        sb.append("Timestamp: " + element.getTimestamp() + "\n");
141
+        sb.append("Sequence: " + element.getSequence() + "\n\n");
142
+        return sb.toString();
18 143
     }
19 144
 
20 145
     public String MakeURLCall(String mainurl, String method, String jpayload) {
21
-        return "nada";
146
+        try {
147
+            HttpResponse<com.mashape.unirest.http.JsonNode> jsonResponse = null;
148
+
149
+            if (method.equals("GET")) {
150
+                jsonResponse = Unirest.get("http://zipcode.rocks:8085/{method}").routeParam("method", mainurl).asJson();
151
+
152
+            } else if (method.equals("POST")) {
153
+                jsonResponse = Unirest.post("http://zipcode.rocks:8085/{method}")
154
+                        .routeParam("method", mainurl)
155
+                        .body(jpayload)
156
+                        .asJson();
157
+            }
158
+
159
+            return jsonResponse.getBody().toString();
160
+
161
+        } catch (UnirestException e) {
162
+            return "nada";
163
+        }
22 164
     }
23 165
 }

+ 9
- 0
YouAreEll.iml 查看文件

@@ -8,6 +8,15 @@
8 8
     </content>
9 9
     <orderEntry type="inheritedJdk" />
10 10
     <orderEntry type="sourceFolder" forTests="false" />
11
+    <orderEntry type="library" name="Maven: com.mashape.unirest:unirest-java:1.4.9" level="project" />
12
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.2" level="project" />
13
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
14
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
15
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
16
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.1" level="project" />
17
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.4" level="project" />
18
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" />
19
+    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
11 20
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.6" level="project" />
12 21
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
13 22
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.6" level="project" />

+ 5
- 0
pom.xml 查看文件

@@ -14,6 +14,11 @@
14 14
 
15 15
     <dependencies>
16 16
         <dependency>
17
+            <groupId>com.mashape.unirest</groupId>
18
+            <artifactId>unirest-java</artifactId>
19
+            <version>1.4.9</version>
20
+        </dependency>
21
+        <dependency>
17 22
             <groupId>com.fasterxml.jackson.core</groupId>
18 23
             <artifactId>jackson-databind</artifactId>
19 24
             <version>2.8.6</version>