Spamworldpro Mini Shell
Spamworldpro


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/medad.corals.io/Corals/modules/TroubleTicket/Transformers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/medad.corals.io/Corals/modules/TroubleTicket/Transformers/TroubleTicketTransformer.php
<?php

namespace Corals\Modules\TroubleTicket\Transformers;

use Corals\Foundation\Transformers\BaseTransformer;
use Corals\Modules\TroubleTicket\Models\TroubleTicket;
use Corals\Modules\Utility\Facades\ListOfValue\ListOfValues;

class TroubleTicketTransformer extends BaseTransformer
{
    public function __construct($extras = [])
    {
        $this->resource_url = config('trouble_ticket.models.troubleTicket.resource_url');

        parent::__construct($extras);
    }

    /**
     * @param TroubleTicket $troubleTicket
     * @return array
     * @throws \Throwable
     */
    public function transform(TroubleTicket $troubleTicket)
    {
        $assignee = \TroubleTickets::getFirstTTAssignee($troubleTicket);

        $model = $troubleTicket->model;
        $owner = $troubleTicket->owner;

        $transformedArray = [
            'id' => $troubleTicket->id,
            'checkbox' => $this->generateCheckboxElement($troubleTicket),
            'code' => user() ? sprintf("<a href='%s'>%s</a>", $troubleTicket->getShowURL(),
                $troubleTicket->code) : $troubleTicket->code,
            'title' => $troubleTicket->title ?? '-',
            'status' => ListOfValues::getColoredLOVByCode($troubleTicket->status,
                    'tt_status') ?? $troubleTicket->status,
            'priority' => ListOfValues::getColoredLOVByCode($troubleTicket->priority, 'tt_priority') ?? '-',
            'model' => $this->generateShowLink($model),
            'category' => formatStatusAsLabels(optional($troubleTicket->category)->name, ['level' => 'info']),
            'issue_type' => $troubleTicket->issueType ? $troubleTicket->issueType->present('title') : '-',
            'solutions' => $troubleTicket->issueType ? $troubleTicket->issueType->present('solutions') : null,
            'team' => $troubleTicket->team ? $troubleTicket->team->present('name') : '-',
            'assignee' => $this->generateShowLink($assignee),
            'owner' => $this->generateShowLink($owner),
            'is_public' => yesNoFormatter($troubleTicket->isPublic),
            'estimated_hours' => $troubleTicket->estimated_hours ? trans_choice('TroubleTicket::labels.trouble_ticket.estimated_hours',
                $troubleTicket->estimated_hours, ['hours' => $troubleTicket->estimated_hours]) : '-',
            'due_date' => format_date_time($troubleTicket->due_date) ?? '-',
            'closed_at' => format_date_time($troubleTicket->closed_at) ?? '-',
            'archived' => yesNoFormatter($troubleTicket->archived),
            'created_at' => format_date_time($troubleTicket->created_at),
            'updated_at' => format_date_time($troubleTicket->updated_at),
            'action' => $this->actions($troubleTicket)
        ];

        return parent::transformResponse($transformedArray);
    }

    /**
     * @param $object
     * @return string
     */
    protected function generateShowLink($object): string
    {
        if ($object && $object->id) {
            return user() && user()->can('view', $object) ? sprintf("<a href='%s'>%s</a>", $object->getShowURL(),
                $object->getIdentifier()) : $object->getIdentifier();
        }

        return '-';
    }
}

Spamworldpro Mini