Code for deleting and creating records in bulk
const AWS = require('aws-sdk');
const Sequelize = require('sequelize');
AWS
.config
.update({accessKeyId: process.env.ACCESS_KEY, secretAccessKey: process.env.SECRET_KEY, region: process.env.REGION});
// const sequelize = new Sequelize(process.env.DATABASE_NAME,
// process.env.DATABASE_USERNAME, process.env.DATABASE_PASSWORD, { host:
// process.env.DATABASE_HOST, dialect: 'postgres', operatorsAliases: false,
// pool: { max: 5, min: 0, acquire: 30000, idle: 10000 } });
let failureResponse = {
statusCode: 500,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
},
body: JSON.stringify({message: 'Something went wrong', dataFetched: false})
};
let successResponse = {
statusCode: 200,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*"
},
body: null
};
exports.handler = (event, context, callback) => {
event.body = JSON.parse(event.body);
console.log('event.body ', event.body)
var body = {
reportid: event.body.reportid,
userid: event.body.userid,
accountid: event.body.accountid
}
const sequelize = new Sequelize(process.env.DATABASE_NAME, process.env.DATABASE_USERNAME, process.env.DATABASE_PASSWORD, {
host: process.env.DATABASE_HOST,
port: 5432,
logging: console.log,
maxConcurrentQueries: 100,
dialect: 'postgres',
dialectOptions: {
ssl: 'Amazon RDS'
},
pool: {
maxConnections: 5,
maxIdleTime: 30
},
language: 'en'
});
const Userreport = sequelize.define('userreport', {
userid: {
type: Sequelize.STRING
},
accountid: {
type: Sequelize.INTEGER
},
reportid: {
type: Sequelize.STRING
}
}, {
tableName: 'user_report',
timestamps: false
});
Userreport.removeAttribute('id');
try {
Userreport
.destroy({
where: {
reportid: body.reportid,
accountid: body.accountid
}
})
.then(data => {
console.log('After DELETE operation', data);
let userIdArr = body.userid;
let bulkJsonObj = userIdArr.map((item, index) => {
let jsonObj = {
reportid: body.reportid,
userid: item,
accountid: body.accountid
};
return jsonObj;
})
console.log('bulkJsonObj', bulkJsonObj)
Userreport
.bulkCreate(bulkJsonObj)
.then((users) => {
console.log('Users', users)
successResponse.body = {
data: users,
dataUpdated: true,
message: 'User Reports are updated successfully.'
};
successResponse.body = JSON.stringify(successResponse.body);
sequelize.close();
return callback(null, successResponse);
})
.catch(error => {
console.log('error in creating bulk user_report mappings', error);
sequelize.close();
failureResponse.body = JSON.stringify(failureResponse.body);
return callback(null, failureResponse);
});
})
.catch(error => {
console.log('error', error);
sequelize.close();
failureResponse.body = JSON.stringify(failureResponse.body);
return callback(null, failureResponse);
});
} catch (error) {
console.log('error', error);
sequelize.close();
failureResponse.body = JSON.stringify(failureResponse.body);
}
};