Update: User.history all data retrieved

This commit is contained in:
Yûki VACHOT 2021-12-12 03:36:00 +01:00
parent 559b8624b3
commit a874e4f53c

View file

@ -3,6 +3,8 @@ const {sendError, sendMessage} = require ("../config/response.config");
const {checkLogin, setSessionCookie} = require("../config/sessionJWT.config"); const {checkLogin, setSessionCookie} = require("../config/sessionJWT.config");
const ObjectId = require('mongoose').Types.ObjectId; const ObjectId = require('mongoose').Types.ObjectId;
const roles = require("../models/objects/role.model"); const roles = require("../models/objects/role.model");
const {youtube, dailymotion} = require("../config/host.config");
const {asyncRequest} = require("../config/functions.config");
const User = db.users; const User = db.users;
const Video = db.videos; const Video = db.videos;
const Ad = db.ads; const Ad = db.ads;
@ -443,8 +445,8 @@ exports.history = (req, res) => {
if(token){ if(token){
const id = token.id; const id = token.id;
Video.aggregate([{$match: {userId: id}}, { Video.aggregate([{$match: {userId: id}}, {$limit: 300},
$project: { {$project: {
videoId: true, videoId: true,
source: true, source: true,
tags: true, tags: true,
@ -454,7 +456,47 @@ exports.history = (req, res) => {
createdAt: true, createdAt: true,
updatedAt: true updatedAt: true
}}]) }}])
.then(data => { .then(async data => {
let yt_results = [];
let dm_results = [];
let yt_videoIds = "";
let dm_videoIds = "";
for(const i in data) {
if(data[i].source === youtube.name) {
yt_videoIds = yt_videoIds + data[i].videoId + ",";
} else if (data[i].source === dailymotion.name) {
dm_videoIds = dm_videoIds + data[i].videoId + ",";
}
}
if(yt_videoIds !== ""){
const uri = youtube.baseAPIUrl + '/videos' + '?part=snippet&part=statistics&id=' + yt_videoIds.slice(0, -1) + '&key=' + youtube.YOUTUBE_API_KEY;
const dataVideos = await asyncRequest(uri, {});
if (dataVideos.response.statusCode === 200 && dataVideos.body.items.length > 0) {
yt_results = dataVideos.body.items;
}
}
if(dm_videoIds !== ""){
const uri = dailymotion.baseAPIUrl + '/videos?ids='+dm_videoIds.slice(0, -1)+'&fields=thumbnail_480_url%2Ctitle%2Cid';
const data = await asyncRequest(uri, {});
const response = data.response;
const jsonBody = data.body;
if(response.statusCode === 200){
dm_results = jsonBody.list;
}
}
for(const i in data) {
if(data[i].source === youtube.name) {
const obj = yt_results.filter(obj => obj.id === data[i].videoId);
data[i].imageUrl = obj[0].snippet.thumbnails.medium.url ? obj[0].snippet.thumbnails.medium.url : null;
data[i].title = obj[0].snippet.title ? obj[0].snippet.title : null;
} else if (data[i].source === dailymotion.name) {
const obj = dm_results.filter(obj => obj.id === data[i].videoId);
data[i].imageUrl = obj[0].thumbnail_480_url ? obj[0].thumbnail_480_url : null;
data[i].title = obj[0].title ? obj[0].title : null;
}
}
return sendMessage(res, 12, data, token) return sendMessage(res, 12, data, token)
}) })
.catch(err => { .catch(err => {