From 285e5b94b9ccfed9542170d725414d97b2fb6d82 Mon Sep 17 00:00:00 2001
From: Tamas Bunth <tamas.bunth@collabora.co.uk>
Date: Sat, 3 Mar 2018 15:32:22 +0100
Subject: [PATCH] Fix Rest API: no wrapper needed

---
 src/main/kotlin/mobildata/ApiApplication.kt   | 24 +++++++++++++++++++
 src/main/kotlin/mobildata/client/TagClient.kt | 11 ---------
 .../mobildata/client/response/OutTag.kt       |  3 ---
 .../kotlin/mobildata/model/inout/Register.kt  |  2 ++
 .../kotlin/mobildata/ApiApplicationTests.kt   |  1 -
 5 files changed, 26 insertions(+), 15 deletions(-)
 delete mode 100644 src/main/kotlin/mobildata/client/TagClient.kt
 delete mode 100644 src/main/kotlin/mobildata/client/response/OutTag.kt

diff --git a/src/main/kotlin/mobildata/ApiApplication.kt b/src/main/kotlin/mobildata/ApiApplication.kt
index 0d79b06..ab1474d 100644
--- a/src/main/kotlin/mobildata/ApiApplication.kt
+++ b/src/main/kotlin/mobildata/ApiApplication.kt
@@ -1,7 +1,13 @@
 package mobildata
 
+import com.fasterxml.jackson.annotation.JsonRootName
+import com.fasterxml.jackson.core.JsonParseException
+import com.fasterxml.jackson.core.JsonParser
+import com.fasterxml.jackson.databind.*
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module
 import mobildata.jwt.ExposeResponseInterceptor
 import org.springframework.boot.SpringApplication
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration
 import org.springframework.boot.autoconfigure.SpringBootApplication
 import org.springframework.cache.annotation.EnableCaching
 import org.springframework.context.annotation.Bean
@@ -9,10 +15,15 @@ import org.springframework.context.annotation.Configuration
 import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
 import org.springframework.validation.beanvalidation.MethodValidationPostProcessor
 import org.springframework.web.servlet.config.annotation.*
+import com.fasterxml.jackson.annotation.JsonInclude
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
+
+
 
 
 @Configuration
 @EnableCaching
+@EnableAutoConfiguration
 @SpringBootApplication
 class ApiApplication : WebMvcConfigurer {
 
@@ -52,6 +63,19 @@ class ApiApplication : WebMvcConfigurer {
 
     @Bean
     fun validator() = LocalValidatorFactoryBean()
+
+
+    @Bean
+    fun objectMapperBuilder(): Jackson2ObjectMapperBuilder {
+        val builder = Jackson2ObjectMapperBuilder()
+        val mapper = ObjectMapper()
+        mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false)
+        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true)
+        mapper.registerModule(Jdk8Module())
+        builder.configure(mapper)
+        return builder
+    }
+
 }
 
 fun main(args: Array<String>) {
diff --git a/src/main/kotlin/mobildata/client/TagClient.kt b/src/main/kotlin/mobildata/client/TagClient.kt
deleted file mode 100644
index c87fded..0000000
--- a/src/main/kotlin/mobildata/client/TagClient.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package mobildata.client
-
-import feign.Headers
-import feign.RequestLine
-import mobildata.client.response.OutTag
-
-interface TagClient {
-    @RequestLine("GET /api/tags")
-    @Headers("Content-Type: application/json")
-    fun tags(): OutTag
-}
diff --git a/src/main/kotlin/mobildata/client/response/OutTag.kt b/src/main/kotlin/mobildata/client/response/OutTag.kt
deleted file mode 100644
index 0c42ec8..0000000
--- a/src/main/kotlin/mobildata/client/response/OutTag.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package mobildata.client.response
-
-data class OutTag(var tags: List<String> = listOf())
diff --git a/src/main/kotlin/mobildata/model/inout/Register.kt b/src/main/kotlin/mobildata/model/inout/Register.kt
index 4330448..3b61894 100644
--- a/src/main/kotlin/mobildata/model/inout/Register.kt
+++ b/src/main/kotlin/mobildata/model/inout/Register.kt
@@ -5,6 +5,8 @@ import javax.validation.constraints.NotNull
 import javax.validation.constraints.Pattern
 import javax.validation.constraints.Size
 
+
+
 @JsonRootName("user")
 class Register {
     @NotNull(message = "can't be missing")
diff --git a/src/test/kotlin/mobildata/ApiApplicationTests.kt b/src/test/kotlin/mobildata/ApiApplicationTests.kt
index d1fb107..f196c33 100644
--- a/src/test/kotlin/mobildata/ApiApplicationTests.kt
+++ b/src/test/kotlin/mobildata/ApiApplicationTests.kt
@@ -4,7 +4,6 @@ import feign.Feign
 import feign.gson.GsonDecoder
 import feign.gson.GsonEncoder
 import mobildata.client.ProfileClient
-import mobildata.client.TagClient
 import mobildata.client.UserClient
 import mobildata.client.response.InLogin
 import mobildata.client.response.InRegister
-- 
GitLab