diff --git a/browser/users/UserSystem.ts b/browser/users/UserSystem.ts index 647514f..6f1014a 100644 --- a/browser/users/UserSystem.ts +++ b/browser/users/UserSystem.ts @@ -60,6 +60,23 @@ export class SessionData renewal:string; } +export class UserAppData +{ + token:string; + appID:string; +} + +export class UserSavingAppData extends UserAppData +{ + appData:any; +} + +export class UserTaskDeletionData extends UserAppData +{ + taskID:string; +} + + export class UserSystem { static productionURL = "https://backend.rokojori.com:1712"; @@ -283,4 +300,78 @@ export class UserSystem return Promise.resolve( MessageTypes.Error !== result.type ); } + + protected _getAppsURL( name:string ) + { + return this.url + "/apps" + name; + } + + async canUseApp( appID:string ):Promise + { + + let url = this._getAppsURL( "/can-use" ); + + let input = { token:this.sessionToken, appID: appID }; + + let result = await Request.post( url, input ); + + if ( MessageTypes.Error == result.type ) + { + console.log( result ); + return Promise.resolve( false ); + } + + return Promise.resolve( true ); + } + + async loadAppData( appID:string ):Promise + { + let url = this._getAppsURL( "/load" ); + + let input = { token:this.sessionToken, appID: appID }; + + let result = await Request.post>( url, input ); + + if ( MessageTypes.Error == result.type ) + { + console.log( result ); + return Promise.resolve( null ); + } + + return Promise.resolve( result.data ); + } + + async saveAppData( appID:string, data:T ):Promise + { + let url = this._getAppsURL( "/save" ); + + let input = { token:this.sessionToken, appID: appID, appData:data }; + + let result = await Request.post>( url, input ); + + if ( MessageTypes.Error == result.type ) + { + console.log( result ); + return Promise.resolve( false ); + } + + return Promise.resolve( true ); + } + + async deleteAppTask( appID:string, taskID:string ):Promise + { + let url = this._getAppsURL( "/delete-task" ); + + let input = { token:this.sessionToken, appID: appID, taskID:taskID }; + + let result = await Request.post( url, input ); + + if ( MessageTypes.Error == result.type ) + { + console.log( result ); + return Promise.resolve( false ); + } + + return Promise.resolve( true ); + } } \ No newline at end of file