1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { useHasPermission } from "../hooks/hasPermission";
- // eslint-disable-next-line
- import 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 });
- });
- }
- )
- };
|