This commit is contained in:
@@ -31,8 +31,6 @@ function updateArtistName() {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
exports.collection = function (page, filter, callback) {
|
||||
process.stdout.write("services/db_manager ALBUMS Collection: " + page + "\n");
|
||||
let redis_key = "albumsCollection_" + (filter || '') + '_' + page;
|
||||
@@ -70,6 +68,7 @@ exports.collection = function (page, filter, callback) {
|
||||
result.forEach(album => {
|
||||
album.type = "album";
|
||||
album.tracks = [];
|
||||
album.share = {};
|
||||
});
|
||||
}
|
||||
process.stdout.write("services/db_manager ALBUMS Collection MONGO: " + page + "\n");
|
||||
@@ -149,6 +148,13 @@ exports.byId = function (id, filter, callback) {
|
||||
foreignField: "album_id",
|
||||
as: "tracks"
|
||||
}
|
||||
}, {
|
||||
$lookup: {
|
||||
from: "shares",
|
||||
localField: "_id",
|
||||
foreignField: "object_id",
|
||||
as: "share"
|
||||
}
|
||||
},
|
||||
{ $match: { _id: ObjectId(id) } }
|
||||
]
|
||||
@@ -167,6 +173,11 @@ exports.byId = function (id, filter, callback) {
|
||||
if (result) {
|
||||
result.forEach(album => {
|
||||
album.type = "album";
|
||||
if (album.share.length > 0) {
|
||||
album.share = album.share[0];
|
||||
} else {
|
||||
album.share = {};
|
||||
}
|
||||
});
|
||||
}
|
||||
process.stdout.write("services/db_manager ALBUM by id MONGO: " + id + "\n");
|
||||
@@ -224,12 +235,12 @@ exports.tracks = function (id, callback) {
|
||||
|
||||
exports.delete = function (album, callback) {
|
||||
dbo.collection("albums")
|
||||
.deleteOne({ _id: ObjectId(album._id) }, err => {
|
||||
if (err) throw err;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
.deleteOne({ _id: ObjectId(album._id) }, err => {
|
||||
if (err) throw err;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.update = function (album, callback) {
|
||||
|
||||
@@ -70,9 +70,10 @@ exports.collection = function (page, filter, callback) {
|
||||
.toArray((err, result) => {
|
||||
if (err) throw err;
|
||||
if (result) {
|
||||
result.forEach(item => {
|
||||
item.type = "box";
|
||||
item.videos = [];
|
||||
result.forEach(box => {
|
||||
box.type = "box";
|
||||
box.videos = [];
|
||||
box.share = {};
|
||||
});
|
||||
}
|
||||
process.stdout.write("services/db_manager BOXES Collection MONGO: " + page + "\n");
|
||||
@@ -148,6 +149,14 @@ exports.byId = function (id, filter, callback) {
|
||||
let aggregate = [
|
||||
box_lookup_videos,
|
||||
box_project,
|
||||
{
|
||||
$lookup: {
|
||||
from: "shares",
|
||||
localField: "_id",
|
||||
foreignField: "object_id",
|
||||
as: "share"
|
||||
}
|
||||
},
|
||||
{ $match: { _id: ObjectId(id) } }
|
||||
];
|
||||
if (filter) {
|
||||
@@ -162,8 +171,13 @@ exports.byId = function (id, filter, callback) {
|
||||
.toArray((err, result) => {
|
||||
if (err) throw err;
|
||||
if (result) {
|
||||
result.forEach(item => {
|
||||
item.type = "box";
|
||||
result.forEach(box => {
|
||||
box.type = "box";
|
||||
if (box.share.length > 0) {
|
||||
box.share = box.share[0];
|
||||
} else {
|
||||
box.share = {};
|
||||
}
|
||||
});
|
||||
}
|
||||
process.stdout.write("services/db_manager BOX by id MONGO: " + id + "\n");
|
||||
|
||||
@@ -71,6 +71,8 @@ exports.users = users;
|
||||
const system = require("./system");
|
||||
exports.system = system;
|
||||
|
||||
const share = require("./share");
|
||||
exports.share = share;
|
||||
|
||||
exports.artist_count = function (callback) {
|
||||
return dbo.collection("artists").countDocuments(callback);
|
||||
|
||||
60
services/database/share.js
Normal file
60
services/database/share.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const redis = require("../redis")
|
||||
|
||||
const { ObjectId } = require('mongodb');
|
||||
const connector = require("./CONNECTOR");
|
||||
var dbo;
|
||||
connector.connect().then((ret) => {
|
||||
dbo = ret;
|
||||
});
|
||||
|
||||
exports.byId = function (id, callback) {
|
||||
dbo.collection("shares")
|
||||
.findOne({ _id: ObjectId(id) })
|
||||
.then((result) => {
|
||||
callback(result);
|
||||
});
|
||||
}
|
||||
|
||||
exports.exists = function (object_id, callback) {
|
||||
dbo.collection("shares")
|
||||
.findOne({ object_id: ObjectId(object_id) })
|
||||
.then(result => {
|
||||
callback(result);
|
||||
});
|
||||
}
|
||||
|
||||
exports.add = function (item, callback) {
|
||||
let redis_key = item.type + "Id__" + item.object_id;
|
||||
redis.del(redis_key);
|
||||
|
||||
dbo.collection("shares")
|
||||
.insertOne(item, err => {
|
||||
if (err) throw err;
|
||||
if (callback) {
|
||||
dbo.collection("shares")
|
||||
.aggregate([
|
||||
{ $sort: { _id: -1 } },
|
||||
{ $limit: 1 }
|
||||
])
|
||||
.toArray((err, result) => {
|
||||
if (err) throw err;
|
||||
callback(result[0]);
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
exports.delete = function (item, callback) {
|
||||
let redis_key = item.type + "Id__" + item.object_id;
|
||||
redis.del(redis_key);
|
||||
|
||||
dbo.collection("shares")
|
||||
.deleteMany({ object_id: ObjectId(item.object_id) }, (err) => {
|
||||
if (err) throw err;
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
@@ -5,7 +5,7 @@ const config = server.config;
|
||||
const redisUrl = "redis://" + config.redis.host + ":" + config.redis.port
|
||||
|
||||
const client = createClient({
|
||||
url: redisUrl
|
||||
url: redisUrl
|
||||
});
|
||||
|
||||
client.on('error', (err) => console.log('Redis Client Error', err));
|
||||
@@ -16,21 +16,30 @@ client.flushAll();
|
||||
const expire = 57600; // 24h
|
||||
|
||||
exports.set = function (key, value) {
|
||||
if (value) {
|
||||
client.set(key, JSON.stringify(value));
|
||||
client.expire(key, expire);
|
||||
}
|
||||
if (value) {
|
||||
client.set(key, JSON.stringify(value));
|
||||
client.expire(key, expire);
|
||||
}
|
||||
}
|
||||
|
||||
exports.get = function (key, callback) {
|
||||
process.stdout.write("services/redis get '" + key + "'\n");
|
||||
client.get(key).then(value => {
|
||||
callback(JSON.parse(value));
|
||||
});
|
||||
client.expire(key, expire);
|
||||
process.stdout.write("services/redis get '" + key + "'\n");
|
||||
client.get(key).then(value => {
|
||||
callback(JSON.parse(value));
|
||||
});
|
||||
client.expire(key, expire);
|
||||
}
|
||||
|
||||
exports.del = function (key, callback) {
|
||||
process.stdout.write("services/redis del '" + key + "'\n");
|
||||
client.del(key).then(() => {
|
||||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
exports.flushAll = function () {
|
||||
client.flushAll();
|
||||
process.stdout.write("services/redis flushAll()\n");
|
||||
client.flushAll();
|
||||
process.stdout.write("services/redis flushAll()\n");
|
||||
}
|
||||
Reference in New Issue
Block a user