Изменить тип OrgUnit через Valence
Я пытаюсь изменить тип одного пользовательского orgunit на другой, чтобы исправить ошибку, которая была сделана ранее.
Выполнение: GET /d2l/api/lp/1.4/orgstructure/6770
Результаты в:
{
"Identifier": "6770",
"Name": "Art",
"Code": "ART",
"Type": {
"Id": 101,
"Code": "Department",
"Name": "Department"
}
}
Затем я беру эти данные и провожу их через PUT /d2l/api/lp/1.4/orgstructure/6770
однако согласно документации я изменяю данные на:
{
"Identifier": "6770",
"Path": "/content/",
"Name": "Art",
"Code": "ART",
"Type": {
"Id": 103,
"Code": "Discipline",
"Name": "Discipline"
}
}
По сути, только добавление свойства "Path", потому что оно выдает 404 без него. А также изменение типа на дисциплину, а не отдел. Однако возвращаемый объект идентичен оригиналу без обновления какой-либо информации о типе.
Любые предложения, как это исправить? Удаление и отдых на этом этапе вообще не осуществимы. Поскольку оба они являются "пользовательскими" типами организационных единиц, я думаю, что обновление не должно быть трудным.
1 ответ
Это упущение в документации в сочетании с несколько неловкой эволюцией API. Теперь документация была обновлена, чтобы лучше понять эту ситуацию:
Вызов update orgunit properties может только обновить Name
, Code
, или же Path
свойства orgunit, а не это Identifier
(разумно) или это Type
, (Я не верю, что существует способ обновить тип организационного подразделения после его создания даже в веб-интерфейсе для LMS - вам, вероятно, придется создать новый организационный элемент, при необходимости переназначить родительские и дочерние отношения, а затем бросьте старый блок.)
К сожалению, вы должны предоставить действительный, хороший Path
для подразделения org, и простой вызов для извлечения свойств одного подразделения org не скажет вам, какой из них является текущим.
Если вы еще не знаете, что это за путь и каким он должен быть, вам нужно будет вызвать маршрут, чтобы получить список записей подразделений организации, найти точный, который соответствует вашему (по Identifier
или путем сопоставления нескольких свойств, таких как Code
а также Name
), а затем отправить обратно Path
распределено в записи, отправленной туда. (Обратите внимание, что вам настоятельно рекомендуется охватить вызов для извлечения списка записей организационных единиц путем фильтрации по типу, коду и / или имени, и вызов разбивается на страницы, поэтому вам может потребоваться выполнить его несколько раз, если Вы не успеваете уменьшить вызов, чтобы найти конкретную запись о органе, о которой идет речь.)