96 lines
2.1 KiB
JavaScript
96 lines
2.1 KiB
JavaScript
'use strict';
|
|
|
|
const Application = require('./interfaces/Application');
|
|
|
|
/**
|
|
* Represents an Integration's OAuth2 Application.
|
|
* @extends {Application}
|
|
*/
|
|
class IntegrationApplication extends Application {
|
|
_patch(data) {
|
|
super._patch(data);
|
|
|
|
if ('bot' in data) {
|
|
/**
|
|
* The bot user for this application
|
|
* @type {?User}
|
|
*/
|
|
this.bot = this.client.users._add(data.bot);
|
|
} else {
|
|
this.bot ??= null;
|
|
}
|
|
|
|
if ('terms_of_service_url' in data) {
|
|
/**
|
|
* The URL of the application's terms of service
|
|
* @type {?string}
|
|
*/
|
|
this.termsOfServiceURL = data.terms_of_service_url;
|
|
} else {
|
|
this.termsOfServiceURL ??= null;
|
|
}
|
|
|
|
if ('privacy_policy_url' in data) {
|
|
/**
|
|
* The URL of the application's privacy policy
|
|
* @type {?string}
|
|
*/
|
|
this.privacyPolicyURL = data.privacy_policy_url;
|
|
} else {
|
|
this.privacyPolicyURL ??= null;
|
|
}
|
|
|
|
if ('rpc_origins' in data) {
|
|
/**
|
|
* The Array of RPC origin URLs
|
|
* @type {string[]}
|
|
*/
|
|
this.rpcOrigins = data.rpc_origins;
|
|
} else {
|
|
this.rpcOrigins ??= [];
|
|
}
|
|
|
|
if ('summary' in data) {
|
|
/**
|
|
* The application's summary
|
|
* @type {?string}
|
|
*/
|
|
this.summary = data.summary;
|
|
} else {
|
|
this.summary ??= null;
|
|
}
|
|
|
|
if ('hook' in data) {
|
|
/**
|
|
* Whether the application can be default hooked by the client
|
|
* @type {?boolean}
|
|
*/
|
|
this.hook = data.hook;
|
|
} else {
|
|
this.hook ??= null;
|
|
}
|
|
|
|
if ('cover_image' in data) {
|
|
/**
|
|
* The hash of the application's cover image
|
|
* @type {?string}
|
|
*/
|
|
this.cover = data.cover_image;
|
|
} else {
|
|
this.cover ??= null;
|
|
}
|
|
|
|
if ('verify_key' in data) {
|
|
/**
|
|
* The hex-encoded key for verification in interactions and the GameSDK's GetTicket
|
|
* @type {?string}
|
|
*/
|
|
this.verifyKey = data.verify_key;
|
|
} else {
|
|
this.verifyKey ??= null;
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = IntegrationApplication;
|