fr05t1k / esia

Компонент для авторизации на портале "Госуслуги" (ЕСИА)
http://fr05t1k.github.io/esia
141 stars 67 forks source link

Вопрос по обработка методов не описанных в готовых обработчиках, на примере «rs/prns/{id}/roles» #52

Open larinmisha opened 2 years ago

larinmisha commented 2 years ago

Возможно есть решение, но я его не вижу.

Задача: получить список организаций для пользователя, там используется метод «rs/prns/{id}/roles». В одной из первых версий библиотеки это можно было сделать так: $esia->getResource('rs/prns/'.$oid.'/roles');

Сейчас, есть готовые методы на подобии getContactInfo() в которых уже и собирается данная строка. Собрать строку я еще могу используя библиотеку, но вот вызвать метод sendRequest(new Request('GET', $url)) уже не получается так как у него зона видимости private. Проблема решилась бы если метод sendRequest() был не private а public, тогда его можно было бы вызвать самому со своим запросом. то же касается и функции collectArrayElements(), к ней так же невозможно обратиться для сборки своего метода.

Либо, что более правильно, не создавать аналогичные методы на подобии getContactInfo(), getAddressInfo() и т.д А создать один метод в который нужно передать только(!) данную строку «rs/prns/{id}/roles», да, это не много сложнее чем просто вызвать метод, но так будет более гибко для работы. И еще вариант, можно передавать только последний параметр «roles», либо пусто если он не нужен как к примеру для функции getPersonInfo().

fr05t1k commented 2 years ago

Здравствуйте @larinmisha, после получения токена вы можете использовать свой собственный HTTP клиент для запроса нужных вам ресурсов. Поддержка всех API ресурсов в библиотеке не предусмотрена из-за нехватки времени имплементации и поддержки их в актуальном состоянии, а существующие скорее помогают решить базовые требования.

https://github.com/fr05t1k/esia#внимание