toArray(); } /** * @API-Callback * @Path servers/:id * @Require-Login * @Require-Permission Minecraft-Pay-Settings * * @Request-Method PATCH * * @Parameterized * * @param MinecraftServer $seerver server to edit * * @paramget id path id required int * @paramget server post server required MinecraftServer * * @return APIResult< MinecraftServer > */ public static function UpdateServer( int $id, MinecraftServer $server ) { $o = MinecraftServer::GetByID( $id ); if ( $o == null ) { $results[] = new APIResult( 'Missing ID', false, $server ); } if ( $server->GetName() != null ) $o->SetName( $server->GetName() ); if ( $server->GetDomain() != null ) $o->SetDomain( $server->GetDomain() ); if ( $server->GetPort() != null ) $o->SetPort( $server->GetPort() ); if ( $server->GetPassword() != null ) $o->SetPassword( $server->GetPassword() ); if ( $server->GetServerPath() != null ) $o->SetServerPath( $server->GetServerPath() ); if ( $server->GetPerMonthPrice() != null ) $o->SetPerMonthPrice( $server->GetPerMonthPrice() ); if ( $server->GetMaxPerMonthPrice() != null ) $o->SetMaxPerMonthPrice( $server->GetMaxPerMonthPrice() ); $r = $o->Save(); return new APIResult( $r ? 'Saved successfully' : 'Saving failed', $r, $r ? $o : MinecraftServer::GetByID( $id ) ); } /** * @API-Callback * @Path servers/:id * @Require-Login * @Require-Permission Minecraft-Pay-Settings * * @Request-Method DELETE * * @Parameterized * * @paramget id path id required int * * @return APIResult< MinecraftServer > */ public static function DeleteServer( int $id ) { if ( !is_numeric( $id ) ) return new APIResult( 'Invalid ID', false, null ); $server = MinecraftServer::GetByID( $id ); $result = null; if ( !$server ) { $result = new APIResult( 'Server does not exist', false, null ); } else if ( $server->DELETE() ) { $result = new APIResult( 'Deleted server successfully', true, null ); } else { $result = new APIResult( 'Deleting server failed', false, $server ); } return $result; } /** * @API-Callback * @Path servers * @Require-Login * @Require-Permission Minecraft-Pay-Settings * * @Request-Method POST * * @Parameterized * * @param MinecraftServer $server to add * * @paramget server post server required MinecraftServer * * @return APIResult< MinecraftServer > */ public static function AddMinecraftServer( MinecraftServer $server ) { $o = new MinecraftServer(); $o->SetName( $server->GetName() ); $s = $o->Save(); return new APIResult( $s ? 'Created server successfully' : 'The server could not be created', $s, $s ? $o : null ); } }