2013-12-09 11:45:15 +01:00
/ * *
* Copyright 2013 Wolfgang Nagele
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
* * /
var RED = require ( process . env . NODE _RED _HOME + "/red/red" ) ;
var util = require ( "util" ) ;
var aws = require ( "aws-sdk" ) ;
var attrWrapper = require ( "dynamodb-data-types" ) . AttributeValue ;
function DDBOutNode ( n ) {
RED . nodes . createNode ( this , n ) ;
2014-10-14 18:49:59 +02:00
this . warn ( "This node has been deprecated and will be deleted in a future release. Please update your flow to use the version from npm. Note: you cannot have both this and the npm version installed at the same time." ) ;
2013-12-19 03:07:40 +01:00
this . credentials = RED . nodes . getNode ( n . credentials ) ;
2013-12-09 11:45:15 +01:00
this . region = n . region || "us-east-1" ;
this . table = n . table ;
2013-12-19 03:07:40 +01:00
aws . config . update ( { accessKeyId : this . credentials . accessKey ,
secretAccessKey : this . credentials . secretAccessKey ,
2013-12-09 11:45:15 +01:00
region : this . region } ) ;
var ddb = new aws . DynamoDB ( ) ;
this . on ( "input" , function ( msg ) {
2014-09-08 22:42:16 +02:00
ddb . putItem ( { "TableName" : this . table ,
"Item" : attrWrapper . wrap ( msg . payload ) } ,
2013-12-09 11:45:15 +01:00
function ( err , data ) {
2014-07-25 11:09:35 +02:00
if ( err ) { util . log ( err ) ; }
2014-09-08 22:42:16 +02:00
} ) ;
2013-12-09 11:45:15 +01:00
} ) ;
}
RED . nodes . registerType ( "ddb out" , DDBOutNode ) ;