mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-10 02:13:49 +02:00
141 lines
3.7 KiB
JavaScript
141 lines
3.7 KiB
JavaScript
// #region | API: Instance
|
|
|
|
const instanceReq = {
|
|
/**
|
|
* @param {{worldId: string, instanceId: string}} params
|
|
* @returns {Promise<{json: any, params}>}
|
|
*/
|
|
getInstance(params) {
|
|
return window.API.call(
|
|
`instances/${params.worldId}:${params.instanceId}`,
|
|
{
|
|
method: 'GET'
|
|
}
|
|
).then((json) => {
|
|
const args = {
|
|
json,
|
|
params
|
|
};
|
|
window.API.$emit('INSTANCE', args);
|
|
return args;
|
|
});
|
|
},
|
|
|
|
/**
|
|
* CreateInstanceParameter
|
|
* @typedef {Object} CreateInstanceParameter
|
|
* @property {string} worldId
|
|
* @property {string} type
|
|
* @property {string} region
|
|
* @property {string} ownerId
|
|
* @property {string[]} roleIds
|
|
* @property {string} groupAccessType
|
|
* @property {boolean} queueEnabled
|
|
*/
|
|
/**
|
|
* @param {CreateInstanceParameter} params
|
|
* @returns {Promise<{json: any, params}>}
|
|
*/
|
|
createInstance(params) {
|
|
return window.API.call('instances', {
|
|
method: 'POST',
|
|
params
|
|
}).then((json) => {
|
|
const args = {
|
|
json,
|
|
params
|
|
};
|
|
window.API.$emit('INSTANCE', args);
|
|
return args;
|
|
});
|
|
},
|
|
|
|
/**
|
|
* @param {{ worldId: string, instanceId: string, shortName: string }} instance
|
|
* @returns {Promise<{instance, json: T, params: {}}>}
|
|
*/
|
|
getInstanceShortName(instance) {
|
|
const params = {};
|
|
if (instance.shortName) {
|
|
params.shortName = instance.shortName;
|
|
}
|
|
return window.API.call(
|
|
`instances/${instance.worldId}:${instance.instanceId}/shortName`,
|
|
{
|
|
method: 'GET',
|
|
params
|
|
}
|
|
).then((json) => {
|
|
const args = {
|
|
json,
|
|
instance,
|
|
params
|
|
};
|
|
return args;
|
|
});
|
|
},
|
|
|
|
/**
|
|
* @param {{ shortName: string }} params
|
|
* @returns {Promise<{json: any, params}>}
|
|
*/
|
|
getInstanceFromShortName(params) {
|
|
return window.API.call(`instances/s/${params.shortName}`, {
|
|
method: 'GET'
|
|
}).then((json) => {
|
|
const args = {
|
|
json,
|
|
params
|
|
};
|
|
window.API.$emit('INSTANCE', args);
|
|
return args;
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Send invite to current user.
|
|
* @param {{ worldId: string, instanceId: string, shortName?: string }} instance
|
|
* @returns {Promise<{instance, json: any, params}>}
|
|
*/
|
|
selfInvite(instance) {
|
|
/**
|
|
* @type {{ shortName?: string }}
|
|
*/
|
|
const params = {};
|
|
if (instance.shortName) {
|
|
params.shortName = instance.shortName;
|
|
}
|
|
return window.API.call(
|
|
`invite/myself/to/${instance.worldId}:${instance.instanceId}`,
|
|
{
|
|
method: 'POST',
|
|
params
|
|
}
|
|
)
|
|
.then((json) => {
|
|
return {
|
|
json,
|
|
instance,
|
|
params
|
|
};
|
|
})
|
|
.catch((err) => {
|
|
if (err?.error?.message) {
|
|
window.$app.$message({
|
|
message: err.error.message,
|
|
type: 'error'
|
|
});
|
|
throw err;
|
|
}
|
|
window.$app.$message({
|
|
message: window.$t('message.instance.not_allowed'),
|
|
type: 'error'
|
|
});
|
|
throw err;
|
|
});
|
|
}
|
|
};
|
|
// #endregion
|
|
|
|
export default instanceReq;
|