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 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. public static Users: MinecraftUser[] = [];
  8. public static UserAccounts: MinecraftUserAccount[] = [];
  9. private constructor() {
  10. LoadQueue.Start( () => {
  11. MinecraftPayAPI.GetAllServers().then( s => MinecraftPayService.Servers = s || [] );
  12. MinecraftPayAPI.GetAllUsers().then( u => MinecraftPayService.Users = u || [] );
  13. MinecraftPayAPI.GetAllCharges().then( mua => MinecraftPayService.UserAccounts = mua || [] );
  14. } );
  15. }
  16. public static RefreshCharges() {
  17. LoadQueue.Start( () => {
  18. MinecraftPayAPI.GetAllCharges().then( mua => MinecraftPayService.UserAccounts = mua || [] );
  19. } );
  20. }
  21. public static CreateServer( server: MinecraftServer ) {
  22. MinecraftPayAPI.AddServer( { post: { server } } ).then( r => {
  23. if ( r.Success ) {
  24. this.Servers.push( r.Obj );
  25. }
  26. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  27. } );
  28. }
  29. public static UpdateServer( id: number, server: MinecraftServer ) {
  30. MinecraftPayAPI.UpdateServer( { post: { server }, params: { id } } ).then( r => {
  31. if ( r.Success ) {
  32. this.Servers[ this.Servers.findIndex( o => o.ID === r.Obj.ID ) ] = r.Obj;
  33. }
  34. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  35. } );
  36. }
  37. public static DeleteServer( id: number ) {
  38. MinecraftPayAPI.DeleteServer( { params: { id } } ).then( r => {
  39. if ( r.Success ) {
  40. this.Servers.splice( this.Servers.findIndex( o => o.ID === id ), 1 );
  41. }
  42. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  43. } );
  44. }
  45. public static CreateUser( user: MinecraftUser ) {
  46. MinecraftPayAPI.AddUser( { post: { user } } ).then( r => {
  47. if ( r.Success ) {
  48. this.Users.push( r.Obj );
  49. }
  50. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  51. } );
  52. }
  53. // public static UpdateUser( id: number, user: MinecraftUser ) {
  54. // MinecraftPayAPI.UpdateUser( { post: { user }, params: { id } } ).then( r => {
  55. // if ( r.Success ) {
  56. // this.Users[ this.Users.findIndex( o => o.ID === r.Obj.ID ) ] = r.Obj;
  57. // }
  58. // Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  59. // } );
  60. // }
  61. public static DeleteUser( id: number ) {
  62. MinecraftPayAPI.DeleteUser( { params: { id } } ).then( r => {
  63. if ( r.Success ) {
  64. this.Users.splice( this.Users.findIndex( o => o.ID === id ), 1 );
  65. }
  66. Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) );
  67. } );
  68. }
  69. }