HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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()
																		            ];
													        }
					        }
}