![]() 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/ |
<?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); } }