mirror of
https://github.com/d-fi/d-fi-core.git
synced 2025-07-28 16:14:30 +02:00
refactor request
This commit is contained in:
parent
257e4f0f67
commit
e93df0e0a8
@ -1,5 +1,5 @@
|
||||
import axios from '../lib/request';
|
||||
import {request, requestPublicApi} from './request';
|
||||
import {request, requestGet, requestPublicApi} from './request';
|
||||
import type {
|
||||
albumType,
|
||||
trackType,
|
||||
@ -118,18 +118,7 @@ export const searchMusic = (query: string, types: searchTypesProp[] = ['TRACK'],
|
||||
/**
|
||||
* Get details about current user
|
||||
*/
|
||||
export const getUser = async (): Promise<userType> => {
|
||||
const {
|
||||
data: {error, results},
|
||||
} = await axios.get('/gateway.php', {params: {method: 'user_getInfo'}});
|
||||
|
||||
if (Object.keys(results).length > 0) {
|
||||
return results;
|
||||
}
|
||||
|
||||
const errorMessage = Object.entries(error).join(', ');
|
||||
throw new Error(errorMessage);
|
||||
};
|
||||
export const getUser = async (): Promise<userType> => requestGet('user_getInfo');
|
||||
|
||||
/**
|
||||
* Get list of channles
|
||||
@ -234,14 +223,6 @@ export const getPlaylistChannel = async (name?: string): Promise<playlistChannel
|
||||
lang: 'en',
|
||||
timezone_offset: '6',
|
||||
};
|
||||
const {
|
||||
data: {error, results},
|
||||
} = await axios.get('/gateway.php', {params: {method: 'app_page_get', gateway_input}});
|
||||
|
||||
if (Object.keys(results).length > 0) {
|
||||
return results;
|
||||
}
|
||||
|
||||
const errorMessage = Object.entries(error).join(', ');
|
||||
throw new Error(errorMessage);
|
||||
return await requestGet('app_page_get', {gateway_input});
|
||||
};
|
||||
|
@ -2,7 +2,7 @@ import axios from '../lib/request';
|
||||
import lru from './cache';
|
||||
|
||||
/**
|
||||
* Make post requests to deezer api
|
||||
* Make POST requests to deezer api
|
||||
* @param {Object} body post body
|
||||
* @param {String} method request method
|
||||
*/
|
||||
@ -27,9 +27,33 @@ export const request = async (body: object, method: string) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* Make post requests to deezer public api
|
||||
* @param {Object} body post body
|
||||
* Make GET requests to deezer public api
|
||||
* @param {String} method request method
|
||||
* @param {Object} params request parameters
|
||||
*/
|
||||
export const requestGet = async (method: string, params?: object) => {
|
||||
const cacheKey = `${method}:${params ? Object.entries(params).join(':') : 'get_request'}`;
|
||||
const cache = lru.get(cacheKey);
|
||||
if (cache) {
|
||||
return cache;
|
||||
}
|
||||
|
||||
const {
|
||||
data: {error, results},
|
||||
} = await axios.get('/gateway.php', {params: {method, ...params}});
|
||||
|
||||
if (Object.keys(results).length > 0) {
|
||||
lru.set(cacheKey, results);
|
||||
return results;
|
||||
}
|
||||
|
||||
const errorMessage = Object.entries(error).join(', ');
|
||||
throw new Error(errorMessage);
|
||||
};
|
||||
|
||||
/**
|
||||
* Make GET requests to deezer public api
|
||||
* @param {String} slug endpoint
|
||||
*/
|
||||
export const requestPublicApi = async (slug: string) => {
|
||||
const cache = lru.get(slug);
|
||||
|
Loading…
x
Reference in New Issue
Block a user