Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sous-dossier "api" #177

Closed
SimonSAMPERE opened this issue May 24, 2019 · 0 comments
Closed

sous-dossier "api" #177

SimonSAMPERE opened this issue May 24, 2019 · 0 comments
Assignees
Labels
code art Qualité du code source enhancement Amélioration du fonctionnement existant
Milestone

Comments

@SimonSAMPERE
Copy link
Collaborator

SimonSAMPERE commented May 24, 2019

Objectifs

Sortir l'interactions avec l'api Isogeo et la gestion de l'authentification de la classe principale Isogeo (isogeo.py).

Marche à suivre

Créer le sous-dossier api (dans le dossier modules) contenant deux modules se partageant les méthodes de l'actuelle IsogeoPlgApiManager (api.py) et récupérant des méthodes de **Isogeo** (isogeo.py`) :

  • api/auth.py : Le rôle de ce module sera de gérer l'authentification à l'API Isogeo (affichage du formulaire, stockage et validation des credentials). Il contiendra la nouvelle classe Authenticator qui récupérera toutes les méthodes de l'actuelle IsogeoPlgApiManager (à l'exception de build_request_url()).

  • api/request.py : Le rôle de ce module sera d'effectuer les requêtes à l'API Isogeo (demande de token, construction des URLs, requêtes sur les ressources). Il contiendra la classe ApiRequester qui sera dotée de la méthodes build_request_url() de l'actuelle IsogeoPlgApiManager en plus des méthodes create_request(), send_request() et handle_reply() qui remplaceront les actuelles api_auth_post_get_token(), api_auth_handle_token(), api_get_requests() et api_requests_handle_reply() de Isogeo (isogeo.py).

  • api/shares.py : Ce module contiendra la classe SharesParser, son rôle sera de mettre en forme la réponse de l'API Isogeo à une requête sur les partages. Sa méthode send_share_info() construira une chaîne de caractères à partir de la réponse de l'API qui permettra d'informer l'utilisateur sur les partages alimentant son application. Cela permettre de sortir de la classe principale Isogeo une grande partie des lignes qui composent la méthode write_share_info. (voir Propriétés de l'application #215)

Organisation du code

ApiRequester sera utilisée dans modules/quick_search.py (#176) et isogeo.py. Les paramètres de connexion à l'API Isogeo (credentials et URL) seront passés de Authenticator à ApiRequester via la classe principale Isogeo. Il sera ainsi possible d'effectuer une demande de token (via ApiRequester) permettant d'une part de tester la validité de l'authentification (gérée pas Authenticator) et d'autre part d'effectuer des requête à l'API (via ApiRequester). SharesParser sera connecté au signal shares_sig émis par ApiRequester une fois que le contenu d'une réponse de l'API à une requête sur les partages est reçue validée et traitée. Ce signal passera le contenu traité de la réponse de l'API à la méthode send_share_info() de SharesParser qui mettra en forme les informations reçues dans une chaîne de caractères qui sera affichée dans l'interface du plugin par ce qu'il restera de la méthode write_share_info de Isogeo.

@SimonSAMPERE SimonSAMPERE added the enhancement Amélioration du fonctionnement existant label May 24, 2019
@SimonSAMPERE SimonSAMPERE added this to the Version 2 milestone May 24, 2019
@SimonSAMPERE SimonSAMPERE self-assigned this May 24, 2019
@SimonSAMPERE SimonSAMPERE mentioned this issue Jul 26, 2019
13 tasks
@SimonSAMPERE SimonSAMPERE changed the title Module API sous-dossier "api" Jul 26, 2019
SimonSAMPERE added a commit that referenced this issue Aug 8, 2019
#177

removing old `api.py` and adapting `__init__.py` files of `modules` folder
SimonSAMPERE added a commit that referenced this issue Aug 8, 2019
…ration

#177

replacing old IsogeoPlgApiMngr with new Authenticator or ApiRequester
introducing ApiRequester in Isogeo by signal and slot system
+ cleaning Isogeo
SimonSAMPERE added a commit that referenced this issue Aug 8, 2019
#177

adapting traduction to the renaming of the old IsogeoPlgApiMngr
@SimonSAMPERE SimonSAMPERE added code art Qualité du code source PyQGIS labels Aug 22, 2019
SimonSAMPERE added a commit that referenced this issue Aug 22, 2019
#215
#177
Complete reorganization of the code to allow to send shares request to Isogeo's API asynchronously
SimonSAMPERE added a commit that referenced this issue Aug 22, 2019
#177 #215
Adapting Isogeo main class to new signals and slots system of ApiRequester
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code art Qualité du code source enhancement Amélioration du fonctionnement existant
Projects
None yet
Development

No branches or pull requests

1 participant