Информация о регистрации

Я ищу наиболее эффективный способ извлечь следующую информацию из D2L.

Для данного пользователя найти все отделы, в которых он не зарегистрирован, но зачислен в любые предложения, принадлежащие этому отделу.

Единственное решение, которое я вижу, это:

  1. Вызовите GET .../enrollments/users/{id}/orgUnits с типом = Offering to List1.
  2. Для каждой записи в List1 вызовите GET .../courses/{courseId}, чтобы получить информацию об отделе курса и создать на лету List2 уникальных отделов.
  3. Вызовите GET .../enrollments/users/{id}/orgUnits с type = Department в List3
  4. Сравните Список2 и Список3

Очевидно, что если пользователь преподает много курсов, на шаге 2 потребуется слишком много вызовов.

Любые предложения приветствуются.


person user2293371    schedule 10.08.2014    source источник


Ответы (1)


Для вашего шага 2, который начинается с набора предложений курса для зарегистрированного учащегося, вам может быть проще позвонить GET /d2l/api/lp/(version)/orgstructure/(orgUnitId)/ancestors /, чтобы найти все отделы, содержащие эти курсы, и создать свой Список 2.

К сожалению, Valence Learning Framework на самом деле не дает вам каких-либо вызовов API set-predicate для структуры организации (чтобы определить, является ли данная организационная единица Y потомком другой организационной единицы X и так далее).

person Viktor Haag    schedule 11.08.2014
comment
Спасибо, Виктор. К счастью для меня, мой курс может принадлежать только 1 отделу, но этот звонок, который вы рекомендовали, может быть полезен в будущем. - person user2293371; 12.08.2014
comment
Пожалуйста, подтвердите еще раз, что нет лучшего способа, чем вызовы 1 на 1 на шаге 2. - person user2293371; 12.08.2014
comment
Очень, очень немногие из вызовов API Valence Learning Framework позволяют вам сказать, пожалуйста, сделайте это для всех контекстов идентификатора организационного подразделения, которые я передаю вам в списке. Почти все вызовы API специально разработаны для работы в контексте действий одного пользователя в контексте одного организационного подразделения или для работы с одним организационным подразделением. Итак, да, когда у вас есть список идентификаторов организационных единиц, вам нужно перебрать эти организационные единицы, чтобы найти список предков для каждой из них. - person Viktor Haag; 12.08.2014
comment
Спасибо еще раз. Нет, я не имел в виду список - просто дополнительный параметр DepartmentId в .../enrollments/users/{id}/orgUnits - person user2293371; 13.08.2014