public static function meetPrerequisite($idCourse, $idUser) { $app = \Slim\Slim::getInstance(); $user = UserController::findUser($idUser); $prerequisites = CourseController::getCoursePrerequisites($idCourse)->toArray(); $enrolled = []; foreach ($prerequisites as &$value) { if (self::isEnroll($value['id'], $idUser)) { //completed->meet requisite $enrollment = Enrollment::where('user_id', '=', $idUser)->where('course_id', '=', $value['id'])->first(); if ($enrollment->status == "completed") { $key = array_search($value, $prerequisites); unset($prerequisites[$key]); } } } if (count($prerequisites) == 0) { return; } $app->halt("412", json_encode($prerequisites)); }
/** * @api {get} /managers/:id/bin Get Items in Manager's Content Bin * @apiName Get Items in Manager's Content Bin * @apiDescription As a manager, any content I purchased will be shown in my bin. When an item reaches its expiration date, change the date to read 'EXPIRED'. Keep listing 'EXPIRED' items in this way for 30 days. * @apiGroup Manager * @apiHeader (Header) {String} X_Authorization Authorization value. * @apiParam {Number} id Users unique ID. * * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { * "id": 14, * "quantity": 1, * "expiration_dt": "2015-11-30 00:00:00", * "created_at": "2015-11-19 14:12:30", * "updated_at": "2015-11-19 14:12:30", * "course_id": 45950, * "course_name": "Scotsman: Prodigy Eclipse Ice Cuber EH222", * "course_type": "course", * "restrictions":{ * "prerequisite":[], * "expiration":"" * } * } * */ public static function getBin($idUser) { GroupController::isAdmin($idUser); $bins = Manager_Bin::where('user_id', '=', $idUser)->get(); $result = []; foreach ($bins as &$bin) { unset($bin->user_id); unset($bin->company_id); $course = Price::find($bin->course_sale_id)->course; unset($bin->course_sale_id); $bin['course_id'] = $course->id; $bin['course_name'] = $course->name; $bin['course_type'] = $course->type; $expired_dt = new DateTime($bin['expiration_dt']); $now = new DateTime(); $diff = $now->diff($expired_dt, false); //var_dump($diff); $restrictions = []; //echo $diff->format("%R%a"); if ($diff->format("%R%a") >= 0) { $pre = CourseController::getCoursePrerequisites($course->id); if ($pre) { $restrictions['prerequisite'] = $pre; } } else { if ($diff->format("%R%a") > -30) { $bin['expiration_dt'] = "EXPIRED"; $restrictions['expiration'] = 'This content has expired. You cannot assign or transfer this content. You may renew this content for 30 days after the expiration at the renewal price.'; } else { continue; } } $bin['restrictions'] = $restrictions; array_push($result, $bin); } return json_encode($result); }