Ejemplo n.º 1
0
 /**
  * @param string|int $group_name
  * @param string $cond
  * @return LessonModel[]|array
  */
 public static function getAllByGroupNameOrGroupId($group_name, $cond = "")
 {
     $group_name = mb_strtolower($group_name, "UTF-8");
     $group_name = str_replace(array_values(GroupModel::$replace), array_keys(GroupModel::$replace), $group_name);
     /** @var PDO $db */
     $db = Registry::get('db');
     $group_id = $db->query("\r\n            SELECT group_id FROM " . GroupModel::TABLE . "\r\n                WHERE (group_full_name = " . $db->quote($group_name) . " OR group_id = " . $db->quote($group_name) . ")\r\n        ")->fetchColumn();
     $count = $db->query("\r\n            SELECT COUNT(*) FROM " . LessonModel::TABLE . "\r\n                WHERE (group_id = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond}\r\n        ")->fetchColumn();
     $result = array();
     if ($count > 0) {
         $query = $db->query("\r\n                SELECT * FROM " . LessonModel::TABLE . "\r\n                    WHERE (group_id  = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond} ORDER BY lesson_week,day_number,lesson_number ASC\r\n            ");
         while ($data = $query->fetch(PDO::FETCH_ASSOC)) {
             $lessonModel = new LessonModel();
             $lessonModel->unpack($data);
             $lessonModel->teachers = TeacherModel::getAllByLessonId($lessonModel->lesson_id);
             //enable duplicate filter
             $lessonModel->teachers = TeacherModel::teachersDuplicateFilter($lessonModel->teachers);
             //load rooms
             $lessonModel->rooms = RoomModel::getAllByLessonId($lessonModel->lesson_id);
             $result[] = $lessonModel->toArray();
         }
     } else {
         throw new ApiException("Lessons not found");
     }
     return $result;
 }
Ejemplo n.º 2
0
 /**
  * url GET /v2/groups/{group_name|group_id}/teachers
  * @api
  * @param $data
  * @return string
  * @throws ApiException
  */
 public function groups_teachersRelationAction($data)
 {
     $allowFilters = ['duplicateTeachersFilter' => true];
     $filter = $this->_fc->getFilter();
     $group_name = $data["groups"];
     $group_name = urldecode($group_name);
     $teachers = TeacherModel::getAllByGroupNameOrGroupId($group_name);
     if ($filter != null) {
         Utilities::checkFilters($filter, $allowFilters);
         $teachers = TeacherModel::teachersDuplicateFilter($teachers);
     }
     $this->data = $teachers;
     return $this->send(200);
 }