From 0e592a3a0ace4a9d716706916e097bb0ce74c241 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 14 May 2017 18:03:05 +0200
Subject: [PATCH] Fixed #85 - import database from client

---
 .../budgetmaster/logic/ServerConnection.java  | 42 +++++++++++--------
 .../server/database/DatabaseImport.java       |  2 +-
 2 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java
index 4759378f4..45d03440d 100644
--- a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java
+++ b/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java
@@ -3,6 +3,7 @@ package de.deadlocker8.budgetmaster.logic;
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.PrintWriter;
 import java.lang.reflect.Type;
 import java.net.URL;
 import java.security.cert.X509Certificate;
@@ -405,23 +406,30 @@ public class ServerConnection
 
 	public void importDatabase(Database database) throws Exception
 	{
-		//TODO
-//		String databaseJSON = new Gson().toJson(database);
-//		
-//		URL url = new URL(settings.getUrl() + "/database?secret=" + Helpers.getURLEncodedString(settings.getSecret()));
-//		HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection();
-//		httpsCon.setRequestMethod("POST");
-//		httpsCon.setDoInput(true);	
-//		if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK)
-//		{
-//			InputStream stream = httpsCon.getInputStream();
-//			BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
-//			reader.close();
-//		}
-//		else
-//		{
-//			throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode()));
-//		}
+		String databaseJSON = new Gson().toJson(database);
+		
+		URL url = new URL(settings.getUrl() + "/database?secret=" + Helpers.getURLEncodedString(settings.getSecret()));
+		HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection();
+		httpsCon.setRequestMethod("POST");
+		httpsCon.setRequestProperty("Content-Type", "application/json");
+		httpsCon.setRequestProperty("Accept", "application/json");		
+		httpsCon.setDoInput(true);
+		httpsCon.setDoOutput(true);
+		PrintWriter writer = new PrintWriter(httpsCon.getOutputStream());
+		writer.write(databaseJSON);
+		writer.flush();
+		writer.close();
+		
+		if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK)
+		{
+			InputStream stream = httpsCon.getInputStream();
+			BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
+			reader.close();
+		}
+		else
+		{
+			throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode()));
+		}
 	}
 	
 	/*
diff --git a/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java b/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java
index d3962efeb..20907d3c3 100644
--- a/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java
+++ b/src/de/deadlocker8/budgetmasterserver/server/database/DatabaseImport.java
@@ -26,7 +26,7 @@ public class DatabaseImport implements Route
 	@Override
 	public Object handle(Request req, Response res) throws Exception
 	{	
-		String databaseJSON = req.body();
+		String databaseJSON = req.body();		
 		
 		try
 		{
-- 
GitLab