68 lines
2.2 KiB
JavaScript
68 lines
2.2 KiB
JavaScript
const { buildDatetime } = require("../../../middlewares/general/datatime");
|
|
|
|
exports.editedListPosts = async function(blogs, reBlogs){
|
|
const blogsId = blogs.map(get => get.id);
|
|
const reBlogsId = new Array();
|
|
|
|
const result = new Array(...blogs);
|
|
|
|
reBlogs.map(res => {
|
|
if(res.blog){
|
|
editedReBlog(res);
|
|
if(!blogsId.includes(res.blog.id) && !reBlogsId.includes(res.blog.id)){
|
|
res.blog.dataValues.reblog = true;
|
|
res.blog.dataValues.reUser = res.user;
|
|
result.push(res.blog);
|
|
reBlogsId.push(res.blog.id);
|
|
};
|
|
};
|
|
});
|
|
|
|
result.map(res => {
|
|
editedPost(res);
|
|
});
|
|
|
|
result.sort((a, b) => {
|
|
aDate = (a.dataValues.reblog === true) ? a.dataValues.reBlog.date.createdAt.default : a.dataValues.date.createdAt.default;
|
|
bDate = (b.dataValues.reblog === true) ? b.dataValues.reBlog.date.createdAt.default : b.dataValues.date.createdAt.default;
|
|
return bDate - aDate;
|
|
});
|
|
|
|
return result;
|
|
};
|
|
|
|
const editedPost = function(data){
|
|
data.dataValues.date = new Object();
|
|
data.dataValues.date.createdAt = buildDatetime({date: data.createdAt});
|
|
data.dataValues.date.updatedAt = buildDatetime({date: data.updatedAt});
|
|
data.dataValues.date.createdAt.default = data.createdAt;
|
|
data.dataValues.date.updatedAt.default = data.updatedAt;
|
|
};
|
|
exports.editedPost = editedPost;
|
|
|
|
const editedReBlog = function(data){
|
|
data.blog.dataValues.reBlog = new Object({
|
|
date: new Object()
|
|
});
|
|
|
|
data.blog.dataValues.reBlog.date.createdAt = buildDatetime({date: data.createdAt});
|
|
data.blog.dataValues.reBlog.date.updatedAt = buildDatetime({date: data.updatedAt});
|
|
data.blog.dataValues.reBlog.date.createdAt.default = data.createdAt;
|
|
data.blog.dataValues.reBlog.date.updatedAt.default = data.updatedAt;
|
|
};
|
|
exports.editedReBlog = editedReBlog;
|
|
|
|
const startAndEndDates = function(blogs, endDate){
|
|
if(blogs.length > 0){
|
|
return {
|
|
status: true,
|
|
startDate: (endDate) ?? blogs[0].createdAt,
|
|
endDate: blogs[blogs.length - 1].createdAt
|
|
};
|
|
}else {
|
|
return {
|
|
status: false
|
|
};
|
|
};
|
|
};
|
|
exports.startAndEndDates = startAndEndDates; |