From dadfb62acfe7f60ed28b3c2ed63bd8c383b7ae41 Mon Sep 17 00:00:00 2001 From: kshields412 Date: Mon, 25 Nov 2019 18:49:00 -0500 Subject: [PATCH 1/4] worked on mapping messages --- .idea/vcs.xml | 2 +- Client/Client.iml | 12 +++-- Client/pom.xml | 12 +++++ Client/src/main/java/models/Message.java | 48 ++++++++++++++++++- Client/src/main/java/views/SimpleShell.java | 11 +++++ Client/src/main/java/youareell/YouAreEll.java | 40 +++++++++++++++- YouAreEll.iml | 6 +-- 7 files changed, 120 insertions(+), 11 deletions(-) diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Client/Client.iml b/Client/Client.iml index c3ea736..1db9b4a 100644 --- a/Client/Client.iml +++ b/Client/Client.iml @@ -5,14 +5,16 @@ - - - - - + + + + + + + \ No newline at end of file diff --git a/Client/pom.xml b/Client/pom.xml index ff427b8..64cb159 100644 --- a/Client/pom.xml +++ b/Client/pom.xml @@ -11,5 +11,17 @@ Client + + + org.apache.httpcomponents + httpclient + 4.5.10 + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + \ No newline at end of file diff --git a/Client/src/main/java/models/Message.java b/Client/src/main/java/models/Message.java index da313ae..4c830e7 100644 --- a/Client/src/main/java/models/Message.java +++ b/Client/src/main/java/models/Message.java @@ -4,7 +4,53 @@ * POJO for an Message object */ public class Message { + private String message; + private String fromid; + private String toid; + private String sequence; + private String timestamp; - public Message (String message, String fromId, String toId) {} + public String getSequence() { + return sequence; + } + + public void setSequence(String sequence) { + this.sequence = sequence; + } + + public String getTimestamp() { + return timestamp; + } + + public void setTimestamp(String timestamp) { + this.timestamp = timestamp; + } + // public Message (String message, String fromId, String toId) { +// +// } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getfromid() { + return fromid; + } + + public void setfromid(String fromid) { + this.fromid = fromid; + } + + public String gettoid() { + return toid; + } + + public void settoid(String toid) { + this.toid = toid; + } } \ No newline at end of file diff --git a/Client/src/main/java/views/SimpleShell.java b/Client/src/main/java/views/SimpleShell.java index 3865bb2..b6cee2b 100644 --- a/Client/src/main/java/views/SimpleShell.java +++ b/Client/src/main/java/views/SimpleShell.java @@ -7,8 +7,10 @@ import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.databind.ObjectMapper; import controllers.IdController; import controllers.MessageController; +import models.Message; import youareell.YouAreEll; // Simple Shell is a Console view for youareell.YouAreEll. @@ -21,6 +23,7 @@ public static void prettyPrint(String output) { } public static void main(String[] args) throws java.io.IOException { + YouAreEll webber = new YouAreEll(new MessageController(), new IdController()); String commandLine; @@ -76,6 +79,14 @@ public static void main(String[] args) throws java.io.IOException { // messages if (list.contains("messages")) { String results = webber.get_messages(); + ObjectMapper mapper = new ObjectMapper(); + +//JSON from String to Object + // List messages = new ArrayList(); + Message[] messages = mapper.readValue(results, Message[].class); + for(Message msg : messages){ + System.out.println(msg.getfromid()); + } SimpleShell.prettyPrint(results); continue; } diff --git a/Client/src/main/java/youareell/YouAreEll.java b/Client/src/main/java/youareell/YouAreEll.java index acfe78a..8679963 100644 --- a/Client/src/main/java/youareell/YouAreEll.java +++ b/Client/src/main/java/youareell/YouAreEll.java @@ -1,6 +1,17 @@ package youareell; + import controllers.*; +import org.apache.http.Header; +import org.apache.http.HttpEntity; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; + +import java.io.IOException; public class YouAreEll { @@ -29,6 +40,33 @@ public String get_messages() { } public String MakeURLCall(String mainurl, String method, String jpayload) { - return "nada"; + String result = ""; + HttpGet request = new HttpGet("http://zipcode.rocks:8085"+mainurl); + final CloseableHttpClient httpClient = HttpClients.createDefault(); + try{ + CloseableHttpResponse response = httpClient.execute(request); { + + // Get HttpResponse Status + System.out.println(response.getStatusLine().toString()); + + HttpEntity entity = response.getEntity(); + Header headers = entity.getContentType(); + System.out.println(headers); + + if (entity != null) { + // return it as a String + result = EntityUtils.toString(entity); + System.out.println(result); + } + + } + }catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + + return result; } } diff --git a/YouAreEll.iml b/YouAreEll.iml index 5f1ec7b..084de76 100644 --- a/YouAreEll.iml +++ b/YouAreEll.iml @@ -8,8 +8,8 @@ - - - + + + \ No newline at end of file From db6eb4b43edfe7e6fee4fc231051021ebf35304a Mon Sep 17 00:00:00 2001 From: kshields412 Date: Tue, 3 Dec 2019 19:30:43 -0500 Subject: [PATCH 2/4] i did it --- .idea/vcs.xml | 2 +- Client/Client.iml | 2 + .../main/java/controllers/IdController.java | 37 ++++++++-- .../controllers/TransactionController.java | 68 ++++++++++++++++++- Client/src/main/java/models/Id.java | 46 ++++++++++++- Client/src/main/java/models/Message.java | 16 +++++ Client/src/main/java/utils/HelperMethods.java | 19 ++++++ Client/src/main/java/views/IdTextView.java | 7 +- .../src/main/java/views/MessageTextView.java | 9 ++- Client/src/main/java/views/SimpleShell.java | 45 +++++++----- Client/src/main/java/youareell/YouAreEll.java | 34 ++++++++-- 11 files changed, 249 insertions(+), 36 deletions(-) create mode 100644 Client/src/main/java/utils/HelperMethods.java diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Client/Client.iml b/Client/Client.iml index 1db9b4a..ae5902f 100644 --- a/Client/Client.iml +++ b/Client/Client.iml @@ -13,6 +13,8 @@ + + diff --git a/Client/src/main/java/controllers/IdController.java b/Client/src/main/java/controllers/IdController.java index 15b8253..5cb8908 100644 --- a/Client/src/main/java/controllers/IdController.java +++ b/Client/src/main/java/controllers/IdController.java @@ -1,22 +1,51 @@ package controllers; +import java.io.IOException; import java.util.ArrayList; import models.Id; +import org.codehaus.jackson.map.ObjectMapper; public class IdController { Id myId; public ArrayList getIds() { - return null; + ArrayList idsList = new ArrayList(); + String json = TransactionController.MakeURLCall("/ids", "GET", ""); + try { + ObjectMapper mapper = new ObjectMapper(); + Id[] ids = mapper.readValue(json, Id[].class); + for(int i = 0; i < ids.length; i++){ + idsList.add(ids[i]); + } + return idsList; + }catch (IOException i){ + i.printStackTrace(); + return null; + } } public Id postId(Id id) { - return null; + ObjectMapper mapper = new ObjectMapper(); + try { + String json = mapper.writeValueAsString(id); + String response = TransactionController.MakeURLCall("/ids", "POST", json); + return mapper.readValue(response, Id.class); + }catch (IOException i){ + i.printStackTrace(); + return null; + } } public Id putId(Id id) { - return null; + ObjectMapper mapper = new ObjectMapper(); + try { + String json = mapper.writeValueAsString(id); + String response = TransactionController.MakeURLCall("/ids", "PUT", json); + return mapper.readValue(response, Id.class); + }catch (IOException i){ + i.printStackTrace(); + return null; + } } - } \ No newline at end of file diff --git a/Client/src/main/java/controllers/TransactionController.java b/Client/src/main/java/controllers/TransactionController.java index acacc62..5c669b5 100644 --- a/Client/src/main/java/controllers/TransactionController.java +++ b/Client/src/main/java/controllers/TransactionController.java @@ -1,7 +1,73 @@ package controllers; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.HttpURLConnection; +import java.net.URL; + public class TransactionController { - private String rootURL = "http://zipcode.rocks:8085"; + private static final String rootURL = "http://zipcode.rocks:8085"; public TransactionController() {} + + public static String MakeURLCall(String mainurl, String method, String jpayload){ + String response = ""; + try{ + HttpURLConnection conn = initConnection(mainurl, method, jpayload); + response = readServerResponse(conn); + conn.disconnect(); + } catch (Exception e) { + e.printStackTrace(); + } + return response; + } + + public static HttpURLConnection initConnection(String mainurl, String method, String jpayload){ + try{ + URL url = new URL(rootURL + mainurl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + + conn.setDoOutput(true); + conn.setRequestMethod(method); + if(method.equals("POST") || method.equals("PUT")){ + conn = writeJsonToConn(conn, jpayload); + } + + return conn; + + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public static String readServerResponse(HttpURLConnection conn){ + StringBuilder result = new StringBuilder(); + try{ + BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String output; + while ((output = br.readLine()) != null) { + result.append(output); + } + } catch (Exception e) { + e.printStackTrace(); + } + return result.toString(); + } + + public static HttpURLConnection writeJsonToConn(HttpURLConnection conn, String jpayload){ + conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + conn.setRequestProperty("Accept", "application/json"); + try{ + OutputStreamWriter os = new OutputStreamWriter(conn.getOutputStream()); + os.write(jpayload); + os.flush();; + os.close(); + //conn is an open connection to the server running at the time in question + } catch (Exception e) { + e.printStackTrace(); + } + return conn; + } } diff --git a/Client/src/main/java/models/Id.java b/Client/src/main/java/models/Id.java index 71f2ebf..67b9bf9 100644 --- a/Client/src/main/java/models/Id.java +++ b/Client/src/main/java/models/Id.java @@ -4,7 +4,49 @@ * POJO for an Id object */ public class Id { - - public Id (String name, String githubId) {} + String name; + String github; + String userid; + private Id(){} + + public Id (String name, String githubId) { + this.name = name; + this.github = githubId; + this.userid = null; + } + + public Id (String name, String githubId, String userid) { + this.name = name; + this.github = githubId; + this.userid = userid; + } + + public Id (Id id){ + this(id.getName(), id.getGithub(), id.getUserid()); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getGithub() { + return github; + } + + public void setGithub(String github) { + this.github = github; + } + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } } \ No newline at end of file diff --git a/Client/src/main/java/models/Message.java b/Client/src/main/java/models/Message.java index 4c830e7..029d493 100644 --- a/Client/src/main/java/models/Message.java +++ b/Client/src/main/java/models/Message.java @@ -10,6 +10,22 @@ public class Message { private String sequence; private String timestamp; + public Message(String message, String fromid, String toid, String sequence, String timestamp){ + this.message = message; + this.fromid = fromid; + this.toid = toid; + this.sequence = sequence; + this.timestamp = timestamp; + } + + public Message(String message, String fromid, String toid){ + this(message, fromid, toid, "-", null); + } + + public Message(Message message){ + this(message.getMessage(), message.getfromid(), message.gettoid(), message.getSequence(), message.getTimestamp()); + } + public String getSequence() { return sequence; } diff --git a/Client/src/main/java/utils/HelperMethods.java b/Client/src/main/java/utils/HelperMethods.java new file mode 100644 index 0000000..b889fca --- /dev/null +++ b/Client/src/main/java/utils/HelperMethods.java @@ -0,0 +1,19 @@ +package utils; + +import models.Id; + +import java.util.ArrayList; + +public class HelperMethods { + public static String getId(ArrayList ids, String github){ + String userid = ""; + + for(Id id : ids){ + if(id.getGithub().equals(github)){ + userid = id.getUserid(); + break; + } + } + return userid; + } +} diff --git a/Client/src/main/java/views/IdTextView.java b/Client/src/main/java/views/IdTextView.java index e61c754..c640711 100644 --- a/Client/src/main/java/views/IdTextView.java +++ b/Client/src/main/java/views/IdTextView.java @@ -3,11 +3,14 @@ import models.Id; public class IdTextView { + Id id; public IdTextView(Id idToDisplay) { - + this.id = idToDisplay; } @Override public String toString() { - return null; + return String.format("User:\n" + "\tname:\t\t%s\n" + + "\tgithub:\t\t%s\n" + "\tuserid:\t\t%s\n", + id.getName(), id.getGithub(), id.getUserid()); } } \ No newline at end of file diff --git a/Client/src/main/java/views/MessageTextView.java b/Client/src/main/java/views/MessageTextView.java index fe96921..0f6d414 100644 --- a/Client/src/main/java/views/MessageTextView.java +++ b/Client/src/main/java/views/MessageTextView.java @@ -3,11 +3,16 @@ import models.Message; public class MessageTextView { +Message message; public MessageTextView(Message msgToDisplay) { - + this.message = msgToDisplay; } @Override public String toString() { - return null; + return String.format("Message:\n" + "\tfromid:\t\t%s\n" + + "\ttoid:\t\t%s\n" + "\tmessage:\t\t%s\n" + + "\ttimestamp:\t%s\n" + "\tsequence:\\t\\t%s\\n", + message.getfromid(), message.gettoid(), message.getMessage(), + message.getTimestamp(), message.getSequence()); } } \ No newline at end of file diff --git a/Client/src/main/java/views/SimpleShell.java b/Client/src/main/java/views/SimpleShell.java index b6cee2b..7f0684d 100644 --- a/Client/src/main/java/views/SimpleShell.java +++ b/Client/src/main/java/views/SimpleShell.java @@ -4,12 +4,14 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; import controllers.IdController; import controllers.MessageController; +import models.Id; import models.Message; import youareell.YouAreEll; @@ -17,12 +19,20 @@ public class SimpleShell { - public static void prettyPrint(String output) { - // yep, make an effort to format things nicely, eh? - System.out.println(output); + public static void prettyPrintId(ArrayList ids) { + for(Id id : ids) { + IdTextView itv = new IdTextView(id); + System.out.println(itv.toString()); + } } - public static void main(String[] args) throws java.io.IOException { + public static void prettyPrintMsg(ArrayList message) { + for (Message msg : message) { + MessageTextView mtv = new MessageTextView(msg); + System.out.println(mtv.toString()); + } + } + public static void main(String[] args) throws java.io.IOException { YouAreEll webber = new YouAreEll(new MessageController(), new IdController()); @@ -71,24 +81,25 @@ public static void main(String[] args) throws java.io.IOException { // ids if (list.contains("ids")) { - String results = webber.get_ids(); - SimpleShell.prettyPrint(results); + ArrayList ids = webber.interpretIds(list); + SimpleShell.prettyPrintId(ids); continue; } // messages if (list.contains("messages")) { - String results = webber.get_messages(); - ObjectMapper mapper = new ObjectMapper(); - -//JSON from String to Object - // List messages = new ArrayList(); - Message[] messages = mapper.readValue(results, Message[].class); - for(Message msg : messages){ - System.out.println(msg.getfromid()); - } - SimpleShell.prettyPrint(results); - continue; + +// String results = webber.get_messages(); +// ObjectMapper mapper = new ObjectMapper(); +// +// //JSON from String to Object +// // List messages = new ArrayList(); +// Message[] messages = mapper.readValue(results, Message[].class); +// for(Message msg : messages){ +// System.out.println(msg.getfromid()); +// } +// SimpleShell.prettyPrint(results); +// continue; } // you need to add a bunch more. diff --git a/Client/src/main/java/youareell/YouAreEll.java b/Client/src/main/java/youareell/YouAreEll.java index 8679963..308015c 100644 --- a/Client/src/main/java/youareell/YouAreEll.java +++ b/Client/src/main/java/youareell/YouAreEll.java @@ -1,7 +1,9 @@ package youareell; +import com.sun.tools.corba.se.idl.toJavaPortable.Helper; import controllers.*; +import models.Id; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; @@ -10,8 +12,11 @@ import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; +import utils.HelperMethods; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; public class YouAreEll { @@ -31,13 +36,13 @@ public static void main(String[] args) { System.out.println(urlhandler.MakeURLCall("/messages", "GET", "")); } - public String get_ids() { - return MakeURLCall("/ids", "GET", ""); - } - - public String get_messages() { - return MakeURLCall("/messages", "GET", ""); - } +// public String get_ids() { +// return MakeURLCall("/ids", "GET", ""); +// } +// +// public String get_messages() { +// return MakeURLCall("/messages", "GET", ""); +// } public String MakeURLCall(String mainurl, String method, String jpayload) { String result = ""; @@ -69,4 +74,19 @@ public String MakeURLCall(String mainurl, String method, String jpayload) { return result; } + + public ArrayList interpretIds (List list){ + ArrayList idsList = idCtrl.getIds(); + + if(list.get(0).equals("ids") && list.size() == 3){ + String userId = HelperMethods.getId(idsList, list.get(2)); + idsList = new ArrayList(); + + if (!userId.equals("")) + idsList.add(idCtrl.putId(new Id(list.get(1), list.get(2), userId))); + else + idsList.add(idCtrl.postId(new Id(list.get(1), list.get(2)))); + } + return idsList; + } } From c29e21979a4ffd21ac85dfb6e655daef09453b17 Mon Sep 17 00:00:00 2001 From: kshields412 Date: Tue, 3 Dec 2019 20:29:55 -0500 Subject: [PATCH 3/4] Completed lab --- Client/Client.iml | 2 +- .../main/java/controllers/IdController.java | 5 ++ .../java/controllers/MessageController.java | 51 +++++++++++++++---- Client/src/main/java/models/Message.java | 2 + Client/src/main/java/utils/HelperMethods.java | 20 ++++++++ Client/src/main/java/views/SimpleShell.java | 19 +++---- Client/src/main/java/youareell/YouAreEll.java | 30 +++++++++++ 7 files changed, 106 insertions(+), 23 deletions(-) diff --git a/Client/Client.iml b/Client/Client.iml index ae5902f..643da58 100644 --- a/Client/Client.iml +++ b/Client/Client.iml @@ -1,6 +1,6 @@ - + diff --git a/Client/src/main/java/controllers/IdController.java b/Client/src/main/java/controllers/IdController.java index 5cb8908..ec7e4af 100644 --- a/Client/src/main/java/controllers/IdController.java +++ b/Client/src/main/java/controllers/IdController.java @@ -2,6 +2,8 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.stream.Collector; +import java.util.stream.Collectors; import models.Id; import org.codehaus.jackson.map.ObjectMapper; @@ -48,4 +50,7 @@ public Id putId(Id id) { return null; } } + public Id getIdByGit(String githubid){ + return getIds().stream().filter(id -> id.getGithub().equals(githubid)).collect(Collectors.toList()).get(0); + } } \ No newline at end of file diff --git a/Client/src/main/java/controllers/MessageController.java b/Client/src/main/java/controllers/MessageController.java index f9462ed..f9222f4 100644 --- a/Client/src/main/java/controllers/MessageController.java +++ b/Client/src/main/java/controllers/MessageController.java @@ -1,10 +1,13 @@ package controllers; -import java.util.ArrayList; -import java.util.HashSet; - import models.Id; import models.Message; +import org.codehaus.jackson.map.ObjectMapper; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.stream.Collectors; public class MessageController { @@ -12,20 +15,46 @@ public class MessageController { // why a HashSet?? public ArrayList getMessages() { - return null; + ArrayList messagesList = new ArrayList(); + String json = TransactionController.MakeURLCall("/messages", "GET", ""); + try { + ObjectMapper mapper = new ObjectMapper(); + Message[] messages = mapper.readValue(json, Message[].class); + for (int i = 0; i < messages.length; i++) { + messagesList.add(messages[i]); + } + return messagesList; + } catch (IOException i) { + i.printStackTrace(); + return null; + } } - public ArrayList getMessagesForId(Id Id) { - return null; + + public ArrayList getMessagesForId(Id id) { + return (ArrayList) getMessages().stream().filter(m -> m.getfromid().equals(id.getGithub())).collect(Collectors.toList()); } + public Message getMessageForSequence(String seq) { - return null; + return getMessages().stream().filter(m -> m.getSequence().equals(seq)).collect(Collectors.toList()).get(0); } public ArrayList getMessagesFromFriend(Id myId, Id friendId) { - return null; + return (ArrayList) getMessages().stream() + .filter(m -> + (m.getfromid().equals(myId.getGithub())) && m.gettoid().equals(friendId.getGithub())) + .collect(Collectors.toList()); } - public Message postMessage(Id myId, Id toId, Message msg) { - return null; + public Message postMessage(String myId, String toId, String msg) { + ObjectMapper mapper = new ObjectMapper(); + try { + String json = mapper.writeValueAsString(new Message(msg, myId, toId)); + String mainUrl = String.format("/ids/%s/messages", myId); + String response = TransactionController.MakeURLCall(mainUrl, "POST", json); + return mapper.readValue(response, Message.class); + }catch (IOException i){ + i.printStackTrace(); + return null; + } } - + } \ No newline at end of file diff --git a/Client/src/main/java/models/Message.java b/Client/src/main/java/models/Message.java index 029d493..454aaed 100644 --- a/Client/src/main/java/models/Message.java +++ b/Client/src/main/java/models/Message.java @@ -18,6 +18,8 @@ public Message(String message, String fromid, String toid, String sequence, Stri this.timestamp = timestamp; } + private Message(){} + public Message(String message, String fromid, String toid){ this(message, fromid, toid, "-", null); } diff --git a/Client/src/main/java/utils/HelperMethods.java b/Client/src/main/java/utils/HelperMethods.java index b889fca..9b760b8 100644 --- a/Client/src/main/java/utils/HelperMethods.java +++ b/Client/src/main/java/utils/HelperMethods.java @@ -3,6 +3,7 @@ import models.Id; import java.util.ArrayList; +import java.util.List; public class HelperMethods { public static String getId(ArrayList ids, String github){ @@ -16,4 +17,23 @@ public static String getId(ArrayList ids, String github){ } return userid; } + + public static String buildMessage(List list){ + StringBuilder sb = new StringBuilder(); + Boolean inMsg = false; + for(String item : list){ + if(item.charAt(0) == '\''){ + sb.append(item); + inMsg = true; + }else if(inMsg){ + sb.append(" " + item); + }else if (item.charAt(item.length()-1) == '\''){ + inMsg = false; + sb.append(item); + break; + } + } + String output = sb.toString(); + return output.substring(1, output.length()-1); + } } diff --git a/Client/src/main/java/views/SimpleShell.java b/Client/src/main/java/views/SimpleShell.java index 7f0684d..9afe268 100644 --- a/Client/src/main/java/views/SimpleShell.java +++ b/Client/src/main/java/views/SimpleShell.java @@ -88,18 +88,15 @@ public static void main(String[] args) throws java.io.IOException { // messages if (list.contains("messages")) { + ArrayList messages = webber.interpretMessages(list); + SimpleShell.prettyPrintMsg(messages); + continue; + } -// String results = webber.get_messages(); -// ObjectMapper mapper = new ObjectMapper(); -// -// //JSON from String to Object -// // List messages = new ArrayList(); -// Message[] messages = mapper.readValue(results, Message[].class); -// for(Message msg : messages){ -// System.out.println(msg.getfromid()); -// } -// SimpleShell.prettyPrint(results); -// continue; + if(list.contains("send")){ + ArrayList messages = webber.interpretSendMessage(list, commandLine); + SimpleShell.prettyPrintMsg(messages); + continue; } // you need to add a bunch more. diff --git a/Client/src/main/java/youareell/YouAreEll.java b/Client/src/main/java/youareell/YouAreEll.java index 308015c..d4a4c93 100644 --- a/Client/src/main/java/youareell/YouAreEll.java +++ b/Client/src/main/java/youareell/YouAreEll.java @@ -4,6 +4,7 @@ import com.sun.tools.corba.se.idl.toJavaPortable.Helper; import controllers.*; import models.Id; +import models.Message; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; @@ -89,4 +90,33 @@ public ArrayList interpretIds (List list){ } return idsList; } + + public ArrayList interpretMessages (List list){ + ArrayList messages = msgCtrl.getMessages(); + + if(list.size() == 3 && list.get(1).equals("seq")){ + messages = new ArrayList<>(); + messages.add(msgCtrl.getMessageForSequence(list.get(2))); + }else if (list.size() == 2){ + Id myId = idCtrl.getIdByGit(list.get(1)); + messages = msgCtrl.getMessagesForId(myId); + }else if (list.size() == 3){ + Id myId = idCtrl.getIdByGit(list.get(1)); + Id friendId = idCtrl.getIdByGit(list.get(2)); + messages = msgCtrl.getMessagesFromFriend(myId, friendId); + } + return messages; + } + + public ArrayList interpretSendMessage(List list, String commandLine){ + ArrayList messages = new ArrayList<>(); + String message = HelperMethods.buildMessage(list); + + if(commandLine.matches("send [A-Za-z0-9]+ '[A-Za-z0-9,. ]+'")){ + messages.add(msgCtrl.postMessage(list.get(1), "", message)); + }else if (commandLine.matches("send [A-Za-z0-9]+ '[A-Za-z0-9,. ]+' to [A-Za-z0-9]+")){ + messages.add(msgCtrl.postMessage(list.get(1), list.get(list.size()-1), message)); + } + return messages; + } } From 7f23e9f1a1503204e3f12fad2414957c0ae1e90b Mon Sep 17 00:00:00 2001 From: kshields412 Date: Wed, 4 Dec 2019 09:11:17 -0500 Subject: [PATCH 4/4] refactored build message --- .../main/java/controllers/IdController.java | 1 + .../controllers/TransactionController.java | 3 ++ Client/src/main/java/models/Id.java | 1 + Client/src/main/java/models/Message.java | 1 + Client/src/main/java/utils/HelperMethods.java | 38 ++++++++++--------- Client/src/main/java/youareell/YouAreEll.java | 4 +- 6 files changed, 29 insertions(+), 19 deletions(-) diff --git a/Client/src/main/java/controllers/IdController.java b/Client/src/main/java/controllers/IdController.java index ec7e4af..8375f8d 100644 --- a/Client/src/main/java/controllers/IdController.java +++ b/Client/src/main/java/controllers/IdController.java @@ -17,6 +17,7 @@ public ArrayList getIds() { try { ObjectMapper mapper = new ObjectMapper(); Id[] ids = mapper.readValue(json, Id[].class); + //parameter is json which takes in all url calls. for(int i = 0; i < ids.length; i++){ idsList.add(ids[i]); } diff --git a/Client/src/main/java/controllers/TransactionController.java b/Client/src/main/java/controllers/TransactionController.java index 5c669b5..756f199 100644 --- a/Client/src/main/java/controllers/TransactionController.java +++ b/Client/src/main/java/controllers/TransactionController.java @@ -17,6 +17,7 @@ public static String MakeURLCall(String mainurl, String method, String jpayload) HttpURLConnection conn = initConnection(mainurl, method, jpayload); response = readServerResponse(conn); conn.disconnect(); + //closes connection to server } catch (Exception e) { e.printStackTrace(); } @@ -43,9 +44,11 @@ public static HttpURLConnection initConnection(String mainurl, String method, St } public static String readServerResponse(HttpURLConnection conn){ + //takes server output and puts it into a string StringBuilder result = new StringBuilder(); try{ BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream())); + //conn.getInputStream is the input but InputStreamReader reads that input String output; while ((output = br.readLine()) != null) { result.append(output); diff --git a/Client/src/main/java/models/Id.java b/Client/src/main/java/models/Id.java index 67b9bf9..74375d0 100644 --- a/Client/src/main/java/models/Id.java +++ b/Client/src/main/java/models/Id.java @@ -9,6 +9,7 @@ public class Id { String userid; private Id(){} + //looks like this isnt used but required for object mapper public Id (String name, String githubId) { this.name = name; diff --git a/Client/src/main/java/models/Message.java b/Client/src/main/java/models/Message.java index 454aaed..5063521 100644 --- a/Client/src/main/java/models/Message.java +++ b/Client/src/main/java/models/Message.java @@ -19,6 +19,7 @@ public Message(String message, String fromid, String toid, String sequence, Stri } private Message(){} + //looks like this isnt used but required for object mapper public Message(String message, String fromid, String toid){ this(message, fromid, toid, "-", null); diff --git a/Client/src/main/java/utils/HelperMethods.java b/Client/src/main/java/utils/HelperMethods.java index 9b760b8..ac5068f 100644 --- a/Client/src/main/java/utils/HelperMethods.java +++ b/Client/src/main/java/utils/HelperMethods.java @@ -18,22 +18,26 @@ public static String getId(ArrayList ids, String github){ return userid; } - public static String buildMessage(List list){ - StringBuilder sb = new StringBuilder(); - Boolean inMsg = false; - for(String item : list){ - if(item.charAt(0) == '\''){ - sb.append(item); - inMsg = true; - }else if(inMsg){ - sb.append(" " + item); - }else if (item.charAt(item.length()-1) == '\''){ - inMsg = false; - sb.append(item); - break; - } - } - String output = sb.toString(); - return output.substring(1, output.length()-1); + public static String buildMessage(String commandLine) { + return commandLine.split("'")[1]; } + //another way to do the build message but the above is more efficient and below just doesnt work that well +// public static String buildMessage(List list){ +// StringBuilder sb = new StringBuilder(); +// Boolean inMsg = false; +// for(String item : list){ +// if(item.charAt(0) == '\''){ +// sb.append(item); +// inMsg = true; +// }else if(inMsg){ +// sb.append(" " + item); +// }else if (item.charAt(item.length()-1) == '\''){ +// inMsg = false; +// sb.append(item); +// break; +// } +// } +// String output = sb.toString(); +// return output.substring(1, output.length()-1); +// } } diff --git a/Client/src/main/java/youareell/YouAreEll.java b/Client/src/main/java/youareell/YouAreEll.java index d4a4c93..a8ed302 100644 --- a/Client/src/main/java/youareell/YouAreEll.java +++ b/Client/src/main/java/youareell/YouAreEll.java @@ -108,9 +108,9 @@ public ArrayList interpretMessages (List list){ return messages; } - public ArrayList interpretSendMessage(List list, String commandLine){ + public ArrayList interpretSendMessage(List list, String commandLine){ ArrayList messages = new ArrayList<>(); - String message = HelperMethods.buildMessage(list); + String message = HelperMethods.buildMessage(commandLine); if(commandLine.matches("send [A-Za-z0-9]+ '[A-Za-z0-9,. ]+'")){ messages.add(msgCtrl.postMessage(list.get(1), "", message));