Serving a payment option for my minecraft server so I don't have to pay for it all alone
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MinecraftPayService.ts 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /// <reference path="../../../../assets/plugins/mithril/mithril/generated/APIRequestImports.d.ts" />
  2. // MLQRequire: { "Type": "API", "Name": "MinecraftPayAPI" }
  3. // MLQRequire: { "Plugin": "Mithril", "Type": "Component", "Name": "Toasts" }
  4. class MinecraftPayService {
  5. public static INSTANCE: MinecraftPayService = new MinecraftPayService();
  6. public static Servers: MinecraftServer[] = [];
  7. private constructor() {
  8. LoadQueue.Start( () => {
  9. MinecraftPayAPI.GetAllServers().then( s => MinecraftPayService.Servers = s || [] );
  10. } );
  11. }
  12. public static CreateServer( server: MinecraftServer ) {
  13. MinecraftPayAPI.AddMinecraftServer( { post: { server } } ).then( r => {
  14. console.warn( r );
  15. if ( r.Success ) {
  16. this.Servers.push( r.Obj );
  17. }
  18. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  19. } );
  20. }
  21. public static UpdateServer( id: number, server: MinecraftServer ) {
  22. MinecraftPayAPI.UpdateServer( { post: { server }, params: { id } } ).then( r => {
  23. if ( r.Success ) {
  24. this.Servers[ this.Servers.findIndex( o => o.ID === r.Obj.ID ) ] = r.Obj;
  25. }
  26. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  27. } );
  28. }
  29. public static DeleteServer( id: number ) {
  30. MinecraftPayAPI.DeleteServer( { params: { id } } ).then( r => {
  31. if ( r.Success ) {
  32. this.Servers.splice( this.Servers.findIndex( o => o.ID === id ), 1 );
  33. }
  34. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  35. } );
  36. }
  37. }