add product id
This commit is contained in:
parent
f70c18694c
commit
620aac9b67
6 changed files with 37 additions and 43 deletions
|
@ -1,5 +1,8 @@
|
|||
package com.sap.tamagotchi.controller;
|
||||
|
||||
import static com.sap.tamagotchi.model.Color.BLUE;
|
||||
import static com.sap.tamagotchi.model.Color.PINK;
|
||||
import static com.sap.tamagotchi.model.Color.PURPLE;
|
||||
import static com.sap.tamagotchi.model.Color.RED;
|
||||
import static com.sap.tamagotchi.model.Color.YELLOW;
|
||||
import static org.springframework.http.ResponseEntity.ok;
|
||||
|
@ -32,8 +35,18 @@ public class DeviceController {
|
|||
|
||||
private static Color mapColor(String productId) {
|
||||
switch (productId) {
|
||||
case "66VCHSJNUP":
|
||||
case "0000000001":
|
||||
return BLUE;
|
||||
case "0000000002":
|
||||
return RED;
|
||||
case "0000000003":
|
||||
return YELLOW;
|
||||
case "0000000004":
|
||||
return BLUE;
|
||||
case "0000000005":
|
||||
return PURPLE;
|
||||
case "0000000006":
|
||||
return PINK;
|
||||
default:
|
||||
return YELLOW;
|
||||
}
|
||||
|
@ -53,7 +66,7 @@ public class DeviceController {
|
|||
public ResponseEntity createDevice(@RequestBody Collection<CreateDevicePayload> payload) {
|
||||
List<Device> devices = new ArrayList<>();
|
||||
for (CreateDevicePayload p : payload) {
|
||||
devices.add(tamagotchiService.createDevice(new Device(p.getOwner(), mapColor(p.getProductId()))));
|
||||
devices.add(tamagotchiService.createDevice(new Device(p.getProductId(), p.getOwner(), mapColor(p.getProductId()))));
|
||||
}
|
||||
return ok(devices);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package com.sap.tamagotchi.model;
|
||||
|
||||
public enum Color {
|
||||
RED, YELLOW, BLUE, GREEN
|
||||
RED, YELLOW, BLUE, GREEN, PURPLE, PINK
|
||||
}
|
||||
|
|
|
@ -14,6 +14,8 @@ public class Device {
|
|||
|
||||
@JsonProperty("id")
|
||||
private final String id = UUID.randomUUID().toString();
|
||||
@JsonProperty("productId")
|
||||
private final String productId;
|
||||
@JsonProperty("owner")
|
||||
private final String owner;
|
||||
@JsonProperty("color")
|
||||
|
@ -24,7 +26,8 @@ public class Device {
|
|||
private int healthScore = 100;
|
||||
private final Queue<IoTMessage> messages = new ConcurrentLinkedQueue<>();
|
||||
|
||||
public Device(String owner, Color color) {
|
||||
public Device(String productId, String owner, Color color) {
|
||||
this.productId = productId;
|
||||
this.owner = owner;
|
||||
this.color = color;
|
||||
}
|
||||
|
@ -34,6 +37,11 @@ public class Device {
|
|||
return id;
|
||||
}
|
||||
|
||||
@JsonProperty("productId")
|
||||
public String getProductId() {
|
||||
return productId;
|
||||
}
|
||||
|
||||
@JsonProperty("owner")
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
|
@ -70,9 +78,9 @@ public class Device {
|
|||
|
||||
if (healthScore < 1) {
|
||||
healthScore = 0;
|
||||
messages.add(new DeviceEvent(id, owner, color, born, healthScore, oldScore, Instant.now()));
|
||||
messages.add(new DeviceEvent(id, productId, owner, color, born, healthScore, oldScore, Instant.now()));
|
||||
} else
|
||||
messages.add(new DeviceEvent(id, owner, color, born, healthScore, null, Instant.now()));
|
||||
messages.add(new DeviceEvent(id, productId, owner, color, born, healthScore, null, Instant.now()));
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
|
|
|
@ -11,6 +11,8 @@ public class DeviceEvent implements IoTMessage {
|
|||
|
||||
@JsonProperty("id")
|
||||
private final String id;
|
||||
@JsonProperty("productId")
|
||||
private final String productId;
|
||||
@JsonProperty("owner")
|
||||
private final String owner;
|
||||
@JsonProperty("color")
|
||||
|
@ -24,8 +26,9 @@ public class DeviceEvent implements IoTMessage {
|
|||
@JsonProperty("eventTime")
|
||||
private final Instant eventTime;
|
||||
|
||||
public DeviceEvent(String id, String owner, Color color, Instant born, Integer healthScore, Integer lastHealthScore, Instant eventTime) {
|
||||
public DeviceEvent(String id, String productId, String owner, Color color, Instant born, Integer healthScore, Integer lastHealthScore, Instant eventTime) {
|
||||
this.id = id;
|
||||
this.productId = productId;
|
||||
this.owner = owner;
|
||||
this.color = color;
|
||||
this.born = born;
|
||||
|
@ -39,6 +42,11 @@ public class DeviceEvent implements IoTMessage {
|
|||
return id;
|
||||
}
|
||||
|
||||
@JsonProperty("productId")
|
||||
public String getProductId() {
|
||||
return productId;
|
||||
}
|
||||
|
||||
@JsonProperty("owner")
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
|
|
|
@ -92,7 +92,7 @@ public class TamagotchiService {
|
|||
|
||||
private void sendTamagotchiDefunctNotifiction(String id) {
|
||||
|
||||
Device device = deviceRegistry.get(id);
|
||||
_ Device device = deviceRegistry.get(id);
|
||||
if (device == null || device.getId() == null || device.getOwner() == null) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,40 +1,5 @@
|
|||
/**
|
||||
* Copyright (c) 2019, SAP SE, All rights reserved.
|
||||
*/
|
||||
package com.sap.tamagotchi.model;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.mockito.Mockito.when;
|
||||
import java.util.Collection;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import com.sap.tamagotchi.service.TamagotchiService;;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest
|
||||
public class OwnerTest {
|
||||
|
||||
@Autowired
|
||||
Owner owner;
|
||||
|
||||
@MockBean
|
||||
TamagotchiService tamagotchiService;
|
||||
|
||||
Collection<Device> mockDevices;
|
||||
|
||||
// @Before
|
||||
// public void init() {
|
||||
// MockitoAnnotations.initMocks(this);
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void testIt() {
|
||||
when(tamagotchiService.getDevices()).thenReturn(asList(new Device("elisa@sap.com", Color.BLUE)));
|
||||
owner.setData();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue