forked from projects/fipamo
172 lines
4.5 KiB
JavaScript
172 lines
4.5 KiB
JavaScript
var express = require('express');
|
|
import DateUtils from '../../tools/utilities/DateUtils';
|
|
import StringUtils from '../../tools/utilities/StringUtils';
|
|
import RightsManager,
|
|
{
|
|
TASK_CREATE,
|
|
TASK_UPDATE,
|
|
TASK_READ,
|
|
TASK_DELETE,
|
|
OBJECT_CLIENT_ADMIN,
|
|
OBJECT_CLIENT_USER,
|
|
OBJECT_PROJECT_CLIENT,
|
|
OBJECT_PROJECT_FOLIO,
|
|
OBJECT_BOOKMARK,
|
|
OBJECT_POST
|
|
}
|
|
from '../../tools/utilities/RightsManager';
|
|
var router = express.Router();
|
|
var multer = require('multer');
|
|
var fs = require('fs-extra');
|
|
var Models = require('../../models');
|
|
const dateUtils = new DateUtils();
|
|
const rightsManager = new RightsManager();
|
|
var uploadPath = "./content/blog-images/" + dateUtils.getDate('year', new Date()) + "/" + dateUtils.getDate('month', new Date());
|
|
var Sequelize = require('sequelize');
|
|
const Op = Sequelize.Op;
|
|
var _ = require('lodash');
|
|
fs.ensureDir(uploadPath, function(err)
|
|
{
|
|
//console.log(err) // => null
|
|
// dir has now been created, including the directory it is to be placed in
|
|
})
|
|
var storage = multer.diskStorage(
|
|
{
|
|
destination: function(req, file, cb)
|
|
{
|
|
cb(null, uploadPath)
|
|
},
|
|
filename: function(req, file, cb)
|
|
{
|
|
var splice = file.originalname.split(':');
|
|
cb(null, splice[0]);
|
|
}
|
|
});
|
|
var feature_upload = multer(
|
|
{
|
|
storage: storage
|
|
}).array('feature_image');
|
|
var post_upload = multer(
|
|
{
|
|
storage: storage
|
|
}).array('post_image');
|
|
|
|
|
|
//** SYNC POSTS */
|
|
router.post("/sync", (req, res, next) =>
|
|
{
|
|
let payload = req.body;
|
|
Models.User.findById(req.session.user.id).then((user) =>
|
|
{
|
|
if (rightsManager.check(user.role, OBJECT_POST, TASK_UPDATE))
|
|
{
|
|
for (let index = 0; index < payload.length; index++)
|
|
{
|
|
const item = payload[index];
|
|
Models.FreshPost.findOne(
|
|
{
|
|
where:
|
|
{
|
|
"post":
|
|
{
|
|
[Op.contains]:
|
|
{
|
|
slug: item.post.slug
|
|
}
|
|
}
|
|
}
|
|
}).then(found =>
|
|
{
|
|
if (!_.isEqual(item.post, found.post)){
|
|
found.update(item).then(updated=>{
|
|
console.log("UPDATED", updated);
|
|
}).catch(err=>{
|
|
//console.log("***ERROR***", err);
|
|
})
|
|
} else{
|
|
//chilld
|
|
}
|
|
}).catch(err =>
|
|
{
|
|
Models.FreshPost.create(item).then(fresh =>
|
|
{
|
|
//console.log(fresh)
|
|
})
|
|
})
|
|
}
|
|
res.json(
|
|
{
|
|
message: "postsSynced"
|
|
});
|
|
}
|
|
else
|
|
{
|
|
res.json(
|
|
{
|
|
message: "Nah. You can't do that. Talk to the admin, sport."
|
|
});
|
|
}
|
|
});
|
|
})
|
|
router.get('/json', function(req, res, next)
|
|
{
|
|
Models.FreshPost.findAll(
|
|
{
|
|
order: [
|
|
['id', 'DESC']
|
|
]
|
|
}).then(function(posts)
|
|
{
|
|
res.json(posts)
|
|
}).catch(function(err)
|
|
{
|
|
//next(err);
|
|
})
|
|
})
|
|
|
|
/***
|
|
POST IMAGE
|
|
*/
|
|
router.post('/add-post-image', function(req, res, next)
|
|
{
|
|
//console.log(req.body);
|
|
if (!req.session.user) return res.json(
|
|
{
|
|
message: "You need to be logged in, champ."
|
|
});
|
|
Models.User.findById(req.session.user.id).then((user) =>
|
|
{
|
|
if (rightsManager.check(user.role, OBJECT_POST, TASK_CREATE))
|
|
{
|
|
post_upload(req, res, function(err)
|
|
{
|
|
if (err)
|
|
{
|
|
//console.log('Error in Saving Entry: ' + err);
|
|
res.json(
|
|
{
|
|
message: err
|
|
});
|
|
throw err;
|
|
}
|
|
else
|
|
{
|
|
var postImage = req.files[0].path;
|
|
return res.json(
|
|
{
|
|
message: "post image added",
|
|
url: postImage.substr(7, postImage.length)
|
|
});
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
res.json(
|
|
{
|
|
message: "Nah. You can't do that. Talk to the admin, sport."
|
|
});
|
|
}
|
|
});
|
|
});
|
|
module.exports = router; |