Fork me on GitHub

Plugin DeviceRegistration

Introduction

Le plugin DeviceRegistration permet la gestion des enregistrements d'appareils mobiles pour l'envoi de notifications push. Il offre une solution complète pour enregistrer, consulter et supprimer les tokens d'enregistrement associés aux identités des utilisateurs (GUID/CUID).

Ce plugin expose une API REST sécurisée permettant aux applications mobiles et services externes de gérer les enregistrements d'appareils. Il maintient également un historique complet de toutes les opérations (créations et suppressions) pour des besoins d'audit et de traçabilité.

Les principales fonctionnalités incluent la création d'enregistrements d'appareils avec validation, la récupération des tokens d'enregistrement par critères (customer_id, connection_id), la suppression d'enregistrements et l'historisation automatique de toutes les opérations.

Configuration

Propriétés disponibles

Le fichier de configuration deviceregistration.properties contient les propriétés suivantes :

  • context : Contexte de l'application (par défaut : /lutece)

Beans Spring à injecter

Les beans suivants doivent être configurés dans le contexte Spring (fichier deviceregistration_context.xml) :

  • deviceregistration.deviceRegistrationDAO : DAO pour la gestion des enregistrements d'appareils (classe : fr.paris.lutece.plugins.deviceregistration.business.deviceregistration.DeviceRegistrationDAO)
  • deviceregistration.deviceRegistrationHistoryDAO : DAO pour la gestion de l'historique (classe : fr.paris.lutece.plugins.deviceregistration.business.history.DeviceRegistrationHistoryDAO)
  • deviceregistration.deviceRegistrationRest : Service REST principal (classe : fr.paris.lutece.plugins.deviceregistration.rs.DeviceRegistrationRest)
  • deviceregistration.swaggerRest : Service Swagger pour la documentation API (classe : fr.paris.lutece.plugins.deviceregistration.rs.SwaggerRest)
  • deviceregistration.uncaughtDeviceRegistrationExceptionMapper : Gestionnaire d'exceptions REST (classe : fr.paris.lutece.plugins.deviceregistration.rs.error.UncaughtDeviceRegistrationExceptionMapper)

Classes Daemon

Ce plugin ne contient aucune classe Daemon à activer.

Caches

Ce plugin ne nécessite aucun cache à activer.

Usage

Droits d'administration

Le plugin définit le droit d'administration suivant :

  • DEVICEREGISTRATION_MANAGEMENT : Gestion des enregistrements d'appareils (niveau 1) - Accès via l'URL : jsp/admin/plugins/deviceregistration/ManageDeviceRegistrations.jsp

Services Java exposés

Le plugin expose les services Java suivants :

DeviceRegistrationService (singleton)

  • getInstance() : Obtenir l'instance unique du service
  • createDeviceRegistration(String customerId, String connectionId, String registrationToken, String tokenIssuer) : Créer un nouvel enregistrement d'appareil avec validation des données et création automatique d'une entrée dans l'historique
  • deleteDeviceRegistration(String customerId, String connectionId, String registrationToken, String tokenIssuer) : Supprimer un ou plusieurs enregistrements d'appareils selon les critères fournis avec historisation automatique
  • getRegistrationTokensByCriteria(String customerId, String connectionId, String tokenIssuer) : Récupérer la liste des tokens d'enregistrement selon les critères customer_id et/ou connection_id

DeviceRegistrationHistoryService (singleton)

  • getInstance() : Obtenir l'instance unique du service
  • createDeviceRegistrationHistory(DeviceRegistration deviceRegistration, ChangeType changeType) : Créer une entrée dans l'historique pour tracer les opérations de création et suppression

API REST

Le plugin expose les API REST suivantes (base path : /rest/deviceregistration/v1) :

GET /rest/deviceregistration/v1/token

  • Description : Récupérer tous les tokens d'enregistrement par identité (GUID/CUID)
  • Query Parameters : connectionId (optionnel), customerId (optionnel)
  • Headers requis : CLIENT_CODE (obligatoire) - Code client/émetteur du token
  • Réponse 200 : Token(s) d'enregistrement trouvé(s) (DeviceRegistrationResponse)
  • Réponse 400 : Erreur de traitement avec message d'explication
  • Réponse 404 : Token d'enregistrement non trouvé
  • Content-Type : application/json

POST /rest/deviceregistration/v1/token

  • Description : Créer un nouvel enregistrement d'appareil
  • Headers requis : CLIENT_CODE (obligatoire) - Code client/émetteur du token
  • Body : DeviceRegistrationRequest (JSON) avec customerId, connectionId et registrationToken
  • Réponse 200 : Enregistrement d'appareil créé (DeviceRegistrationResponse)
  • Réponse 400 : Erreur de traitement avec message d'explication
  • Réponse 409 : Le token existe déjà
  • Content-Type : application/json

DELETE /rest/deviceregistration/v1/token

  • Description : Supprimer un enregistrement d'appareil
  • Headers requis : CLIENT_CODE (obligatoire) - Code client/émetteur du token
  • Body : DeviceRegistrationRequest (JSON) avec customerId, connectionId et registrationToken
  • Réponse 204 : Enregistrement d'appareil supprimé avec succès
  • Réponse 400 : Erreur de traitement avec message d'explication
  • Réponse 404 : Aucun enregistrement n'a été supprimé
  • Content-Type : application/json

Documentation Swagger disponible via le plugin swaggerui.