Projet

Général

Profil

Development #51884

eSirius : ajouter la possibilité de modifier un rendez-vous (PUT)

Ajouté par Thomas Noël il y a environ 3 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
10 mars 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

On a POST, GET et DELETE : ajoutons PUT qui a priori suit le même schéma que POST.


Fichiers


Demandes liées

Lié à Passerelle - Development #51983: Prise en compte de la méthode PUT sur les endpointsRejeté12 mars 2021

Actions

Révisions associées

Révision 909a2995 (diff)
Ajouté par Nicolas Roche il y a environ 3 ans

esirius: add an update endpoint (#51884)

Historique

#2

Mis à jour par Thomas Noël il y a environ 3 ans

  • Assigné à mis à Nicolas Roche
#4

Mis à jour par Nicolas Roche il y a environ 3 ans

  • Fichier put.py ajouté
  • Statut changé de Nouveau à Information nécessaire

J'ai l'impression que ce service web ne fonctionne pas.

Si j'utilise le PUT tel qu'il est spécifié dans le swagger (http://185.71.148.19/swagger-ui/#/Appointment/updateAppointment)
j'obtiens :

Erreur 404
{'code': 'Not Found', 'message': "Le rendez-vous {0} n'existe pas"}

Si j'utilise le put tel qu'il est décrit par exemple ici : https://restfulapi.net/rest-put-vs-post/
ex: PUT /questions/{question-id}
j'obtiens :

Erreur 405
(pas de message)

Je joins un script qui permet de reproduire ces erreurs.

#6

Mis à jour par Thomas Noël il y a environ 3 ans

  • Fichier put.py supprimé
#7

Mis à jour par Thomas Noël il y a environ 3 ans

Dans le payload du PUT il faut envoyer le codeRDV du rendez-vous à modifier. (test facile : prendre le résultat du GET, modifier le commentaire, injecter avec PUT, it works)

#8

Mis à jour par Nicolas Roche il y a environ 3 ans

  • Lié à Development #51983: Prise en compte de la méthode PUT sur les endpoints ajouté
#9

Mis à jour par Nicolas Roche il y a environ 3 ans

#10

Mis à jour par Thomas Noël il y a environ 3 ans

Impec.

Mais tu me connais, j'aime bien être tatasse ;-)

Pour que les choses soient plus claires, je te propose de faire dans le models.py un schéma spécial pour l'update :

UPDATE_APPOINTMENT_SCHEMA = CREATE_APPOINTMENT_SCHEMA
UPDATE_APPOINTMENT_SCHEMA['required'] = ['CodeRDV',]      # bon, d'autres aussi sont requis sans doute, mais codeRDV c'est sûr alors mettons juste celui-là :)

... que tu utiliseras dans le @endpoint de l'update

et dans le test, ne pas se fatiguer à fabriquer un payload mais juste :

UPDATE_APPOINTMENT_PAYLOAD = GET_APPOINTMENT_RESPONSE

et juste vérifier alors qu'après un del UPDATE_APPOINTMENT_PAYLOAD['CodeRDV'] le endpoint renvoie une 400 sans interroger esirius (esirius_mock.call_count ne bouge pas).

Un truc aussi, dans les tests il ne faut pas inventer de domaines genre « dummy-server.org » : il faut utiliser example.net, example.org ou example.com de la RFC 2606. (moi j'aime bien example.net mais chacun ses goûts). A faire dans un patch à part éventuellement (un patch "global" parce que tu sembles l'aimer ce domaine, dans tes autres créations ;) )

Pour le reste ça me parait tout bien, je te rassure déjà !

#11

Mis à jour par Nicolas Roche il y a environ 3 ans

Remarques prises en compte.

Juste pour info, il y a une typo dans le swagger
qui indique que CodeRDV prend une majuscule dans les paylod de POST et PUT et dans la réponse de GET (mais pas comme paramètre dans l'URL). En fait les 2 othographes dans le payload sont accéptées par eSirius. Comme le service web GET eSirius nous retourne la version en minuscule, j'ai modifié le connecteur pour qu'il l'accepte afin que l'on puisse recopier la réponse dans le payload du PUT sans avoir à adapter le nom de l'attribut.

il faut utiliser example.net

traite dans #52048

#12

Mis à jour par Thomas Noël il y a environ 3 ans

  • Statut changé de Solution proposée à Solution validée
#13

Mis à jour par Nicolas Roche il y a environ 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 909a2995033725dd2df2d992e13ac97ee2a05529
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Thu Mar 11 15:54:25 2021 +0100

    esirius: add an update endpoint (#51884)
#14

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF