diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/configuration/ApplicationConfiguration.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/configuration/ApplicationConfiguration.java index aa36473..88c0409 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/configuration/ApplicationConfiguration.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/configuration/ApplicationConfiguration.java @@ -3,6 +3,7 @@ package com.sap.tamagotchi.configuration; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import org.springframework.context.annotation.Bean; @@ -17,6 +18,7 @@ public class ApplicationConfiguration { objectMapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); return objectMapper; } } diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java index e86d36d..08a44fc 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java @@ -1,11 +1,14 @@ package com.sap.tamagotchi.controller; +import static com.sap.tamagotchi.model.Color.RED; +import static com.sap.tamagotchi.model.Color.YELLOW; import static org.springframework.http.ResponseEntity.ok; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import com.sap.tamagotchi.model.Color; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -27,6 +30,15 @@ public class DeviceController { this.tamagotchiService = tamagotchiService; } + private static Color mapColor(String productId) { + switch (productId) { + case "66VCHSJNUP": + return RED; + default: + return YELLOW; + } + } + @RequestMapping("/devices/{deviceId}") public Device getDevice(String deviceId) { return tamagotchiService.getDevice(deviceId); @@ -41,7 +53,7 @@ public class DeviceController { public ResponseEntity createDevice(@RequestBody Collection payload) { List devices = new ArrayList<>(); for (CreateDevicePayload p : payload) { - devices.add(tamagotchiService.createDevice(new Device(p.getOwner(), p.getColor()))); + devices.add(tamagotchiService.createDevice(new Device(p.getOwner(), mapColor(p.getProductId())))); } return ok(devices); } @@ -50,5 +62,4 @@ public class DeviceController { public String warmup() { return "warming up"; } - } diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/CreateDevicePayload.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/CreateDevicePayload.java index b9f4774..52f9782 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/CreateDevicePayload.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/CreateDevicePayload.java @@ -4,22 +4,22 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; public class CreateDevicePayload { - private final String owner; - private final Color color; + private final String userId; + private final String productId; @JsonCreator - public CreateDevicePayload(@JsonProperty("owner") String owner, @JsonProperty("color") Color color) { - this.owner = owner; - this.color = color; + public CreateDevicePayload(@JsonProperty("userId") String userId, @JsonProperty("productId") String productId) { + this.userId = userId; + this.productId = productId; } - @JsonProperty("owner") + @JsonProperty("userId") public String getOwner() { - return owner; + return userId; } - @JsonProperty("color") - public Color getColor() { - return color; + @JsonProperty("productId") + public String getProductId() { + return productId; } }