From e69fd032420bd8f4924e41e6d5b4605fe0859bc9 Mon Sep 17 00:00:00 2001
From: Jesper Zedlitz <jesper@zedlitz.de>
Date: Wed, 24 Mar 2021 13:32:02 +0100
Subject: [PATCH] fehlenden mimetype tolerieren Dateiname bei resource-create
 richtig als UTF-8 senden

---
 pom.xml                                            | 2 +-
 src/main/java/de/landsh/opendata/ckan/CkanAPI.java | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/pom.xml b/pom.xml
index aa01f22..5b5f0bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
 
     <groupId>de.landsh.opendata</groupId>
     <artifactId>dcat-uploader</artifactId>
-    <version>1.0</version>
+    <version>1.0.2</version>
 
     <build>
         <plugins>
diff --git a/src/main/java/de/landsh/opendata/ckan/CkanAPI.java b/src/main/java/de/landsh/opendata/ckan/CkanAPI.java
index 928b9b4..657be12 100644
--- a/src/main/java/de/landsh/opendata/ckan/CkanAPI.java
+++ b/src/main/java/de/landsh/opendata/ckan/CkanAPI.java
@@ -328,7 +328,7 @@ public class CkanAPI {
         builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
         builder.setCharset(StandardCharsets.UTF_8);
         builder.addPart("package_id", new StringBody(packageId, ContentType.MULTIPART_FORM_DATA));
-        builder.addPart("name", new StringBody(name, ContentType.MULTIPART_FORM_DATA));
+        builder.addPart("name", new StringBody(name, ContentType.create("multipart/form-data", StandardCharsets.UTF_8)));
         builder.addPart("format", new StringBody(format, ContentType.MULTIPART_FORM_DATA));
         builder.addPart("upload", new FileBody(file, ContentType.create(mimeType), name));
         builder.addPart("hash", new StringBody(checksum, ContentType.MULTIPART_FORM_DATA));
@@ -365,7 +365,9 @@ public class CkanAPI {
             resource.setName(resourceJSON.getString("name"));
             resource.setChecksum(StringUtils.trimToNull(resourceJSON.getString("hash")));
             resource.setFormat(resourceJSON.getString("format"));
-            resource.setMimeType(resourceJSON.getString("mimetype"));
+            if (resourceJSON.has("mimetype") && !resourceJSON.isNull("mimetype")) {
+                resource.setMimeType(resourceJSON.getString("mimetype"));
+            }
             resource.setId(resourceJSON.getString("id"));
 
             resource.setByteSize(NumberUtils.toLong(Objects.toString(resourceJSON.get("size"))));
-- 
GitLab