Serving a payment option for my minecraft server so I don't have to pay for it all alone
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

MinecraftPayAPI.class.php 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. class MinecraftPayAPI {
  3. /**
  4. * @API-Callback
  5. * @Path servers
  6. *
  7. * @Request-Method GET
  8. *
  9. * @return MinecraftServer[]
  10. */
  11. public function GetAllServers() {
  12. return MinecraftServer::GetAll()->toArray();
  13. }
  14. /**
  15. * @API-Callback
  16. * @Path servers/:id
  17. * @Require-Login
  18. * @Require-Permission Minecraft-Pay-Settings
  19. *
  20. * @Request-Method PATCH
  21. *
  22. * @Parameterized
  23. *
  24. * @param MinecraftServer $seerver server to edit
  25. *
  26. * @paramget id path id required int
  27. * @paramget server post server required MinecraftServer
  28. *
  29. * @return APIResult< MinecraftServer >
  30. */
  31. public static function UpdateServer( int $id, MinecraftServer $server ) {
  32. $o = MinecraftServer::GetByID( $id );
  33. if ( $o == null ) {
  34. $results[] = new APIResult( 'Missing ID', false, $server );
  35. }
  36. if ( $server->GetName() != null ) $o->SetName( $server->GetName() );
  37. if ( $server->GetDomain() != null ) $o->SetDomain( $server->GetDomain() );
  38. if ( $server->GetPort() != null ) $o->SetPort( $server->GetPort() );
  39. if ( $server->GetPassword() != null ) $o->SetPassword( $server->GetPassword() );
  40. if ( $server->GetServerPath() != null ) $o->SetServerPath( $server->GetServerPath() );
  41. if ( $server->GetPerMonthPrice() != null ) $o->SetPerMonthPrice( $server->GetPerMonthPrice() );
  42. if ( $server->GetMaxPerMonthPrice() != null ) $o->SetMaxPerMonthPrice( $server->GetMaxPerMonthPrice() );
  43. $r = $o->Save();
  44. return new APIResult( $r ? 'Saved successfully' : 'Saving failed', $r, $r ? $o : MinecraftServer::GetByID( $id ) );
  45. }
  46. /**
  47. * @API-Callback
  48. * @Path servers/:id
  49. * @Require-Login
  50. * @Require-Permission Minecraft-Pay-Settings
  51. *
  52. * @Request-Method DELETE
  53. *
  54. * @Parameterized
  55. *
  56. * @paramget id path id required int
  57. *
  58. * @return APIResult< MinecraftServer >
  59. */
  60. public static function DeleteServer( int $id ) {
  61. if ( !is_numeric( $id ) ) return new APIResult( 'Invalid ID', false, null );
  62. $server = MinecraftServer::GetByID( $id );
  63. $result = null;
  64. if ( !$server ) {
  65. $result = new APIResult( 'Server does not exist', false, null );
  66. } else if ( $server->DELETE() ) {
  67. $result = new APIResult( 'Deleted server successfully', true, null );
  68. } else {
  69. $result = new APIResult( 'Deleting server failed', false, $server );
  70. }
  71. return $result;
  72. }
  73. /**
  74. * @API-Callback
  75. * @Path servers
  76. * @Require-Login
  77. * @Require-Permission Minecraft-Pay-Settings
  78. *
  79. * @Request-Method POST
  80. *
  81. * @Parameterized
  82. *
  83. * @param MinecraftServer $server to add
  84. *
  85. * @paramget server post server required MinecraftServer
  86. *
  87. * @return APIResult< MinecraftServer >
  88. */
  89. public static function AddMinecraftServer( MinecraftServer $server ) {
  90. $o = new MinecraftServer();
  91. $o->SetName( $server->GetName() );
  92. $s = $o->Save();
  93. return new APIResult( $s ? 'Created server successfully' : 'The server could not be created', $s, $s ? $o : null );
  94. }
  95. }