| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | import mongoose from "mongoose";import async from "async";import isLoginRequired from "../hooks/loginRequired";import { useHasPermission } from "../hooks/hasPermission";// eslint-disable-next-lineimport moduleManager from "../../index";const DBModule = moduleManager.modules.db;const UtilsModule = moduleManager.modules.utils;const SoundcloudModule = moduleManager.modules.soundcloud;const SpotifyModule = moduleManager.modules.spotify;export default {	/**	 * Fetches tracks from media sources	 *	 * @returns {{status: string, data: object}}	 */	getTracksFromMediaSources: useHasPermission(		"admin.view.spotify",		function getTracksFromMediaSources(session, mediaSources, cb) {			SpotifyModule.runJob("GET_TRACKS_FROM_MEDIA_SOURCES", { mediaSources }, this)				.then(response => {					this.log(						"SUCCESS",						"SPOTIFY_GET_TRACKS_FROM_MEDIA_SOURCES",						`Getting tracks from media sources was successful.`					);					return cb({ status: "success", data: { tracks: response.tracks } });				})				.catch(async err => {					err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);					this.log(						"ERROR",						"SPOTIFY_GET_TRACKS_FROM_MEDIA_SOURCES",						`Getting tracks from media sources failed. "${err}"`					);					return cb({ status: "error", message: err });				});		}	),	/**	 * Fetches albums from ids	 *	 * @returns {{status: string, data: object}}	 */	getAlbumsFromIds: useHasPermission("admin.view.spotify", function getTracksFromMediaSources(session, albumIds, cb) {		SpotifyModule.runJob("GET_ALBUMS_FROM_IDS", { albumIds }, this)			.then(albums => {				this.log("SUCCESS", "SPOTIFY_GET_ALBUMS_FROM_IDS", `Getting albums from ids was successful.`);				return cb({ status: "success", data: { albums } });			})			.catch(async err => {				err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);				this.log("ERROR", "SPOTIFY_GET_ALBUMS_FROM_IDS", `Getting albums from ids failed. "${err}"`);				return cb({ status: "error", message: err });			});	}),	/**	 * Fetches artists from ids	 *	 * @returns {{status: string, data: object}}	 */	getArtistsFromIds: useHasPermission(		"admin.view.spotify",		function getTracksFromMediaSources(session, artistIds, cb) {			SpotifyModule.runJob("GET_ARTISTS_FROM_IDS", { artistIds }, this)				.then(artists => {					this.log("SUCCESS", "SPOTIFY_GET_ARTISTS_FROM_IDS", `Getting artists from ids was successful.`);					return cb({ status: "success", data: { artists } });				})				.catch(async err => {					err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);					this.log("ERROR", "SPOTIFY_GET_ARTISTS_FROM_IDS", `Getting artists from ids failed. "${err}"`);					return cb({ status: "error", message: err });				});		}	)};
 |