метод getCatalog()
javascript-клиента wakanda возвращает следующую ошибку, если в метод не передан массив класса данных и для текущего пользователя отсутствует одно из разрешений на описание в модели (это, скорее всего, так).
Ошибка:
{
"__ERROR": [
{
"message": "No permission to describe the User datastore class",
"componentSignature": "dbmg",
"errCode": 1609
}
]
}
Что считается лучшей практикой использования метода getCatalog()
? Лучше всего передавать класс данных, необходимый методу getCatalog()
, при каждом вызове на сервер?
Пример службы компании angular:
@Injectable()
export class CompanyService {
constructor(private wakandaService: WakandaService,
private exceptionService: ExceptionService) {
}
getCompanyList(): any {
return this.wakandaService.getCatalog(['Company'])
.then(data => {
return data.UserProfile.getProfile();
})
.then(data => {
return data;
})
.catch(error => this.exceptionService.error(error));
}
}
ОБНОВЛЕНИЕ:
Модель данных
Разрешения
Классу данных «Роль и пользователь» требуются разрешения «Администратор». Классу данных UserProfile требуются разрешения «Пользователь», и он является расширением класса данных «Пользователь».
Ошибка
При входе в качестве пользователя и вызове getCatalog(['UserProfile'])
возвращается ошибка "Необходимый класс данных роли отсутствует в каталоге". -> Это правильно? Почему то же самое через REST API работает?
http://localhost:8081/rest/$catalog/UserProfile работает нормально.
При входе в качестве пользователя и вызове getCatalog(['UserProfile', 'Role'])
возвращается ошибка "Нет разрешения на описание класса хранилища данных ролей". -> ОК