22 Aug 2018
Comparing AutoCAD Drawings with Forge Design Automation -2
This post is a continuation to my earlier post
This sample uses AWS S3 storage to host client files and initiates forge design automation to compare two AutoCAD drawings, results the output drawing back to client, the output drawing contains visual graphical difference.
Set up AWS S3 , the uploaded files are public readable, look at the 'acl' object.
const uploadToAws = multer({
storage: multerS3({
s3: s3,
acl: 'public-read',
bucket: config.credentials.aws_bucketname,
key: function (req, file, cb) {
console.log(file);
cb(null, file.originalname); //use Date.now() for unique file keys
}
})
});
Processing upload files to S3.
app.post('/upload', uploadToAws.array('upl1', 2), (req, res, next) => {
res.on('finish', () => {
console.log('response sent');
})
if (typeof req.files !== 'undefined' && req.files.length > 0) {
dwgFiles.dwg1 = req.files[0].location;
dwgFiles.dwg2 = req.files[1].location;
res.render('index',dwgFiles);
}
next();
});
Once the files are uploaded to S3, pass them on to Forge Design Automation
app.post('/creatWorkItem',function(req,res){
oAuth2TwoLegged.authenticate()
.then(function (credentials) {
submitWorkItem(dwgFiles, oAuth2TwoLegged, credentials)
.then(function (workItemResp){
console.log("*** workitem post response:", workItemResp.body);
var workItemId = workItemResp.body.Id;
res.json({ success: true, message: 'Submitted WorkItem Successfully!', workItemId: workItemId });
})
.catch(function (error){
console.error(error);
res.json({ success: false, message: 'Submitted WorkItem Failed!' });
res.status (500).end () ;
});
})
.catch(function(error){
console.error(error);
res.status(500).end() ;
});
});