Projet

Général

Profil

Development #41092

Connecteur SMS, Orange Contact Everyone

Ajouté par Frédéric Péters il y a environ 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Version cible:
-
Début:
27 mars 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Développé par le CD44, cf https://dev.entrouvert.org/issues/39342#note-1

Ce serait super de l'intégrer qu'on puisse ainsi le faire évoluer lors des modifications générales sur les connecteurs SMS.


Fichiers

0001-orange_sms-initial-version-41092.patch (13,2 ko) 0001-orange_sms-initial-version-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 30 mars 2020 16:01
0001-orange_sms-initial-version-41092.patch (10,7 ko) 0001-orange_sms-initial-version-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 30 mars 2020 16:43
0001-orange_sms-initial-version-41092.patch (15,1 ko) 0001-orange_sms-initial-version-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 06 avril 2020 07:38
0001-orange_sms-initial-version-41092.patch (15,4 ko) 0001-orange_sms-initial-version-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 06 avril 2020 10:22
0001-orange_sms-initial-version-41092.patch (15,5 ko) 0001-orange_sms-initial-version-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 10 avril 2020 11:31
0001-orange_sms-update-connector-to-API-v1.2-41092.patch (19,4 ko) 0001-orange_sms-update-connector-to-API-v1.2-41092.patch Nicolas Roche (absent jusqu'au 3 avril), 12 avril 2020 13:39

Demandes liées

Dupliqué par Passerelle - Support #41166: Intégrer le connecteur sms-orange-rest du CD44 Rejeté30 mars 2020

Actions

Révisions associées

Révision f618ebc9 (diff)
Ajouté par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

orange: update contact everyone SMS connector to API v1.2 (#41092)

adapted from https://github.com/departement-loire-atlantique/passerelle-orangesms

Révision 22a8d285 (diff)
Ajouté par Frédéric Péters il y a presque 4 ans

orange: use English in labels (#41092)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Dupliqué par Support #41166: Intégrer le connecteur sms-orange-rest du CD44 ajouté
#2

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

J'ai intégré la licence aux deux fichiers source.
J'ai ajouté le connecteur aux tests génériques sur les SMS dans test_sms.py.

#3

Mis à jour par Valentin Deniaud il y a presque 4 ans

Pour les tests, il faut plutôt ne rien toucher. D'un côté il y a ceux qui utilisent la fixture connector sans paramètre et qui du coup vont automagiquement tester le nouveau connecteur. De l'autre, ceux qui se limitent explicitement à un seul connecteur, avec dans l'idée que le code qui est testé est celui de SMSResource, donc pas besoin de les faire tourner pour tout le monde.

#4

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Yep, les tests ajoutés ci-dessus n'apportaient aucune couverture supplémentaire.

#5

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

import requests

Utiliser resource.requests (le plus simple c'est d'ajouter un paramètre session au constructeur de OrangeAPI et d'y passer self.requests à la construction).

raise requests.RequestException("Group name not found: " + group_name)

Plutôt APIError ? Et virer le try/except RequestException vu que c'est déjà géré ailleurs il me semble ou en tout cas par RequestsWrapper.

db_table = 'sms_orangerest'

Non. Corriger la migration au passage.

MIT ...

Mettre aussi GPL et nous aussi comme auteurs (vu qu'on modifie des trucs et que de toute façon on relicence tout et on ne distribue que sous GPL).

#6

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Pour la licence :

# passerelle - uniform access to multiple data sources and services
#
# MIT License
# Copyright (c) 2020  departement-loire-atlantique
#
# GNU Affero General Public License
# Copyright (C) 2020  Entr'ouvert
#
# This program is free software...

Concernant la remarque sur le nom de la table, est-ce pour ne pas rentrer en conflit avec le connecteur installé au CD44 ?

db_table = 'sms_orangerest'

J'ai ajouté des tests de couverture, mais je n'ai pas encore reçu d'accès via le service commercial d'orange pour ajouter le contenu des réponses reçues (ou alors je les ai manqués en lisant mes mails).

#7

Mis à jour par Frédéric Péters il y a presque 4 ans

Utiliser resource.requests (...)

Je vois la dernière branche et c'est maintenant fait mais en passant l'objet aux différentes fonctions; ce qu'il faut plutôt, à mon sens, c'est déplacer les fonctions pour qu'elles soient des méthodes de l'objet, qu'elles puissent alors faire self.requests.

Tant qu'à y être, renommer login en get_access_token puisqu'il semble s'agir de ça.

+    username = models.CharField(verbose_name='Identifiant', max_length=64)
+    password = models.CharField(verbose_name='Mot de passe', max_length=64)
+    groupname = models.CharField(verbose_name='Groupe', max_length=64)

Passer par gettext.

#9

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

Nicolas Roche a écrit :

Concernant la remarque sur le nom de la table, est-ce pour ne pas rentrer en conflit avec le connecteur installé au CD44 ?

Non, juste parce qu'on ne fait jamais ça, on s'attend à ce que les tables aient pour préfixe le nom de l'application.

#10

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

Il me semble qu'on peut faire requests.post(..., json={'trucmuche': 1}) de nos jours.

#11

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Remarque prise en compte :

response = self.requests.post(
    URL_DIFFUSION % group_id, json=payload, headers=headers)

Je ne suis pas convaincu pour le nom des tables, cela dit je peux renommer partout, dans ce connecteur, "orange" en "contact_everyone" ?

$ find passerelle -name 'models.py' -exec grep db_table {} \;
        db_table = 'sms_choosit'
        db_table = 'sms_mobyt'
        db_table = 'sms_ovh'
        db_table = 'sms_oxyd'
        db_table = 'sms_orangerest'
        db_table = 'sms_orange'

#12

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

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

Nicolas Roche a écrit :

Remarque prise en compte :
[...]

Je ne suis pas convaincu pour le nom des tables, cela dit je peux renommer partout, dans ce connecteur, "orange" en "contact_everyone" ?
[...]

Je ne savais pas que c'était le cas partout pour les modules, ok donc.

#13

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Par contre, j'ai modifié le nom du répertoire pour plus de cohérence :

<<<
passerelle/apps/orange_sms
---
passerelle/apps/orangerest
>>>

#14

Mis à jour par Thomas Noël il y a presque 4 ans

Nicolas Roche a écrit :

Par contre, j'ai modifié le nom du répertoire pour plus de cohérence :
[...]

Je pige pas, la cohérence c'est orange_sms plutôt, non ? (orangerest ça ne veut rien dire du tout, je vois pas très bien ce que le mot "rest" vient faire dans tout cette histoire)

#15

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Dans #36921 quand il était question de faire passer en zeep le connecteur d'origine, on a noté que la version v1.2 de leur API se dénomait l'"API REST"
cf https://contact-everyone.orange-business.com/api/docs/guides/?shell#6-declencher-une-diffusion-structure-d-39-une-diffusion

De son côté, le CD44 a proposé le code original de ce nouveau connecteur et a créé la classe OrangeRestSMSGateway.
https://github.com/departement-loire-atlantique/passerelle-orangesms

Comme j'avais fait le même constat j'ai gardé leur nom de classe.
Ensuite, je trouvais effectivement pratique de rajouter '_sms' au nom du répertoire, mais suite à la remarque de Benjamin, je me suis dit qu'il fallait mieux essayer de coller à ce qui est fait pour les autres applications.
Aucun autre connecteur SMS ne fait mention à 'SMS' dans son nom.

$ git grep 'import SMSResource' passerelle/apps/ | cut -d':' -f1 | cut -d'/' -f3
choosit
mobyt
orange
ovh
oxyd
twilio

Ce connecteur vient en remplacement du connecteur orange. Pour moi, "orangerest" signifie "orange_v1.2".
Comme je ne voit pas non plus de numéro de version je proposai "contact_everyone", bien que ce soit un peu long.

#16

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

orange2 ?

#17

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

  • Statut changé de Solution proposée à Information nécessaire
  • Assigné à mis à Nicolas Roche (absent jusqu'au 3 avril)

(moi ça m'irait, mais dites-moi)

#18

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

Tu peux aussi simplement dégager l'ancien et prendre sa place vu qu'il ne fonctionne plus.

#19

Mis à jour par Thomas Noël il y a presque 4 ans

Benjamin Dauvergne a écrit :

Tu peux aussi simplement dégager l'ancien et prendre sa place vu qu'il ne fonctionne plus.

C'est tout à fait ce que j'imaginais.

#20

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

  • Assigné à changé de Nicolas Roche (absent jusqu'au 3 avril) à Brice Mallet

Je pense qu'il fonctionne encore, mais qu'Orange ne lui délivre plus de nouveaux accès pour l'ancienne API.
Il n'y plus que Fondette qui "semble" encore l'utiliser : https://passerelle-fondettes.entrouvert.com/orange/orange/
cf https://dev.entrouvert.org/issues/36921#note-5

Brice,
Pourrais-tu leur demander s'ils peuvent mettre à jour leurs accès Contact Everyone ?

#23

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

Voilà.

#24

Mis à jour par Frédéric Péters il y a presque 4 ans

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

Ok mais modifier le commentaire de commit pour écrire "adapted" plutôt que "copied" parce que ça a quand même bien évolué.

#25

Mis à jour par Nicolas Roche (absent jusqu'au 3 avril) il y a presque 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit f618ebc9374f559a671ec751e17dacdf9db89540
Author: Nicolas ROCHE <nroche@entrouvert.com>
Date:   Mon Mar 30 14:38:42 2020 +0200

    orange: update contact everyone SMS connector to API v1.2 (#41092)

    adapted from https://github.com/departement-loire-atlantique/passerelle-orangesms
#26

Mis à jour par Frédéric Péters il y a presque 4 ans

Et tout à fait zappé que les libellés avaient été tapés en français. (mais heureusement double erreur appel de gettext dessus, ce qui a permis de voir ça au moment de la traduction).

    username = models.CharField(verbose_name=_('Identifiant'), max_length=64)
...

Commit supplémentaire poussé pour corriger ça.

#27

Mis à jour par Frédéric Péters il y a presque 4 ans

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

Formats disponibles : Atom PDF