123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace App\Models;
- use App\Classes\Pterodactyl;
- use Exception;
- use Illuminate\Database\Eloquent\Factories\HasFactory;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- class Node extends Model
- {
- use HasFactory;
- public $incrementing = false;
- public $guarded = [];
- /**
- * @return BelongsTo
- */
- public function location(): BelongsTo
- {
- return $this->belongsTo(Location::class);
- }
- /**
- * @throws Exception
- */
- public static function syncNodes(){
- Location::syncLocations();
- $nodes = Pterodactyl::getNodes();
- $nodes = array_map(function($node) {
- return array(
- 'id' => $node['attributes']['id'],
- 'location_id' => $node['attributes']['location_id'],
- 'name' => $node['attributes']['name'],
- 'description' => $node['attributes']['description'],
- 'disabled' => '1'
- );
- }, $nodes);
- foreach ($nodes as $node) {
- self::firstOrCreate(['id' => $node['id']] , $node);
- }
- }
- }
|