diff --git a/src/main/kotlin/mobildata/client/MobilDataClient.kt b/src/main/kotlin/mobildata/client/MobilDataClient.kt new file mode 100644 index 0000000000000000000000000000000000000000..05abb6872da5abf2abb61be6ccf82c532b699d02 --- /dev/null +++ b/src/main/kotlin/mobildata/client/MobilDataClient.kt @@ -0,0 +1,19 @@ +package mobildata.client + +import feign.Headers +import feign.Param +import feign.RequestLine +import mobildata.model.User +import mobildata.model.inout.Login +import mobildata.model.inout.MobilDataIn +import mobildata.model.inout.Register +import org.springframework.web.bind.annotation.RequestBody +import org.springframework.web.bind.annotation.RequestHeader +import org.springframework.web.bind.annotation.RequestMapping + +@Headers("Content-Type: application/json") +interface MobilDataClient { + @RequestLine("POST /api/data") + fun dataInput(@Param("Authorization") token:String, @RequestBody mobilIn: MobilDataIn) + +} diff --git a/src/main/kotlin/mobildata/model/User.kt b/src/main/kotlin/mobildata/model/User.kt index f1368f801209902f386ddd16331be89204aee9e9..695a435603e1df6258aa302c1eb78f60fac970d9 100644 --- a/src/main/kotlin/mobildata/model/User.kt +++ b/src/main/kotlin/mobildata/model/User.kt @@ -18,7 +18,7 @@ data class User(var email: String = "", var password: String = "", var token: String = "", @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/mm/yyyy") - var birthDate: Date = Date(), + var birthDate: Date? = null, var deviceType: String = "", // TODO type var androidVersion: Int? = null, @Id @GeneratedValue(strategy = GenerationType.AUTO) diff --git a/src/test/kotlin/mobildata/ApiApplicationTests.kt b/src/test/kotlin/mobildata/ApiApplicationTests.kt index dd8f406198694e90441d6231f7507af7470d8cf6..3fc8c9a671964d169858e0cb31e9e3755f8d8d76 100644 --- a/src/test/kotlin/mobildata/ApiApplicationTests.kt +++ b/src/test/kotlin/mobildata/ApiApplicationTests.kt @@ -3,8 +3,11 @@ package mobildata import feign.Feign import feign.gson.GsonDecoder import feign.gson.GsonEncoder +import mobildata.client.MobilDataClient import mobildata.client.UserClient +import mobildata.model.LocationData import mobildata.model.inout.Login +import mobildata.model.inout.MobilDataIn import mobildata.model.inout.Register import org.hamcrest.Matchers import org.junit.Assert @@ -25,6 +28,7 @@ class ApiApplicationTests { @Autowired var environment: Environment? = null var userClient: UserClient? = null + var dataClient: MobilDataClient? = null fun <T> buildClient(t: Class<T>): T { environment.let { @@ -38,6 +42,7 @@ class ApiApplicationTests { @Before fun before() { userClient = buildClient(UserClient::class.java) + dataClient = buildClient(MobilDataClient::class.java) } @Test @@ -61,6 +66,18 @@ class ApiApplicationTests { Assert.assertEquals("bar@bar.com", barLogin?.email) Assert.assertThat(barLogin?.token, Matchers.notNullValue()) println("Login bar OK") + + // cannot do that + // feign does not support dynamic header parameter, if there is already a body parameter (bug) + + //dataClient?.dataInput(barLogin!!.token ,MobilDataIn(location = LocationData(34.5, 45.6), sleepTime = 21, isNfcOn = true, + // isWifiOn = false, brightness = 23, battery = 98, isMobilDataOn = false, isBluetoothOn = false)) + + } + + @Test + fun sendData() { + Url url = Url( "https://api.github.com/users/" } }