verifyAttachmentsAreEnabled($hesk_settings); /* @var $attachmentRetriever AttachmentRetriever */ $attachmentRetriever = $applicationContext->get(AttachmentRetriever::class); $contents = $attachmentRetriever->getAttachmentContentsForTicket($ticketId, $attachmentId, $userContext, $hesk_settings); output(array('contents' => $contents)); } private function verifyAttachmentsAreEnabled($heskSettings) { if (!$heskSettings['attachments']['use']) { throw new ApiFriendlyException('Attachments are disabled on this server', 'Attachments Disabled', 404); } } function post($ticketId) { global $hesk_settings, $applicationContext, $userContext; $this->verifyAttachmentsAreEnabled($hesk_settings); /* @var $attachmentHandler AttachmentHandler */ $attachmentHandler = $applicationContext->get(AttachmentHandler::class); $createAttachmentForTicketModel = $this->createModel(JsonRetriever::getJsonData(), $ticketId); $createdAttachment = $attachmentHandler->createAttachmentForTicket( $createAttachmentForTicketModel, $userContext, $hesk_settings); return output($createdAttachment, 201); } private function createModel($json, $ticketId) { $model = new CreateAttachmentForTicketModel(); $model->attachmentContents = Helpers::safeArrayGet($json, 'data'); $model->displayName = Helpers::safeArrayGet($json, 'displayName'); $model->isEditing = Helpers::safeArrayGet($json, 'isEditing'); $model->ticketId = $ticketId; return $model; } function delete($ticketId, $attachmentId) { global $applicationContext, $hesk_settings, $userContext; /* @var $attachmentHandler AttachmentHandler */ $attachmentHandler = $applicationContext->get(AttachmentHandler::class); $attachmentHandler->deleteAttachmentFromTicket($ticketId, $attachmentId, $userContext, $hesk_settings); return http_response_code(204); } }