Your IP : 216.73.216.220


Current Path : /var/www/html/vendor/csharpru/vault-php/src/Builders/
Upload File :
Current File : /var/www/html/vendor/csharpru/vault-php/src/Builders/ResponseBuilder.php

<?php

namespace Vault\Builders;

use Psr\Http\Message\ResponseInterface;
use Vault\Helpers\ArrayHelper;
use Vault\Helpers\ModelHelper;
use Vault\ResponseModels\Auth;
use Vault\ResponseModels\Response;

/**
 * Class ResponseBuilder
 *
 * @package Vault\Builder
 */
class ResponseBuilder
{
    /**
     * @param ResponseInterface $response
     *
     * @return Response
     */
    public function build(ResponseInterface $response): Response
    {
        $rawData = json_decode((string)$response->getBody(), true) ?: [];
        $data = ModelHelper::camelize($rawData);
        $data['data'] = ArrayHelper::getValue($rawData, 'data', []);

        if ($auth = ArrayHelper::getValue($data, 'auth')) {
            $data['auth'] = new Auth($auth);
        }

        return new Response($data);
    }
}