Switching to jensmemeslib

This commit is contained in:
Timo Ley 2020-09-30 21:55:22 +02:00
parent 0ea846267f
commit 5a36834f38
6 changed files with 13 additions and 115 deletions

View file

@ -5,16 +5,20 @@ plugins {
}
group 'ley.jmclient'
version '1.0-SNAPSHOT'
version '1.0'
repositories {
mavenCentral()
maven {
url "https://data.tilera.xyz/maven"
}
}
dependencies {
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.12'
compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.5.3'
compile group: 'ley.jensmemes', name: 'jensmemeslib', version: '1.0-SNAPSHOT'
testCompile group: 'junit', name: 'junit', version: '4.12'
}

View file

@ -6,11 +6,13 @@ import javafx.event.ActionEvent;
import javafx.scene.Node;
import javafx.scene.control.*;
import javafx.stage.FileChooser;
import ley.jmclient.model.Category;
import ley.jmclient.model.CategoryResponse;
import ley.jmclient.model.UploadResponse;
import ley.jensmemes.HTTPClient;
import ley.jensmemes.model.Category;
import ley.jensmemes.model.response.CategoriesResponse;
import ley.jensmemes.model.response.UploadResponse;
import java.io.*;
import java.net.URISyntaxException;
public class Controller {
public ChoiceBox<Category> boxCat;
@ -49,7 +51,7 @@ public class Controller {
@Override
public void run() {
try {
CategoryResponse res = HTTPClient.categories();
CategoriesResponse res = HTTPClient.categories();
Platform.runLater(new Runnable() {
@Override
public void run() {
@ -60,7 +62,7 @@ public class Controller {
boxCat.setVisible(true);
}
});
} catch (IOException e) {
} catch (IOException | URISyntaxException e) {
Platform.runLater(new Runnable() {
@Override
public void run() {
@ -112,7 +114,7 @@ public class Controller {
}
}
});
} catch (IOException e) {
} catch (IOException | URISyntaxException e) {
showError(e.getLocalizedMessage());
}
}

View file

@ -1,39 +0,0 @@
package ley.jmclient;
import ley.jmclient.model.CategoryResponse;
import ley.jmclient.model.UploadResponse;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.File;
import java.io.IOException;
public class HTTPClient {
public static String UploadURL = "https://data.tilera.xyz/api/jensmemes/upload";
public static String CategoryURL = "https://data.tilera.xyz/api/jensmemes/categories";
public static UploadResponse upload(String token, String category, File image) throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpPost request = new HttpPost(UploadURL);
MultipartEntityBuilder mpbuild = MultipartEntityBuilder.create();
mpbuild.addTextBody("category", category);
mpbuild.addTextBody("token", token);
mpbuild.addBinaryBody("file", image);
request.setEntity(mpbuild.build());
HttpEntity response = client.execute(request).getEntity();
return UploadResponse.read(response.getContent());
}
public static CategoryResponse categories() throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet(CategoryURL);
HttpEntity response = client.execute(request).getEntity();
return CategoryResponse.read(response.getContent());
}
}

View file

@ -1,18 +0,0 @@
package ley.jmclient.model;
import com.google.gson.annotations.Expose;
public class Category {
@Expose
public String id;
@Expose
public String name;
@Override
public String toString() {
return name;
}
}

View file

@ -1,24 +0,0 @@
package ley.jmclient.model;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
public class CategoryResponse {
public static CategoryResponse read(InputStream json) {
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
return gson.fromJson(new InputStreamReader(json), CategoryResponse.class);
}
@Expose
public int status;
@Expose
public List<Category> categories;
}

View file

@ -1,27 +0,0 @@
package ley.jmclient.model;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
public class UploadResponse {
public static UploadResponse read(InputStream json) {
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
return gson.fromJson(new InputStreamReader(json), UploadResponse.class);
}
@Expose
public int status;
@Expose
public String error;
@Expose
public List<String> files;
}