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/rentpix.corals.io/Corals/modules/RentPix/Classes/Integration/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/rentpix.corals.io/Corals/modules/RentPix/Classes/Integration/RentalAPIService.php
<?php

namespace Corals\Modules\RentPix\Classes\Integration;

use Corals\User\Models\User;
use Corals\User\Traits\UserLoginTrait;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;

class RentalAPIService
{
    use UserLoginTrait;

    protected $client;

    public function __construct()
    {
        $this->client = new Client([
            'base_uri' => 'https://www.bandago.com/tools6/api/',
        ]);
    }

    protected function getResponse($response)
    {
        return json_decode($response->getBody()->getContents(), true);
    }

    /**
     * @param $apiToken
     * @return \Illuminate\Http\JsonResponse
     *
     * @throws GuzzleException
     */
    public function fetchCreateUpdateUser($apiToken)
    {
        $response = $this->getResponse(
            $this->client->get('get-user-info.php', [
                'query' => ['api_token' => $apiToken],
            ])
        );

        $status = data_get($response, 'status');

        if ($status == 200) {
            $userData = data_get($response, 'data');
            $user = User::query()->updateOrCreate(['email' => data_get($userData, 'email')], [
                'name' => data_get($userData, 'fname'),
                'last_name' => data_get($userData, 'lname'),
                'email' => data_get($userData, 'email'),
                'phone_number' => data_get($userData, 'phone'),
            ]);

            $user->setProperty('apiToken', $apiToken);
            $user->assignRole('member');

            event('notifications.rentpix.login', [
                'user' => $user,
            ]);

            return $this->doLogin($user);
        }
        throw new \Exception(data_get($response, 'message'), $status);
    }

    /**
     * @param $reservationId
     * @return mixed
     *
     * @throws GuzzleException
     */
    public function getReservationDetails($reservationId, $user = null, $only_drivers = false)
    {
        if (is_null($user)) {
            $user = \user();
        }

        $apiToken = $user->getProperty('apiToken');

        if (empty($apiToken) && (isSuperUser() || \user()->can('Administrations::admin.rentPix'))) {
            $apiToken = config('rentPix.adminApiToken');
        }

        $response = $this->getResponse(
            $this->client->get('get-reservation.php', [
                'query' => ['reservation_id' => $reservationId, 'api_token' => $apiToken, 'only_drivers' => $only_drivers],
            ])
        );

        $status = data_get($response, 'status');

        if ($status == 200) {
            return $response;
        }

        throw new \Exception(data_get($response, 'message'), $status);
    }
}

Spamworldpro Mini