Development #42427
Déplacer le code clean_number utilisés par les connecteurs SMS dans SMSResource
0%
Description
Dans #39650 on va se baser sur la sortie de clean_number()
pour valider les numéros authorisés, et donc on peut supposer que cette fonction sera également appelée par tous les nouveaux connecteurs SMS.
Et ce sont les numéros passés par
clean_numbers
qui arrivent ici, donc on connaît la structure.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Nicolas Roche il y a presque 4 ans
- Lié à Development #39650: connecteurs SMS, option pour refuser les numéros surchargés ajouté
Mis à jour par Frédéric Péters il y a presque 4 ans
Mais c'est déjà le cas :
passerelle/apps/choosit/models.py: destinations = self.clean_numbers(destinations, passerelle/apps/mobyt/models.py: destinations = self.clean_numbers(destinations, passerelle/apps/orange/models.py: destinations = self.clean_numbers( passerelle/apps/ovh/models.py: destinations = self.clean_numbers(destinations, passerelle/apps/oxyd/models.py: destinations = self.clean_numbers(destinations, passerelle/base/models.py: def clean_numbers(cls, destinations, default_country_code='33',
(?)
Mis à jour par Nicolas Roche il y a presque 4 ans
Oui, puisque c'est généralisé, placer cet appel dans le code générique SMS, en dehors des connecteurs.
(Afin d'éviter que le code d'une potentielle nouvelle fonction de vérification des numéros autorisés soit appelé dans chacun des connecteurs).
Mis à jour par Frédéric Péters il y a presque 4 ans
Je ne comprends toujours pas ce que tu veux faire ici, le code est déjà factorisé, unique, appelé par les différents connecteurs. (mais bon, je peux me taire et attendre le patch pour comprendre).
Mis à jour par Nicolas Roche il y a presque 4 ans
- Fichier 0001-sms-factorize-clean_number-call-42427.patch 0001-sms-factorize-clean_number-call-42427.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
- ils l'utilisent tous sans exception
- que la validation des numéros autorisés se basera dessus
Et donc je voudrais factoriser l'appel à cette fonction (cf ma branche sur #39650) :
@endpoint(perm='can_send_messages', methods=['post']) def send(self, request, *args, **kwargs): ... data['to'] = self.clean_numbers(data['to']) self.authorize_numbers(data['to']) ... result = {'data': self.send_msg(data['message'], data['from'], data['to'], stop=stop)}
Mis à jour par Frédéric Péters il y a presque 4 ans
Ok, je pense que ça aide de prendre les choses dans l'ordre,
1/ tous les connecteurs SMS définissent les attributs default_country_code & default_trunk_prefix → ils pourraient donc être dans la classe de base.
2/ poser qu'alors l'appel à clean_numbers(), qui a besoin de ces infps, peut également être déplacé au niveau de la classe de base.
3/ ne pas recopier les commentaires inopportuns en faisant ça,
FIXME: add regexp field, to check destination and from format
→ ça n'aura pas lieu ainsi, il y a un autre ticket en cours pour la validation
unfortunately it lacks a batch API...
→ lamentation inutile maintenant que le code ne va plus être prévu pour permettre à un fournisseur qui offrirait ça de l'exploiter.
Yeah France first !
(passons)
Et pour revenir à mes interrogations initiales, il ne s'agit donc pas du tout de factoriser le code de clean_numbers, mais bien les appels à cette méthode.
Mis à jour par Nicolas Roche il y a presque 4 ans
Mis à jour par Frédéric Péters il y a presque 4 ans
Le sujet du commit continue à m'interloquer autant que le sujet du ticket; plutôt faire genre "move default country_code/trunk_prefix to base class" ?
Mis à jour par Nicolas Roche il y a presque 4 ans
- Fichier 0001-sms-move-default-country_code-trunk_prefix-to-base-c.patch 0001-sms-move-default-country_code-trunk_prefix-to-base-c.patch ajouté
- Sujet changé de Factoriser le code clean_number utilisés par les connecteurs SMS à Déplacer le code clean_number utilisés par les connecteurs SMS dans SMSResource
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Nicolas Roche il y a presque 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit ae903d89c357b34eda22f616f0588d8b18c50677 Author: Nicolas ROCHE <nroche@entrouvert.com> Date: Tue May 5 11:26:48 2020 +0200 sms: move default country_code/trunk_prefix to base class (#42427)
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
sms: move default country_code/trunk_prefix to base class (#42427)