the-social-notebook-server/server/fileRouter.js

63 lines
1.5 KiB
JavaScript

var express = require('express');
var router = express.Router();
var utils = require('./utils');
// var bucket = require('./storageManager');
var uuid = require('node-uuid');
var fs = require('fs');
var imgur = require('imgur-node-api');
imgur.setClientID('d694242fc19e1a8');
var gcloud = require('gcloud');
var path = require('path');
var gcs = gcloud.storage({
projectId: 'thesocialnotework-api'
});
var bucket = gcs.bucket('avatars-bucket');
router.post('/upload', (req, res) => {
if (!req.body || !req.body.image) {
utils.response_400(res, {
image: 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAA..kJggg=='
}, "image data should ba an image Based64 format");
return;
}
var file_ending = req.body.image.split('/')[1].split(';')[0];
var image_name = uuid.v4() + '.' + file_ending;
var file_path = path.join(__dirname, '..', '/Images/', image_name);
var data = req.body.image.replace(/^data:image\/\w+;base64,/, '');
// var fd = fs.openSync(path.join(__dirname, '..', '/Images/', image_name), 'w');
//
fs.writeFile(file_path, data, {
encoding: 'base64'
}, function (err) {
//Finished
if (err)
res.send({
status: "Error",
image_url: null
});
else {
imgur.upload(file_path, function (err, _res) {
console.log(_res.data.link);
res.send({
status: 'OK',
image_url: _res.data.link
});
});
}
});
//
// });
// });
});
module.exports = router;