File: /var/www/vhost/disk-apps/alq-central.bikenow.co/app/Http/Controllers/Api/CentralApiController.php
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\ServiceCity;
use App\Parameter;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Http;
use Pusher;
class CentralApiController extends Controller
{
private $appUrl;
public function __construct()
{
$this->appUrl = env('APP_URL');
}
public function getAppUrl()
{
return $this->appUrl;
}
public function listCitiesConnection(Request $request)
{
$endpoint = 'https://alq-cali.bikenow.co/api/central/listCitiesConnection';
$apiCall = Http::withToken(
$request->bearerToken()
)->withOptions([
"verify" => false,
])->withHeaders(
["origin" => $this->getAppUrl()]
)->get(
$endpoint,
$request->all()
);
return $apiCall->body();
$listCities = ServiceCity::where('active', true)->get();
$data = array('status' => 'success', 'listCities' => $listCities);
return response()->json($data, 200);
}
public function parametersInfo(Request $request)
{
$endpoint = 'https://alq-cali.bikenow.co/api/central/parameters/info';
$apiCall = Http::withToken(
$request->bearerToken()
)->withOptions([
"verify" => false,
])->withHeaders(
["origin" => $this->getAppUrl()]
)->get(
$endpoint,
$request->all()
);
return $apiCall->body();
if (!Cache::get('parameters')) {
$parameters = Parameter::with('terms')->first();
$newParameters = $parameters->first();
Cache::put('parameters', $newParameters, config('cache.time'));
} else {
$newParameters = Cache::get('parameters');
}
$body = $this->getTutorialSlides();
$newParameters->slides = $body->slides;
$bodyTerm = $this->getTermsActive();
if ($bodyTerm && isset($bodyTerm->term)) {
$newParameters->term_id = $bodyTerm->term->id;
$newParameters->terms = $bodyTerm->term;
}
$data = array('status' => 'success', 'parameters' => $newParameters);
return response()->json($data, 200);
}
public function authPusher(Request $request)
{
$pusher = new Pusher\Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID'));
return $pusher->socket_auth(request('channel_name'), request('socket_id'));
}
private function getTutorialSlides()
{
try {
$client = new \GuzzleHttp\Client([
'base_uri' => env('WEB_URL'),
'defaults' => [
'exceptions' => false,
],
]);
$responseGuzzle = $client->get('/api/getTutorialSlides', [
'headers' => [
'Accept' => 'application/json',
],
]);
$body = (string) $responseGuzzle->getBody();
return json_decode($body);
} catch (\Exception $e) {
return (object) [
'slides' => [],
'error' => $e->getMessage()
];
}
}
public function getTermsActive()
{
try {
$client = new \GuzzleHttp\Client([
'base_uri' => env('WEB_URL'),
'defaults' => [
'exceptions' => false,
],
]);
$responseGuzzle = $client->get('/api/getTermsActive', [
'headers' => [
'Accept' => 'application/json',
],
]);
$body = (string) $responseGuzzle->getBody();
return json_decode($body);
} catch (\Exception $e) {
return (object) [
'slides' => [],
'error' => $e->getMessage()
];
}
}
public function getActivePolicy()
{
try {
$client = new \GuzzleHttp\Client([
'base_uri' => env('WEB_URL'),
'defaults' => [
'exceptions' => false,
],
]);
$responseGuzzle = $client->get('/api/getActivePolicy', [
'headers' => [
'Accept' => 'application/json',
],
]);
$body = (string) $responseGuzzle->getBody();
return json_decode($body);
} catch (\Exception $e) {
return (object) [
'slides' => [],
'error' => $e->getMessage()
];
}
}
}