From 3ea47af7a181c151d4f39c78364274c84248da2f Mon Sep 17 00:00:00 2001 From: Isaac Abadi Date: Wed, 12 Aug 2020 16:30:38 -0400 Subject: [PATCH] Scaffolding for subscription sharing --- backend/authentication/auth.js | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/backend/authentication/auth.js b/backend/authentication/auth.js index 78658ab..f6cf92a 100644 --- a/backend/authentication/auth.js +++ b/backend/authentication/auth.js @@ -307,21 +307,27 @@ exports.getUserVideos = function(user_uid, type) { return user['files'][type]; } -exports.getUserVideo = function(user_uid, file_uid, type, requireSharing = false) { - if (!type) { - file = users_db.get('users').find({uid: user_uid}).get(`files.audio`).find({uid: file_uid}).value(); - if (!file) { - file = users_db.get('users').find({uid: user_uid}).get(`files.video`).find({uid: file_uid}).value(); - if (file) type = 'video'; - } else { - type = 'audio'; +exports.getUserVideo = function(user_uid, file_uid, type, requireSharing = false, reqBody = null) { + // check if it's a subscription first + let file = null; + if (reqBody && reqBody.subscriptionName) { + file = users_db.get('users').find({uid: user_uid}).get('subscriptions').find({name: reqBody.subscriptionName}).get('videos').find({id: reqBody.fileNames}).value(); + } else { + if (!type) { + file = users_db.get('users').find({uid: user_uid}).get(`files.audio`).find({uid: file_uid}).value(); + if (!file) { + file = users_db.get('users').find({uid: user_uid}).get(`files.video`).find({uid: file_uid}).value(); + if (file) type = 'video'; + } else { + type = 'audio'; + } } + + if (!file && type) file = users_db.get('users').find({uid: user_uid}).get(`files.${type}`).find({uid: file_uid}).value(); } - if (!file && type) file = users_db.get('users').find({uid: user_uid}).get(`files.${type}`).find({uid: file_uid}).value(); - // prevent unauthorized users from accessing the file info - if (requireSharing && !file['sharingEnabled']) file = null; + if (file && requireSharing && !file['sharingEnabled']) file = null; return file; }