reportFactory = $reportFactory; $this->reportRepo = $reportRepo; } public function post(array $request = []) { $this->checkAllowedScope(self::SCOPE_WRITE); $request = $this->getRequest([ 'account_id' => '', // ID of the account to report 'status_ids' => [], // Array of Statuses to attach to the report, for context 'comment' => '', // Reason for the report (default max 1000 characters) 'category' => 'other', // Specify if the report is due to spam, violation of enumerated instance rules, or some other reason. 'rule_ids' => [], // For violation category reports, specify the ID of the exact rules broken. 'forward' => false, // If the account is remote, should the report be forwarded to the remote admin? ], $request); $contact = Contact::getById($request['account_id'], ['id', 'gsid']); if (empty($contact)) { throw new HTTPException\NotFoundException('Account ' . $request['account_id'] . ' not found'); } $report = $this->reportFactory->createFromReportsRequest( System::getRules(), Contact::getPublicIdByUserId(self::getCurrentUserID()), $contact['id'], $contact['gsid'], $request['comment'], $request['category'], $request['forward'], $request['status_ids'], $request['rule_ids'], self::getCurrentUserID() ); $this->reportRepo->save($report); $this->jsonExit([]); } }