Files
VRCX/src/classes/request/friend.js
pa 41c47d3dc2 refactor: Splitting API requests from app.js (#1166)
* splitting API requests form app.js

* fix: vip friends display issue
2025-03-03 11:42:29 +13:00

112 lines
2.8 KiB
JavaScript

// #region | API: Friend
const friendReq = {
/**
* Fetch friends of current user.
* @param {{ n: number, offset: number, offline: boolean }} params
* @returns {Promise<{json: any, params}>}
*/
getFriends(params) {
return window.API.call('auth/user/friends', {
method: 'GET',
params
}).then((json) => {
const args = {
json,
params
};
window.API.$emit('FRIEND:LIST', args);
return args;
});
},
/**
* @param {{ userId: string }} params
* @returns {Promise<{json: T, params}>}
*/
sendFriendRequest(params) {
return window.API.call(`user/${params.userId}/friendRequest`, {
method: 'POST'
}).then((json) => {
const args = {
json,
params
};
window.API.$emit('FRIEND:REQUEST', args);
return args;
});
},
/**
* @param {{ userId: string }} params
* @returns {Promise<{json: any, params}>}
*/
cancelFriendRequest(params) {
return window.API.call(`user/${params.userId}/friendRequest`, {
method: 'DELETE'
}).then((json) => {
const args = {
json,
params
};
window.API.$emit('FRIEND:REQUEST:CANCEL', args);
return args;
});
},
/**
* @param {{ userId: string }} params
* @returns {Promise<{json: any, params}>}
*/
deleteFriend(params) {
return window.API.call(`auth/user/friends/${params.userId}`, {
method: 'DELETE'
}).then((json) => {
const args = {
json,
params
};
window.API.$emit('FRIEND:DELETE', args);
return args;
});
},
/**
* @param {{ userId: string }} params
* @returns {Promise<{json: any, params}>}
*/
getFriendStatus(params) {
return window.API.call(`user/${params.userId}/friendStatus`, {
method: 'GET'
}).then((json) => {
console.log('getFriendStatus', json);
const args = {
json,
params
};
window.API.$emit('FRIEND:STATUS', args);
return args;
});
},
// ------------------- need to test -------------------
deleteHiddenFriendRequest(params, userId) {
return window.API.call(`user/${userId}/friendRequest`, {
method: 'DELETE',
params
}).then((json) => {
const args = {
json,
params,
userId
};
window.API.$emit('NOTIFICATION:HIDE', args);
return args;
});
}
};
// #endregion
export default friendReq;