encrypter = $encrypter; $this->hashids = $hashids; } public function getResourceName(): string { return Database::RESOURCE_NAME; } public function transform(Database $model): array { $model->loadMissing('host'); return [ 'id' => $this->hashids->encode($model->id), 'host' => [ 'address' => $model->getRelation('host')->host, 'port' => $model->getRelation('host')->port, ], 'name' => $model->database, 'username' => $model->username, 'connections_from' => $model->remote, 'max_connections' => $model->max_connections, ]; } /** * Include the database password in the request. */ public function includePassword(Database $database): Item|NullResource { if (!$this->request->user()->can(Permission::ACTION_DATABASE_VIEW_PASSWORD, $database->server)) { return $this->null(); } return $this->item($database, function (Database $model) { return [ 'password' => $this->encrypter->decrypt($model->password), ]; }, 'database_password'); } }