Untitled

 avatar
unknown
php
2 years ago
1.5 kB
34
Indexable
<?php namespace Api\Controllers;
use Http\Request;
use Http\Http;
class UserController extends Controller{
    public function getUsers(Request $request): array    {
        if(cache()->has('api.users')) {
            return ['data' => cache()->get('api.users')];
        }
        $response = Http::get('https://apiurl.com/users');
        if ($response->ok()) {
            $data = $response->json();
            $users = array_map(fn ($user) => [
                'id' => $user['id'],
                'first_name' => $user['name'],
                'last_name' => $user['surname'],
            ], $data);
            cache()->set('api.users', $users);
            return ['data' => $users];
        } else {
            return ['status' => 'error'];
        }
    }
    public function getUser(Request $request, $id): array    {
        if(cache()->has("api.user.{$id}")) {
            return ['data' => cache()->get("api.user.{$id}")];
        }
        $response = Http::get("https://apiurl.com/users/{$id}");
        if ($response->ok()) {
            $data = $response->json();
            $user = [
                'id' => $data['id'],
                'first_name' => $data['name'],
                'last_name' => $data['surname'],
            ];
            cache()->set("api.user.{$id}", $user);
            return ['data' => $user];
        } else {
            return ['status' => 'error'];
        }
    }
}
Editor is loading...