Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
target/
17 changes: 0 additions & 17 deletions .project

This file was deleted.

26 changes: 25 additions & 1 deletion Client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,33 @@
<groupId>com.zipcoder.ZipChat</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
<modelVersion>4.0.0</modelVersion>

<artifactId>Client</artifactId>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>

</project>
21 changes: 19 additions & 2 deletions Client/src/main/java/controllers/IdController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,23 @@

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.TreeMap;

import models.Id;
import views.IdTextView;
import youareell.Command;

public class IdController {
private HashMap<String, Id> allIds;

Id myId;
Id tmpId;

private TransactionController tctrl;

public IdController(TransactionController tt) {
this.tctrl = tt;
}
public ArrayList<Id> getIds() {
return null;
}
Expand All @@ -25,5 +34,13 @@ public Id postId(Id id) {
public Id putId(Id id) {
return null;
}


public void doCommand(Command cmd) {
if (cmd.getCmd() == Command.Verb.GETIDS) {
List<Id> ids = tctrl.getIds();
for (int i = 0; i < 10; i++) {
System.out.println(new IdTextView(ids.get(i)).toString());
}
}
}
}
37 changes: 34 additions & 3 deletions Client/src/main/java/controllers/MessageController.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,38 @@

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import models.Id;
import models.Message;
import views.IdTextView;
import views.MessageTextView;
import youareell.Command;

public class MessageController {

private TransactionController tctrl;

public MessageController(TransactionController tt) {
this.tctrl = tt;
}

private HashSet<Message> messagesSeen;
// why a HashSet??

public ArrayList<Message> getMessages() {
return null;
return new ArrayList<>(messagesSeen);
}
public ArrayList<Message> getMessagesForId(Id Id) {
return null;
ArrayList<Message> messages = new ArrayList<>();
ArrayList<Message> allMessages = getMessages();

for (Message m : allMessages){
if (m.getToid().equals(Id)){
messages.add(m);
}
}
return messages;
}
public Message getMessageForSequence(String seq) {
return null;
Expand All @@ -27,5 +45,18 @@ public ArrayList<Message> getMessagesFromFriend(Id myId, Id friendId) {
public Message postMessage(Id myId, Id toId, Message msg) {
return null;
}


public void doCommand(Command cmd) {
if (cmd.getCmd() == Command.Verb.GETMESG) {
List<Message> msgs = tctrl.getMessages();
for (int i = 0; i < 10; i++) {
System.out.println(new MessageTextView(msgs.get(i)).toString());
}
}
if (cmd.getCmd() == Command.Verb.POSTMSG) {
Message result = tctrl.postMessage(cmd.getArg(1), cmd.getArg(2), cmd.getRest(3));
System.out.println(new MessageTextView(result).toString());
}

}
}
41 changes: 22 additions & 19 deletions Client/src/main/java/controllers/ServerController.java
Original file line number Diff line number Diff line change
@@ -1,32 +1,35 @@
import spiffyUrlManipulator
package controllers;

public class ServerController() {


// Maybe I don't need this.
public class ServerController {
private String rootURL = "http://zipcode.rocks:8085";

private ServerController svr = new ServerController();

private ServerController() {}

public static shared() {
public ServerController shared() {
return svr;
}

public JsonString idGet() {
// url -> /ids/
// send the server a get with url
// return json from server
}
public JsonString idPost(Id) {
// url -> /ids/
// create json from Id
// request
// reply
// return json
}
public JsonString idPut(Id) {
// url -> /ids/
}

// public JsonString idGet() {
// // url -> /ids/
// // send the server a get with url
// // return json from server
// }
// public JsonString idPost(Id) {
// // url -> /ids/
// // create json from Id
// // request
// // reply
// // return json
// }
// public JsonString idPut(Id) {
// // url -> /ids/
// }
//

}

Expand Down
123 changes: 116 additions & 7 deletions Client/src/main/java/controllers/TransactionController.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,131 @@
package controllers;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import models.Id;
import models.Message;

import java.io.IOException;
import java.lang.reflect.Type;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TransactionController {
private String rootURL = "http://zipcode.rocks:8085";
private MessageController msgCtrl;
private IdController idCtrl;
private HttpClient client = HttpClient.newHttpClient();

public TransactionController(MessageController m, IdController j) {}

public TransactionController() {}

public String getIdsString() { //public List<Id> getIds() {
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(rootURL+"/ids"))
.GET()
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
return ""+response.body();
} catch (URISyntaxException | IOException | InterruptedException e) {
throw new RuntimeException(e);
}
}

public List<Id> getIds() {
String idsstring = this.getIdsString();
Gson gson = new Gson();
Type listType = new TypeToken<List<Id>>() {}.getType();
List<Id> idList = new Gson().fromJson(idsstring, listType);
return idList;
}
public List<Message> getMessages() {
String msgstring = this.getMessagesString();
Gson gson = new Gson();
Type listType = new TypeToken<List<Message>>() {}.getType();
List<Message> msgList = new Gson().fromJson(msgstring, listType);
return msgList;
}
public String getMessagesString() { //public List<Id> getIds() {
try {
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(rootURL+"/messages"))
.GET()
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
return ""+response.body();
} catch (URISyntaxException | IOException | InterruptedException e) {
throw new RuntimeException(e);
}
}

public Id postId(String name, String ghname) {
try {
Id newID = new Id(name,ghname);
Gson gson = new Gson();

String toSendId = gson.toJson(newID);
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(rootURL+"/ids"))
.POST(HttpRequest.BodyPublishers.ofString(toSendId))
.setHeader("Content-type", "application/json")
.build();
HttpResponse response = null;
response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
System.out.println("After POST " + response.body());

newID = gson.fromJson("" + response.body(), Id.class);
return newID;
} else {
System.out.println("Failure of POST" + response.statusCode());
}

} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
return new Id("failllll!!!","codeNoWork!!!!");
}
public String postId(String idtoRegister, String githubName) {
Id tid = new Id(idtoRegister, githubName);
tid = idCtrl.postId(tid);
return ("Id registered.");

public Message postMessage(String toHandle, String fromHandle, String messageBody) {
// well no, you do need to do *some* coding.
try {
Message newMsg = new Message(messageBody,fromHandle,toHandle);
Gson gson = new Gson();

String toSendId = gson.toJson(newMsg);
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI(rootURL+"/ids/"+fromHandle+"/messages"))
.POST(HttpRequest.BodyPublishers.ofString(toSendId))
.setHeader("Content-type", "application/json")
.build();
HttpResponse response = null;
response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 200) {
System.out.println("After POST " + response.body());

newMsg = gson.fromJson("" + response.body(), Message.class);
return newMsg;
} else {
System.out.println("Failure of POST" + response.statusCode());
System.out.println("Error: "+response.toString());
}
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}

return new Message("huh?", "what?", "zyzzy!!");
}
}
9 changes: 6 additions & 3 deletions Client/src/main/java/models/Id.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
package models;

/*
/*
* POJO for an Id object
*/
public class Id {
private String uid = "";
private String name = "";
private String github = "";

public Id (String name, String githubId) {}
public Id (String name, String githubId) {
this.name = name;
this.github = githubId;
}

public String getUid() {
return uid;
Expand Down Expand Up @@ -38,4 +41,4 @@ public void setGithub(String github) {
public String toString() {
return this.name + " (" + this.github + ") ";
}
}
}
Loading