async createDeviceType()

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);
        }
    }