Projet

Général

Profil

Development #53856

exposer des statistiques /api/statistics/ (pour débuter SMS)

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Avoir /api/statistics/... pour consommation par les cellules combo, il y aurait itération sur les connecteurs pour voir les données à exposer, ça pourrait démarrer concrètement par une information sur la consommation SMS.


Fichiers

Révisions associées

Révision c4c1312a (diff)
Ajouté par Valentin Deniaud il y a presque 3 ans

api: add sms count statistics (#53856)

Historique

#1

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

  • Assigné à mis à Valentin Deniaud
#2

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

API sans authent et sans introduire de dépendance à DRF : je peux ajouter l'un, l'autre ou les deux si nécessaire.

#3

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

Ok la dépendance DRF c'est comme tu veux, elle est pratique parce qu'elle introduit justement l'authentification signature Publik, sans rien avoir de particulier à faire, mais on pourrait tout aussi bien se baser sur les permissions d'accès au connecteur.

Sur le code, j'imaginais quelque chose où un connecteur pouvait fournir des statistiques, plutôt qu'hardcoder ainsi, i.e.

class StatisticsListView(View):
    def get(self, request, *args, **kwargs):
        sources = []
        for app in get_all_apps():
            for connector in app.objects.all():
                if not getattr(connector, 'get_statistics_entries'): continue
                sources.extend(connector.get_statistics_entries())
        return JsonResponse({'data': sources})

et un

    url(r'^(?P<connector>[\w,-]+)/(?P<slug>[\w,-]+)/statistics/(?P<kind_of_stats>[\w,-]+)$', GenericConnectorStatiticsView.as_view())

et cette vue instancierait le connecteur en question, et y appelerait une méthode get_statistics(self, request, kind_of_stats).

i.e. rien de spécifique SMS, les stats SMS étant "juste" le premier utilisateur de l'API générique.

#4

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

Dans ce cas particulier des SMS la question se pose tout de même d'avoir ce truc global, ~100% du temps il n'y a qu'un seul connecteur SMS utilisé à la fois, et si il y a changement de fournisseur SMS (mettons passage d'Orange à OVH) le besoin va être d'avoir des stats continues.
Et si un connecteur est supprimé/recréé/changement de slug on perd l'accès aux anciennes stats.

#5

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

Revoici avec généricité et un accès restreint aux appels signés ou aux superusers.

#6

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

Je ferais bien s/get_api_urls/get_statistics_urls/, histoire d'éviter des confusions et détournements. (C'est mon seul commentaire.)

#8

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

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

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit c4c1312ae25e80c72b9f75952d3b208e376cee97
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Mon May 10 15:40:16 2021 +0200

    api: add sms count statistics (#53856)
#10

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

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

Formats disponibles : Atom PDF