Commit f325448846a92d7a3ff5a1fdcdc8e3e3f09aff65
1 parent
1980b078
Improve initial device data generation
Showing
1 changed file
with
28 additions
and
19 deletions
@@ -176,27 +176,8 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -176,27 +176,8 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
176 | deviceProfile = this.deviceProfileService.findOrCreateDeviceProfile(device.getTenantId(), device.getType()); | 176 | deviceProfile = this.deviceProfileService.findOrCreateDeviceProfile(device.getTenantId(), device.getType()); |
177 | } else { | 177 | } else { |
178 | deviceProfile = this.deviceProfileService.findDefaultDeviceProfile(device.getTenantId()); | 178 | deviceProfile = this.deviceProfileService.findDefaultDeviceProfile(device.getTenantId()); |
179 | - device.setType(deviceProfile.getName()); | ||
180 | } | 179 | } |
181 | device.setDeviceProfileId(new DeviceProfileId(deviceProfile.getId().getId())); | 180 | device.setDeviceProfileId(new DeviceProfileId(deviceProfile.getId().getId())); |
182 | - DeviceData deviceData = new DeviceData(); | ||
183 | - switch (deviceProfile.getType()) { | ||
184 | - case DEFAULT: | ||
185 | - deviceData.setConfiguration(new DefaultDeviceConfiguration()); | ||
186 | - break; | ||
187 | - } | ||
188 | - switch (deviceProfile.getTransportType()) { | ||
189 | - case DEFAULT: | ||
190 | - deviceData.setTransportConfiguration(new DefaultDeviceTransportConfiguration()); | ||
191 | - break; | ||
192 | - case MQTT: | ||
193 | - deviceData.setTransportConfiguration(new MqttDeviceTransportConfiguration()); | ||
194 | - break; | ||
195 | - case LWM2M: | ||
196 | - deviceData.setTransportConfiguration(new Lwm2mDeviceTransportConfiguration()); | ||
197 | - break; | ||
198 | - } | ||
199 | - device.setDeviceData(deviceData); | ||
200 | } else { | 181 | } else { |
201 | deviceProfile = this.deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); | 182 | deviceProfile = this.deviceProfileService.findDeviceProfileById(device.getTenantId(), device.getDeviceProfileId()); |
202 | if (deviceProfile == null) { | 183 | if (deviceProfile == null) { |
@@ -204,6 +185,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -204,6 +185,7 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
204 | } | 185 | } |
205 | } | 186 | } |
206 | device.setType(deviceProfile.getName()); | 187 | device.setType(deviceProfile.getName()); |
188 | + device.setDeviceData(syncDeviceData(deviceProfile, device.getDeviceData())); | ||
207 | 189 | ||
208 | savedDevice = deviceDao.save(device.getTenantId(), device); | 190 | savedDevice = deviceDao.save(device.getTenantId(), device); |
209 | } catch (Exception t) { | 191 | } catch (Exception t) { |
@@ -224,6 +206,33 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | @@ -224,6 +206,33 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe | ||
224 | return savedDevice; | 206 | return savedDevice; |
225 | } | 207 | } |
226 | 208 | ||
209 | + private DeviceData syncDeviceData(DeviceProfile deviceProfile, DeviceData deviceData) { | ||
210 | + if (deviceData == null) { | ||
211 | + deviceData = new DeviceData(); | ||
212 | + } | ||
213 | + if (deviceData.getConfiguration() == null || !deviceProfile.getType().equals(deviceData.getConfiguration().getType())) { | ||
214 | + switch (deviceProfile.getType()) { | ||
215 | + case DEFAULT: | ||
216 | + deviceData.setConfiguration(new DefaultDeviceConfiguration()); | ||
217 | + break; | ||
218 | + } | ||
219 | + } | ||
220 | + if (deviceData.getTransportConfiguration() == null || !deviceProfile.getTransportType().equals(deviceData.getTransportConfiguration().getType())) { | ||
221 | + switch (deviceProfile.getTransportType()) { | ||
222 | + case DEFAULT: | ||
223 | + deviceData.setTransportConfiguration(new DefaultDeviceTransportConfiguration()); | ||
224 | + break; | ||
225 | + case MQTT: | ||
226 | + deviceData.setTransportConfiguration(new MqttDeviceTransportConfiguration()); | ||
227 | + break; | ||
228 | + case LWM2M: | ||
229 | + deviceData.setTransportConfiguration(new Lwm2mDeviceTransportConfiguration()); | ||
230 | + break; | ||
231 | + } | ||
232 | + } | ||
233 | + return deviceData; | ||
234 | + } | ||
235 | + | ||
227 | @Override | 236 | @Override |
228 | public Device assignDeviceToCustomer(TenantId tenantId, DeviceId deviceId, CustomerId customerId) { | 237 | public Device assignDeviceToCustomer(TenantId tenantId, DeviceId deviceId, CustomerId customerId) { |
229 | Device device = findDeviceById(tenantId, deviceId); | 238 | Device device = findDeviceById(tenantId, deviceId); |