mirror of
https://github.com/sim1222/misskey.git
synced 2025-07-02 17:00:07 +09:00
なんかもうめっちゃ変えた
This commit is contained in:
46
src/web/app/common/scripts/api.ts
Normal file
46
src/web/app/common/scripts/api.ts
Normal file
@ -0,0 +1,46 @@
|
||||
/**
|
||||
* API Request
|
||||
*/
|
||||
|
||||
import CONFIG from './config';
|
||||
|
||||
let spinner = null;
|
||||
let pending = 0;
|
||||
|
||||
/**
|
||||
* Send a request to API
|
||||
* @param {string|Object} i Credential
|
||||
* @param {string} endpoint Endpoint
|
||||
* @param {any} [data={}] Data
|
||||
* @return {Promise<any>} Response
|
||||
*/
|
||||
export default (i, endpoint, data = {}): Promise<any> => {
|
||||
if (++pending === 1) {
|
||||
spinner = document.createElement('div');
|
||||
spinner.setAttribute('id', 'wait');
|
||||
document.body.appendChild(spinner);
|
||||
}
|
||||
|
||||
// Append the credential
|
||||
if (i != null) (data as any).i = typeof i === 'object' ? i.token : i;
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
// Send request
|
||||
fetch(endpoint.indexOf('://') > -1 ? endpoint : `${CONFIG.apiUrl}/${endpoint}`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
credentials: endpoint === 'signin' ? 'include' : 'omit'
|
||||
}).then(res => {
|
||||
if (--pending === 0) spinner.parentNode.removeChild(spinner);
|
||||
if (res.status === 200) {
|
||||
res.json().then(resolve);
|
||||
} else if (res.status === 204) {
|
||||
resolve();
|
||||
} else {
|
||||
res.json().then(err => {
|
||||
reject(err.error);
|
||||
});
|
||||
}
|
||||
}).catch(reject);
|
||||
});
|
||||
};
|
Reference in New Issue
Block a user