%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home2/vacivi36/core/app/Http/Controllers/
Upload File :
Create Path :
Current File : //home2/vacivi36/core/app/Http/Controllers/CityController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;

class CityController extends Controller
{
    /**
     * Exibir a lista de cidades.
     */
    public function index()
    {
        // Defina o tempo de cache em minutos (por exemplo, 60 minutos)
        $cacheTime = 60;

        // Tente obter os dados do cache
        $cityNames = Cache::get('city_names');

        if (!$cityNames) {
            // Se não estiver em cache, faça a chamada para a API
            $curl = curl_init();

            curl_setopt_array($curl, [
                CURLOPT_URL => 'https://parseapi.back4app.com/classes/City?limit=100000&keys=name',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_HTTPHEADER => [
                    'X-Parse-Application-Id: QiGq93pW2KO3xAHlLNFoJjg1kM3qYMhiLEtTPwYq',
                    'X-Parse-Master-Key: gv6cOhHXeNwNWzDsObRXEe67BwpVhddUIVwVPR5C'
                ],
            ]);

            $response = curl_exec($curl);

            if (curl_errno($curl)) {
                return response()->json(['error' => 'Erro ao fazer requisição para a API.'], 500);
            }

            curl_close($curl);

            $data = json_decode($response, true);

            // Verifique se existe a chave "results" e extraia os nomes
            $cityNames = [];
            if (isset($data['results'])) {
                foreach ($data['results'] as $city) {
                    if (isset($city['name'])) {
                        $cityNames[] = ['name' => $city['name']];
                    }
                }
            }

            // Armazene no cache para evitar futuras chamadas à API
            Cache::put('city_names', $cityNames, $cacheTime);
        }

        return response()->json($cityNames, 200, [], JSON_PRETTY_PRINT);
    }
    
    // public function index()
    // {
    //     $curl = curl_init();

    //     curl_setopt_array($curl, [
    //         CURLOPT_URL => 'https://parseapi.back4app.com/classes/City?limit=10&keys=name',
    //         CURLOPT_RETURNTRANSFER => true,
    //         CURLOPT_HTTPHEADER => [
    //             'X-Parse-Application-Id: QiGq93pW2KO3xAHlLNFoJjg1kM3qYMhiLEtTPwYq',
    //             'X-Parse-Master-Key: gv6cOhHXeNwNWzDsObRXEe67BwpVhddUIVwVPR5C'
    //         ],
    //     ]);

    //     $response = curl_exec($curl);

    //     if (curl_errno($curl)) {
    //         return response()->json(['error' => 'Erro ao fazer requisição para a API.'], 500);
    //     }

    //     curl_close($curl);

    //     $data = json_decode($response, true);

    //     // Extrai apenas os valores do campo 'name'
    //     $names = array_column($data['results'], 'name');

    //     return response()->json($names, 200, [], JSON_PRETTY_PRINT);
    // }

}

Zerion Mini Shell 1.0