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
24 changes: 24 additions & 0 deletions java/Attribute.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package java;

/**
* Created by: Niklas
* Date: 06.03.2018
* Alias: Dinh
* Time: 12:07
*/

public class Attribute {

private String task;
private int amount;

Attribute(String task, int amount) {
this.amount = amount;
this.task = task;
}

@Override
public String toString() {
return "{\"task\":\"" + task + "\",\"amount\":" + amount + "}";
}
}
46 changes: 46 additions & 0 deletions java/FormDataBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package java;

/**
* Created by: Niklas
* Date: 02.03.2018
* Alias: Dinh
* Time: 14:10
*/

public class FormDataBuilder {
private StringBuilder builder = new StringBuilder();
private DataBuilder data = new DataBuilder(this);
private String url;

class DataBuilder {
private FormDataBuilder formDataBuilder;

DataBuilder(FormDataBuilder formDataBuilder) {
this.formDataBuilder = formDataBuilder;
}

DataBuilder append(String key, String value) {
builder.append(key).append("=").append(value).append("&");
return this;
}

FormDataBuilder get() {
return formDataBuilder;
}
}

FormDataBuilder(String url) {
this.url = url;
builder.append("?");
}

DataBuilder getBuilder() {
return data;
}

@Override
public String toString() {
String current = builder.toString();
return url + current.substring(0, current.length() - 1);
}
}
28 changes: 28 additions & 0 deletions java/PostBuilder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package java;

/**
* Created by: Niklas
* Date: 06.03.2018
* Alias: Dinh
* Time: 12:36
*/

public class PostBuilder {

private StringBuilder builder = new StringBuilder("{\"commit\":{ \"script_id\":\"\",\"user_id\":\"\",\"runtime\":,\"stats_attributes\":[]}}");

PostBuilder(String script_id, String user_id, String runtime, Attribute... attributes) {
for (Attribute attribute : attributes) {
builder.insert(71, "," + attribute.toString());
}
builder.replace(71, 72, "");
builder.insert(50, runtime);
builder.insert(38, user_id);
builder.insert(25, script_id);
}

@Override
public String toString() {
return builder.toString();
}
}
46 changes: 46 additions & 0 deletions java/PostUtility.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package java;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

/**
* Created by: Niklas
* Date: 06.03.2018
* Alias: Dinh
* Time: 12:07
*/

public class PostUtility implements Runnable {


private final String ENDPOINT = "http://pure-woodland-47666.herokuapp.com/api/v1/commits";

private PostBuilder post;

public PostUtility(String script_id, String user_id, String runtime, Attribute... attributes) throws NumberFormatException {
if (!runtime.matches("([0-9]*\\.[0-9]+|[0-9]+)")) {
throw new NumberFormatException(runtime + " is not a valid floating point number");
}
post = new PostBuilder(script_id, user_id, runtime, attributes);
}


@Override
public void run() {
FormDataBuilder builder = new FormDataBuilder(ENDPOINT).getBuilder().append("user_email", "mail").append("user_token", "token").get();
URLConnection connection;
try {
connection = new URL(builder.toString()).openConnection();
connection.setDoOutput(true);

DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.writeBytes(post.toString());
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}