<?php namespace App\Http\Controllers\API; use App\Exceptions\NoPermissionException; use App\Exceptions\NotLoggedInException; use App\Exceptions\ResourceNotFound; use App\Models\User; use Illuminate\Support\Facades\Auth; use Laravel\Lumen\Routing\Controller as BaseController; use TaGeSo\APIResponse\Response; class AccountController extends BaseController { public function getUsers(Response $response) { if(!Auth::check()) { throw new NotLoggedInException(); } if(!Auth::user()->admin) { throw new NoPermissionException(); } $users = User::query()->paginate(100); $response->setPagination( $users->currentPage(), $users->lastPage(), $users->perPage() ); return $response->withData(\App\Http\Resources\API\User::collection(($users))); } public function getUser(Response $response, $id) { if(!Auth::check()) { throw new NotLoggedInException(); } if(!(Auth::user()->admin || Auth::user()->id == $id)) { throw new NoPermissionException(); } $user = User::query()->where("id", "=", $id)->first(); if($user == null) { throw new ResourceNotFound(); } return $response->withData(new \App\Http\Resources\API\User($user)); } }