HEX
Server: Apache
System: Linux www3.pit.tblive.com 5.14.0-687.38.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 12 17:19:12 EDT 2026 x86_64
User: awaldron (1020)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //home/awaldron/_accomods/apidev.accomods.com/vendor/ApiResult.php
<?php

namespace Api2Pdf;

use Api2Pdf\Exception\ConversionException;
use Api2Pdf\Exception\ProtocolException;

class ApiResult
{
    /**
     * @var string|null
     */
    private $pdf = null;

    /**
     * @var float|null
     */
    private $mbIn = null;

    /**
     * @var float|null
     */
    private $mbOut = null;

    /**
     * @var float|null
     */
    private $cost = null;

    /**
     * @var string|null
     */
    private $responseId = null;

    public static function createFromResponse($response)
    {
        $data = json_decode($response, true);

        if ($data === false) {
            throw new ProtocolException('Error decoding API response');
        }

        if (!isset($data['success']) || !$data['success']) {
            if (isset($data['error'])) {
                $errorMessage = $data['error'];
            } elseif (isset($data['reason'])) {
                $errorMessage = $data['reason'];
            } else {
                $errorMessage = 'Error response received from API';
            }

            throw new ConversionException($errorMessage);
        }

        $apiResponse = new static();

        $apiResponse->pdf = isset($data['pdf'])?$data['pdf']: null;
        $apiResponse->mbIn = $data['mbIn'];
        $apiResponse->mbOut = $data['mbOut'];
        $apiResponse->cost = $data['cost'];
        $apiResponse->responseId = $data['responseId'];

        return $apiResponse;
    }

    /**
     * @return string|null
     */
    public function getPdf()
    {
        return $this->pdf;
    }

    /**
     * @return float|null
     */
    public function getMbIn()
    {
        return $this->mbIn;
    }

    /**
     * @return float|null
     */
    public function getMbOut()
    {
        return $this->mbOut;
    }

    /**
     * @return float|null
     */
    public function getCost()
    {
        return $this->cost;
    }

    /**
     * @return string|null
     */
    public function getResponseId()
    {
        return $this->responseId;
    }
}