![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/SMS/Transformers/ |
<?php namespace Corals\Modules\SMS\Transformers; use Corals\Foundation\Transformers\BaseTransformer; use Corals\Modules\SMS\Models\Message; class MessageTransformer extends BaseTransformer { public function __construct($extras = []) { $this->resource_url = config('sms.models.message.resource_url'); parent::__construct($extras); } /** * @param Message $message * @return array * @throws \Throwable */ public function transform(Message $message) { if ($message->type === 'incoming') { $initiator = $message->messageable->getIdentifier(); } else { $initiator = trim(optional($message->provider)->name . ' | ' . $message->creator->email, ' |'); } $createdAt = format_date_time($message->created_at); $statusText = str_replace('_', ' ', ucfirst($message->status)); switch ($message->status) { case 'queued': $status = formatStatusAsLabels($statusText); break; case 'sent_to_provider': $status = formatStatusAsLabels($statusText, ['level' => 'success']); break; case 'received': $status = formatStatusAsLabels($statusText, ['level' => 'info']); break; default: $status = formatStatusAsLabels($statusText, ['level' => 'primary']); } $transformedArray = [ 'id' => $message->id, 'messageable' => $message->messageable->getIdentifier(), 'phone' => sprintf("<a href='%s'>%s</a>", $message->messageable->getShowURL() . "/messages", $message->messageable->getPhoneNumber()), 'initiator' => $initiator, 'status' => $status, 'body' => $message->body, 'provider' => optional($message->provider)->name ?? '-', 'info' => join(' | ', [$initiator, $status, $createdAt]), 'created_at' => $createdAt, 'updated_at' => format_date($message->updated_at), 'action' => $this->actions($message) ]; return parent::transformResponse($transformedArray); } }