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)); } } }