Пример #1
0
 /**
  * Get a listing of the term.
  *
  * @Get("/")
  * @Response(200, body={{"id": 1, "name": "Fall", "year": "2015"},
  *                      {"id": 2, "name": "Fall", "year": "2015"}})
  * @return Response
  */
 public function index(Request $request)
 {
     $this->validate($request, ['date' => 'date']);
     $queryParameters = array_filter($request->only(['date', 'name']));
     $terms = Term::query();
     if (array_key_exists('date', $queryParameters)) {
         $timezone = new \DateTimeZone('America/New_York');
         $date = (new \DateTime('now', $timezone))->format('Y-m-d');
         $terms->where('start_date', '<=', $date)->where('end_date', '>=', $date);
     }
     if (array_key_exists('name', $queryParameters)) {
         $terms = $terms->get()->filter(function ($term) use($queryParameters) {
             return strpos($term->name, $queryParameters['name']) !== false;
         });
     } else {
         $terms = $terms->get();
     }
     return response()->json($terms);
 }