in source/lambda/lib/dynamodb-handler.ts [155:202]
public async addConnection(connectionDefinition: ConnectionBuilderTypes.ConnectionDefinition): Promise<DynamoDBHandlerTypes.GetConnectionsItem> {
logger.log(LoggingLevel.DEBUG, `Adding a connection: ${JSON.stringify(connectionDefinition, null, 2)}`);
const timestamp = new Date().toISOString();
const params: DocumentClient.PutItemInput = {
TableName: this.connectionTable,
Item: {
connectionName: connectionDefinition.connectionName,
control: connectionDefinition.control,
protocol: connectionDefinition.protocol,
area: connectionDefinition.area,
machineName: connectionDefinition.machineName,
process: connectionDefinition.process,
sendDataToIoTSitewise: connectionDefinition.sendDataToIoTSitewise !== undefined ? connectionDefinition.sendDataToIoTSitewise : false,
sendDataToIoTTopic: connectionDefinition.sendDataToIoTTopic !== undefined ? connectionDefinition.sendDataToIoTTopic : false,
sendDataToKinesisDataStreams: connectionDefinition.sendDataToKinesisDataStreams !== undefined ? connectionDefinition.sendDataToKinesisDataStreams : true,
siteName: connectionDefinition.siteName,
timestamp: timestamp,
greengrassGroupId: this.greengrassGroupId
}
};
switch (connectionDefinition.protocol) {
case ConnectionBuilderTypes.MachineProtocol.OPCDA:
params.Item.opcDa = connectionDefinition.opcDa;
break;
case ConnectionBuilderTypes.MachineProtocol.OPCUA:
params.Item.opcUa = connectionDefinition.opcUa;
break;
default:
throw new LambdaError({
message: `Unsupported protocol: ${connectionDefinition.protocol}`,
name: 'DynamoDBHandlerError',
statusCode: 400
});
}
await dynamoDb.put(params).promise();
return {
connectionName: params.Item.connectionName,
protocol: params.Item.protocol,
status: params.Item.control,
sendDataToIoTSitewise: params.Item.sendDataToIoTSitewise,
sendDataToIoTTopic: params.Item.sendDataToIoTTopic,
sendDataToKinesisDataStreams: params.Item.sendDataToKinesisDataStreams,
machineName: params.Item.machineName
};
}