private function createClassrooms($interval) { $classrooms = $interval->classrooms; $WiziqApi = new WiziqApi(); if (App::environment() == 'local') { $status_ping_url = 'http://46.40.236.186:9090/DARES/public/classrooms/classrooms/status_ping'; // $status_ping_url = 'https://el-css.edu.om/admin/public/classrooms/classrooms/status_ping'; } else { $status_ping_url = 'https://google.com'; // $status_ping_url = 'https://el-css.edu.om/admin/public/classrooms/classrooms/status_ping'; } // Log::info($status_ping_url); foreach ($classrooms as $classroom) { $error = 0; $subject = $classroom->subject; $teacher = $classroom->teacher; $increment_date = Date::parse($interval->from_date . " " . $classroom->hour); while ($increment_date->format("Y-m-d H:i:s") <= $interval->to_date . " 23:59:59") { $exists = ClassroomSession::where('start_at', $increment_date->format("Y-m-d H:i:s"))->where('classroom_id', $classroom->id)->count(); if ($increment_date->dayOfWeek == $classroom->day && $increment_date->isFuture() && !$exists) { try { $wiziqclassroom = WiziqClassroom::build($interval->title . " - " . $subject->name, new DateTime($increment_date->format("Y-m-d H:i:s")))->withPresenter($teacher->id, $teacher->name)->withAttendeeLimit(config("classrooms.attendee_limit"))->withReturnUrl('')->withDuration(60)->withExtendDuration(0)->withStatusPingUrl($status_ping_url)->withTimeZone("Asia/Muscat")->withLanguageCultureName("ar-SA")->withCreateRecording(true); $response = $WiziqApi->create($wiziqclassroom); $data = ['title' => $interval->title, 'wiziq_id' => $response['class_id'], 'interval_id' => $interval->id, 'classroom_id' => $classroom->id, 'subject_subject_id' => $subject->id, 'teacher_id' => $teacher->id, 'start_at' => $increment_date->format("Y-m-d H:i:s"), 'duration' => 60, 'recording_link' => $response['recording_url'], 'presenter_link' => $response['presenter_url']]; /** add attendees to virtual classroom */ if ($session = ClassroomSession::create($data)) { $error = $this->createStudentsSessions($classroom->students, $session); } //\Log::info($response); } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) { // \Log::warning($e->getMessage()); $error = 1; } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) { // \Log::warning($e->getMessage()); $error = 1; } catch (\PDOException $e) { $error = 1; } } $increment_date->add("1 day"); } if ($error == 0) { $interval->state = 'done'; $interval->save(); event(new IntervalVirtualClassroomsCreated($interval->title)); } } }
public function createVirtualClassroom($session) { // Log::info("in create virtual classroom"); $classroom = $session->classroom; $teacher = $session->teacher; $error = 0; $subject = $session->subject; if (App::environment() == 'local') { $status_ping_url = 'http://46.40.236.186:9090/DARES/public/classrooms/classrooms/status_ping'; } else { $status_ping_url = 'https://google.com'; // $status_ping_url = 'https://el-css.edu.om/admin/public/classrooms/classrooms/status_ping'; } // \Log::info($status_ping_url); $WiziqApi = new WiziqApi(); try { // Log::info("reached try"); $wiziqclassroom = WiziqClassroom::build($session->title . " - " . $subject->name, new DateTime($session->start_at))->withPresenter($teacher->id, $teacher->name)->withAttendeeLimit(config("classrooms.attendee_limit"))->withReturnUrl('')->withDuration($session->duration)->withExtendDuration(0)->withStatusPingUrl($status_ping_url)->withTimeZone("Asia/Muscat")->withLanguageCultureName("ar-SA")->withCreateRecording(true); $response = $WiziqApi->create($wiziqclassroom); // Log::info($response); $data = ['wiziq_id' => $response['class_id'], 'recording_link' => $response['recording_url'], 'presenter_link' => $response['presenter_url']]; // Log::info($data); /** add attendees to virtual classroom */ if ($session->fill($data)->save() && $response) { $error = $this->createStudentsSessions($classroom->students, $session); } } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) { $error = 1; } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) { $error = 1; } catch (\PDOException $e) { $error = 1; } if ($error == 0) { event(new VirtualClassroomsCreated()); } else { $session->wiziq_status = 'error'; $session->save(); } }
public function test(Request $request) { ClassroomSessionExcuse::truncate(); ClassroomSessionAttendance::where('student_id', 10001)->update(['valid' => 0]); exit; $student_id = 4796; $order_dir = in_array($request->input('order_dir'), ['ASC', 'DESC']) ? $request->input('order_dir') : 'ASC'; $exams = Exam::select('exams.type', 'exams.start_at', 'exams.finish_at', 'exams.name', 'exams.id')->join('subject_subjects as subsub', 'subsub.id', '=', 'exams.subject_id')->join('student_subjects as stusub', function ($j) use($student_id) { $j->on('stusub.subject_id', '=', 'subsub.id')->where('stusub.student_id', '=', $student_id)->where('stusub.state', '=', 'study'); })->where(function ($query) use($request, $student_id) { $query->orWhereIn('exams.type', ['midterm', 'remidterm'])->orWhereRaw('exams.id IN (SELECT ce.exam_id FROM classrooms_exam as ce JOIN classrooms as c ON c.id = ce.classroom_id JOIN classroom_students as cs ON cs.classroom_id = c.id AND cs.student_id = ' . $student_id . ' WHERE exam_id = exams.id GROUP BY ce.id)'); if ($request->has('finalExam')) { $query->orWhereIn('exams.type', ['final', 'summer', 'refinal']); } })->where('exams.semester_id', semester()->id)->where('finish_at', '>=', date('Y-m-d H:i:s'))->groupBy('exams.id')->orderBy('exams.start_at', $order_dir)->with(['questions' => function ($w) { $w->select('questionbank_questions.id', 'questionbank_questions.question', 'questionbank_questions.type'); if (false) { $w->orderByRaw('RAND()'); } else { $w->orderBy('questionbank_questions.type', 'DESC'); } }, 'questions.choices' => function ($w) { $w->select('questionbank_choices.id', 'questionbank_choices.question_id', 'questionbank_choices.choice', 'questionbank_choices.istrue'); }])->get(); return $exams; exit; $specialities = Specialty::selectRaw('asp.id, asp.name, asp.short_description, asp.description, GROUP_CONCAT(adp.subject_ids) as subject_ids, COUNT(adt.id) as terms, COUNT(DISTINCT ady.id) as years')->leftJoin('academystructure_departments as adp', 'adp.spec_id', '=', 'asp.id')->leftJoin('academystructure_terms as adt', 'adt.id', '=', 'adp.term_id')->leftJoin('academystructure_years as ady', 'ady.id', '=', 'adt.year_id')->from('academystructure_specialties as asp')->groupBy('asp.id')->with('departments')->get(); foreach ($specialities as $specialty) { $subject_ids = explode(",", preg_replace(['/\\[/', "/\\]/"], "", $specialty->subject_ids)); $specialty->hours = Subject::whereIn('id', $subject_ids)->sum('hour'); foreach ($specialty->departments as $department) { $subject_ids = explode(",", preg_replace(['/\\[/', "/\\]/", '/"/', "/'/"], "", $department->subject_ids)); // var_dump($subject_ids); $department->subjects = Subject::whereIn('id', $subject_ids)->get(); } } $specialities->makeHidden(['subject_ids']); return $specialities; exit; $status_ping_url = \App::environment('local') ? 'http://46.40.236.186:9090/DARES/public/classrooms/classrooms/status_ping' : route('classrooms.sessions.status-ping'); $WiziqApi = new WiziqApi(); try { $wiziqclassroom = WiziqClassroom::build("test", new DateTime("2016-08-10 23:55:00"))->withPresenter(20, "test teacher")->withAttendeeLimit(config("classrooms.attendee_limit"))->withReturnUrl('https://el-css.edu.om')->withDuration(10)->withExtendDuration(0)->withStatusPingUrl($status_ping_url)->withTimeZone("Asia/Muscat")->withLanguageCultureName("ar-SA")->withCreateRecording(true); $response = $WiziqApi->create($wiziqclassroom); \Log::info($response); exit(var_dump($response)); $data = ['wiziq_id' => $response['class_id'], 'recording_link' => $response['recording_url'], 'presenter_link' => $response['presenter_url']]; /** add attendees to virtual classroom */ Log::info($response); if ($session->fill($data)->save() && $response) { $error = $this->createStudentsSessions($classroom->students, $session); } } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) { $error = 1; } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) { $error = 1; } catch (\PDOException $e) { $error = 1; } if ($error == 0) { event(new VirtualClassroomsCreated()); } else { $session->wiziq_status = 'error'; $session->save(); } }