Serving a payment option for my minecraft server so I don't have to pay for it all alone
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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. }