in source/microservices/lib/deviceTypeManager.js [54:93]
async createDeviceType(deviceType) {
try {
let _id;
if (deviceType.typeId && deviceType.typeId !== 'idsAutoDemo') {
_id = deviceType.typeId;
} else {
const suffix = deviceType.typeId || ""
_id = nanoid(9) + suffix;
}
const date = new Date().toISOString();
let _deviceType = {
typeId: _id,
name: deviceType.name,
topic: deviceType.topic,
payload: deviceType.payload,
createdAt: date,
updatedAt: date
};
let params = {
TableName: process.env.DEVICE_TYPES_TBL,
Item: _deviceType
};
await docClient.put(params).promise();
if (process.env.SEND_ANONYMOUS_METRIC === 'Yes') {
let metricData = {
eventType: 'create device type',
};
metricData.uniquePayloadAttrs = deviceType.payload.reduce((acc, curValue) => {
if (!acc.includes(curValue.type)) acc.push(curValue.type);
return acc;
}, []);
await sendAnonymousMetric(metricData);
}
return (_deviceType);
} catch (err) {
console.error(err);
console.error(`Error occurred while attempting to create device type.`);
throw (err);
}
}