user = $user; $this->notes = new NoteRepo; } function getNote(int $noteId, callable $resolve, callable $reject): void { $note = $this->notes->get($noteId); if(!$note || $note->isDeleted()) $reject(83, "Note is gone"); $noteOwner = $note->getOwner(); assert($noteOwner instanceof User); if(!$noteOwner->getPrivacyPermission("notes.read", $this->user)) $reject(160, "You don't have permission to access this note"); if(!$note->canBeViewedBy($this->user)) $reject(15, "Access to note denied"); $resolve([ "title" => $note->getName(), "link" => "/note" . $note->getPrettyId(), "html" => $note->getText(), "created" => (string) $note->getPublicationTime(), "author" => [ "name" => $noteOwner->getCanonicalName(), "ava" => $noteOwner->getAvatarUrl(), "link" => $noteOwner->getURL(), ], ]); } }