| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | import { useHasPermission } from "../hooks/hasPermission";// eslint-disable-next-lineimport moduleManager from "../../index";const UtilsModule = moduleManager.modules.utils;const SpotifyModule = moduleManager.modules.spotify;export default {	/**	 * Fetches tracks from media sources	 * @param {object} session - the session object automatically added by the websocket	 * @param {Array} mediaSources - the media sources to get tracks for	 * @returns {{status: string, data: object}}	 */	getTracksFromMediaSources: useHasPermission(		"spotify.getTracksFromMediaSources",		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	 * @param {object} session - the session object automatically added by the websocket	 * @param {Array} albumIds - the ids of the Spotify albums to get	 * @returns {{status: string, data: object}}	 */	getAlbumsFromIds: useHasPermission("spotify.getAlbumsFromIds", function getAlbumsFromIds(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	 * @param {object} session - the session object automatically added by the websocket	 * @param {Array} artistIds - the ids of the Spotify artists to get	 * @returns {{status: string, data: object}}	 */	getArtistsFromIds: useHasPermission(		"spotify.getArtistsFromIds",		function getArtistsFromIds(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 });				});		}	)};
 |