Update: User.history all data retrieved
This commit is contained in:
parent
559b8624b3
commit
a874e4f53c
1 changed files with 45 additions and 3 deletions
|
|
@ -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 => {
|
||||||
|
|
|
||||||
Reference in a new issue