fingerprintId = (int)$this->getUrlParamInt('fingerprintId'); } public function handle(): void { if (!$this->isUserLoggedIn()) { return; } parent::handle(); if ($this->response->getStatus() !== ServerStatus::OK) { return; } $this->response = new ApiJsonResponse(); try { $json = json_decode($this->requestBody, true); $fingerprint = new Fingerprint($this->fingerprintId); if ($this->hasUserPermission($fingerprint->getUserId()) || $this->handleFingerprint($fingerprint, $json)) { return; } $this->response->setMessage('Fingerprint did not differ from the stored. Nothing changed.'); } catch (Throwable $e) { $this->response->setStatus(ServerStatus::BAD_REQUEST); $this->response->setParameter('success', false); $this->response->setMessage($e->getMessage()); } } public function handleFingerprint(Fingerprint $fingerprint, array $json): bool { if (isset($json['fingerprint'])) { if ($fingerprint->getFingerprint() !== $json['fingerprint']) { $fingerprint->setFingerprint($json['fingerprint']); $fingerprint->Save(); return true; } } return false; } }