TopicAPIUtilsOOB : délimité

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 12 minutes de lecture
  • L’include de script TopicAPIUtilsOOB fournit des méthodes utilisées lors du traitement du point de terminaison de l’API Open Topic de Gestion des événements .

    Si vous souhaitez modifier la fonctionnalité par défaut de l’API Gestion des événements Topic Open, vous devez remplacer les fonctions contenues dans cet include de script dans l’include de script TopicAPIUtils .

    Cet include de script s’exécute dans l’espace de noms sn_api_notif_mgmt et requiert le rôle sn_api_notif_mgmt.event_mgmt_integration.

    TopicAPIUtilsOOB : createTopicHelper(Objet, topicObject, tableau, avertissements)

    Insère les informations transmises dans le point de terminaison Event Management Topic Open API - POST /sn_api_notif_mgmt/topic dans la table Topic [sn_api_notif_mgmt_topic].

    Si vous souhaitez modifier ce processus d’insertion, vous devez remplacer cette méthode dans l’include de script TopicAPIUtils .

    Tableau 1. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    avertissements Tableau Messages d’avertissement à renvoyer dans la réponse du Ouvrir l’API de la rubrique Gestion des événements point de terminaison si la méthode rencontre un problème au niveau d'« avertissement ».

    Ce paramètre vous permet d’ajouter des messages d’avertissement personnalisés à votre implémentation de ce point de terminaison.

    S’il n’y a pas de messages d’avertissement supplémentaires, vous devez transmettre un tableau vide.

    Tableau 2. Renvoie
    Type Description
    Objet Objet de réponse.
    {
      "contentQuery": "String",
      "eventType": "String",
      "externalId": "String",
      "headerQuery": "String",
      "id": "String",
      "name": "String"
    }

    Pour plus de détails sur ces paramètres, consultez les résultats de retour pour Rubrique Gestion des événements Ouverte : POST /sn_api_notif_mgmt/rubrique.

    L’exemple de code suivant montre comment appeler cette méthode.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB : getCreateTopicSchema()

    Retourne le schéma défini pour la charge utile utilisée par l’API ouverte de la rubrique Gestion des événements : point de terminaison POST /sn_api_notif_mgmt/topic pour valider la charge utile de la rubrique.

    Si vous souhaitez personnaliser le schéma de la charge utile de la rubrique, vous devez remplacer le schéma de charge utile par défaut, Constants.SCHEMA, situé dans le sn_api_notif_mgmt. Include de script des constantes . La valeur par défaut de ce schéma est :
    CREATE_TOPIC_SCHEMA: "{
      \"title\":\"Topic\",
      \"type\":\"object\",
      \"properties\":{
        \"name\":{
          \"type\":\"string\"
        },
        \"contentQuery\":{
          \"type\":\"string\"
        },
        \"headerQuery\":{
          \"type\":\"string\"
        },
        \"namespace\":{
          \"type\":\"string\"
        }
      },
      \"required\":[\"name\"]
    }"
    Tableau 3. Paramètres
    Nom Type Description
    Néant
    Tableau 4. Renvoie
    Type Description
    Chaîne Schéma pour l’API ouverte de rubrique de gestion des événements : charge utile du point de terminaison POST /sn_api_notif_mgmt/topic . Utilisez ce schéma pour valider le schéma transmis au point de terminaison à l’aide de la TopicAPIUtilsOOB : isValidCreateTopicPayload(Objet topicObject, schéma de chaîne, tableau avertissements) méthode.

    L’exemple de code suivant montre comment appeler cette méthode.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB : isValidCreateTopicPayload(Objet topicObject, schéma de chaîne, tableau avertissements)

    Valide la charge utile transmise dans l’API ouverte de la rubrique de gestion des événements : point de terminaison POST /sn_api_notif_mgmt/topic . Cette validation est effectuée sur le corps de la demande et le schéma.

    Si vous souhaitez modifier le processus de validation de la charge utile, vous devez remplacer cette méthode dans l’include de script TopicAPIUtils .

    Tableau 5. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    Schéma Chaîne Schéma à utiliser pour valider la charge utile de la rubrique. Utilisez la TopicAPIUtilsOOB : getCreateTopicSchema() méthode pour obtenir ce schéma.
    avertissements Tableau Messages d’avertissement à renvoyer dans la réponse du Ouvrir l’API de la rubrique Gestion des événements point de terminaison si la méthode rencontre un problème au niveau d'« avertissement ».

    Ce paramètre vous permet d’ajouter des messages d’avertissement personnalisés à votre implémentation de ce point de terminaison.

    S’il n’y a pas de messages d’avertissement supplémentaires, vous devez transmettre un tableau vide.

    Tableau 6. Renvoie
    Type Description
    Booléen Marqueur indiquant si la charge utile transmise dans le topicObject paramètre a passé les validations de schéma et de corps de demande.
    Valeurs valides :
    • vrai : la charge utile est valide.
    • faux : la charge utile n’est pas valide.

    L’exemple de code suivant montre comment appeler cette méthode.

    processTopicCreation: function(topicObject) {
      try {
        var warnings = [];
    
        var schema = this.getCreateTopicSchema();
        if (!this.isValidCreateTopicPayload(topicObject, schema, warnings)) {
          this._logger.logDebug("Create Topic : validation failed");
          return this.response;
        }
        this.createTopicHelper(topicObject, warnings);
        this._logger.logDebug("Create Topic: Topic created succesfully");
      } catch (ex) {
        this._logger.logErr("Create Topic : Process aborted, error is: " + ex);
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR, Constants.MESSAGES.TOPIC_CREATE_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(ex.message + '', ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    
      return this.response;
    },

    TopicAPIUtilsOOB : prepareCreateTopicResponse(Objet topicObject, chaîne topicSysId, tableau avertissements)

    Génère et renvoie la réponse à un appel de point de terminaison POST /sn_api_notif_mgmt/topic Topic Open API et renvoie la réponse à ce sujet.

    Si vous souhaitez personnaliser l’objet de réponse renvoyé par le point de terminaison Event Management Topic Open API - POST /sn_api_notif_mgmt/topic , vous devez remplacer cette méthode dans l’include de script TopicAPIUtils .

    Tableau 7. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    topicSysId Chaîne Sys_id de la rubrique créée dans le cadre de l’appel POST /sn_api_notif_mgmt/topic de l’API ouverte de la rubrique de gestion des événements.

    Table : Rubrique [sn_api_notif_mgmt_topic]

    avertissements Tableau Messages d’avertissement à renvoyer dans la réponse du Ouvrir l’API de la rubrique Gestion des événements point de terminaison si la méthode rencontre un problème au niveau d'« avertissement ».

    Ce paramètre vous permet d’ajouter des messages d’avertissement personnalisés à votre implémentation de ce point de terminaison.

    S’il n’y a pas de messages d’avertissement supplémentaires, vous devez transmettre un tableau vide.

    Tableau 8. Renvoie
    Type Description
    Objet Objet de réponse du point de terminaison.
    Par exemple :
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    L’exemple de code suivant montre comment appeler cette méthode.

     createTopicHelper: function(topicObject, warnings) {
      var topicObj = new sn_tmt_core.BaseObject();
      topicObj.setValue('topic_name', topicObject.name);
      if (!gs.nil(topicObject.headerQuery))
        topicObj.setValue('header_query', topicObject.headerQuery);
      if (!gs.nil(topicObject.contentQuery))
        topicObj.setValue('content_query', topicObject.contentQuery);
      if (!gs.nil(topicObject.namespace))
        topicObj.setValue('namespace', topicObject.namespace);
      if (!gs.nil(topicObject.externalId))
        topicObj.setValue('topic_id', topicObject.externalId);
      topicObj.setValue('type', "egress");
      topicObj.setValue('user_created', false);
    
      new TopicUtil().createTopic(topicObj);
    
      // If topic external id is passed by external system, add it in topic id field. This will act as an external id for us.
    
      var topicGr = TopicDAO.getTopicByNameHeaderContentNamespace(topicObject.name, topicObject.headerQuery, topicObject.contentQuery, topicObject.namespace, '');
    
      if (topicGr && topicGr.next())
        var newTopicSysId = topicGr.getValue('sys_id');
    
        this.prepareCreateTopicResponse(topicObject, newTopicSysId, warnings);
        return this.response;
    
    },

    TopicAPIUtilsOOB : processTopicCreation(Objet, topicObject)

    Traite la demande effectuée par le point de terminaison d’API Open API de rubrique Gestion des événements .

    Cette méthode invoque les méthodes d’assistance nécessaires à l’insertion de données, à la validation de schéma, à la validation du corps de la demande et à l’orchestration des réponses. Remplacez cette méthode si vous devez personnaliser le traitement fondamental de la Rubrique Gestion des événements Ouverte : POST /sn_api_notif_mgmt/rubrique demande. Sinon, remplacez les méthodes d’assistance individuelles.

    Tableau 9. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    Tableau 10. Renvoie
    Type Description
    Objet Objet de réponse du point de terminaison.
    Par exemple :
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    L’exemple de code suivant montre comment appeler cette méthode.

    try {
      var topicAPIUtils = new TopicAPIUtils();
      var apiResponse = topicAPIUtils.processTopicCreation(request.body.data);
      response.setStatus(apiResponse.status);
      return tsmOpenAPIUtil.responseBuilder(response, apiResponse.details);
    } 

    TopicAPIUtilsOOB : transformCreateTopicResponse(Objet topicObject, chaîne topicSysId)

    Permet d’ajouter des données personnalisées à l’objet de réponse renvoyé à l’API ouverte de la rubrique Gestion des événements : point de terminaison POST /sn_api_notif_mgmt/topic .

    Pour personnaliser cet objet de réponse, remplacez cette méthode dans l’include de script TopicAPIUtils .

    Tableau 11. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    topicSysId Chaîne Sys_id de la rubrique créée dans le cadre de l’appel POST /sn_api_notif_mgmt/topic de l’API ouverte de la rubrique de gestion des événements. Vous pouvez ajouter les informations de cet enregistrement à l’objet de réponse de rubrique.

    Table : Rubrique [sn_api_notif_mgmt_topic]

    Tableau 12. Renvoie
    Type Description
    Objet Objet de réponse du point de terminaison transformé. Cet objet doit être conforme à la norme TMF688.
    Par exemple :
    
    {
      "externalId": "ext001",
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "namespace": "telecomEvents",
      "id": "7ee9850443c3f550461f99612bb8f223"
    }

    L’exemple de code suivant montre comment appeler cette méthode.

    prepareCreateTopicResponse: function(topicObject, topicSysId, warnings) {
      if (!gs.nil(topicSysId)) {
        topicObject.id = topicSysId;
        this.response.status = sn_tmt_core.Constants.STATUS_CODES.CREATED;
        topicObject = this.transformCreateTopicResponse(topicObject, topicSysId); // Customize response payload as per requirement.
        this.response.details = topicObject;
        if (!gs.nil(warnings) && warnings.length > 0) {
          this.response.details.warnings = warnings;
        }
      } else {
        var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.INTERNAL_ERROR, Constants.MESSAGES.CREATE_TOPIC_ERROR, Constants.MESSAGES.CREATE_TOPIC_ERROR);
        var details = [];
        details.push(this.apiCoreUtil.getErrorDetailsObj(Constants.MESSAGES.CREATE_TOPIC_ERROR, ''));
        errorObj.details = details;
        this.response.details = errorObj;
      }
    },

    L’exemple de code suivant montre le code permettant de remplacer la fonctionnalité par défaut de cette méthode.

    transformCreateTopicResponse: function(topicObject, topicSysId) {
      new sn_tmt_core.BaseAPIUtil().removeNulls(topicObject);
    
      // Add custom attributes to the topicObject
      topicObject.origin = “ServiceNow”,
      topicObject.ServiceId= “service001”,
      return topicObject;
    },

    TopicAPIUtilsOOB : validateTopicAttributes (objet, topicObject, détails du tableau)

    Valide si la combinaison nom de rubrique, requête d’en-tête, requête de contenu et espace de noms transmise dans la charge utile du point de terminaison de l’API Ouvrir la rubrique Gestion des événements est unique.

    Le point de terminaison utilise ces combinaisons d’attributs pour déterminer si la rubrique existe actuellement dans la table Rubrique [sn_api_notif_mgmt_topic].

    Si vous souhaitez modifier le processus de validation, vous devez remplacer cette méthode dans l’include de script TopicAPIUtils .

    Tableau 13. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    Détails Tableau Messages d’avertissement à renvoyer dans la réponse du Ouvrir l’API de la rubrique Gestion des événements point de terminaison si la méthode rencontre un problème au niveau d'« avertissement ».

    Ce paramètre vous permet d’ajouter des messages d’avertissement personnalisés à votre implémentation de ce point de terminaison.

    S’il n’y a pas de messages d’avertissement supplémentaires, vous devez transmettre un tableau vide.

    Tableau 14. Renvoie
    Type Description
    Booléen Marqueur indiquant si la combinaison nom de rubrique, requête d’en-tête, requête de contenu et espace de noms transmise dans le topicObject paramètre est unique.
    Valeurs valides :
    • vrai : la combinaison de paramètres est unique.
    • faux : la combinaison de paramètres n’est pas unique.

    L’exemple de code suivant montre comment appeler cette méthode.

    isValidCreateTopicPayload: function(topicObject, schema, warnings) {
      var isValidPayload = true;
      var details = [];
      var validationResults = this.jsonSchemaValidation.validateJSON(topicObject, schema, ''); // Schema validation
      var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD);
    
      if (validationResults.length > 0) {
        if (validationResults[0].message == Constants.PAYLOAD_MISSING) {
          this._logger.logDebug("isValidCreateTopicPayload: Missing request body, invalid payload");
          errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY);
          details.push(this.apiCoreUtil.getErrorDetailsObj(sn_tmt_core.Constants.MESSAGES.MISSING_BODY, ''));
          errorObj.details = details;
          this.response.details = errorObj;
          return false;
        } else {
          for (var i = 0; i < validationResults.length; i++) {
            var missingFieldMsg = sn_tmt_core.Constants.MESSAGES.MISSING_FIELD_KEY;
            var message = validationResults[i].message;
            var errorMessage = '';
            if (message.indexOf('missing') != -1) {
              var newMessage = this.apiCoreUtil.constructErrorMsg(message, validationResults[i].dataPath);
              errorMessage = missingFieldMsg.replace(/\$key/g, newMessage);
            } else {
              errorMessage = message;
            }
            details.push(this.apiCoreUtil.getErrorDetailsObj(errorMessage, validationResults[i].dataPath));
          }
        }
        isValidPayload = false;
      }
      var isValidTopicExternalId = this.validateTopicExternalId(topicObject, details);
      var isValidTopicAttributes = this.validatateTopicAttributes(topicObject, details);
    
      isValidPayload = isValidPayload && isValidTopicExternalId && isValidTopicAttributes;
        if (!isValidPayload) {
          errorObj.details = details;
          this.response.details = errorObj;
        }
        return isValidPayload;
      },

    TopicAPIUtilsOOB : validateTopicExternalId(Objet, topicObject, détails du tableau)

    Valide l’ID externe de la rubrique transmis dans le corps de la demande du point de terminaison d’API ouverte de rubrique Gestion des événements .

    Dans l’implémentation de base, cela valide seulement que l’ID externe n’est pas vide. Si vous souhaitez modifier le processus de validation de l’ID externe de la rubrique, vous devez remplacer cette méthode dans l’include de script TopicAPIUtils . L’ID externe transmis est mappé au champ topic_id dans la table Rubrique [sn_api_notif_mgmt_topic].

    Tableau 15. Paramètres
    Nom Type Description
    Objet de rubrique Objet Objet de charge utile de rubrique transmis au point de Ouvrir l’API de la rubrique Gestion des événements terminaison.
    Par exemple :
    {
      "name": "HighPriorityTroubleTicket",
      "headerQuery": "eventType=TroubleTicketStatusChangeEvent,TroubleTicketAttributeChangeEvent",
      "contentQuery": "troubleTicket.ticketType=incident&troubleTicket.severity=1",
      "externalId": "ext001",
      "namespace": "telecomEvents"
    }

    Le schéma de cet objet doit correspondre à ce qui est défini dans Constants.SCHEMA.CREATE_TOPIC_SCHEMA situé dans le sn_api_notif_mgmt. Include de script des constantes .

    Détails Tableau Messages d’erreur/de détail à renvoyer dans la réponse du Ouvrir l’API de la rubrique Gestion des événements point de terminaison si la méthode rencontre un problème au niveau d'« erreur ».

    Ce paramètre vous permet d’ajouter des messages d’erreur personnalisés à votre implémentation de ce point de terminaison.

    S’il n’y a pas de messages d’erreur supplémentaires, vous devez transmettre un tableau vide.

    Tableau 16. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’ID externe transmis dans le topicObject paramètre est valide.
    Valeurs valides :
    • vrai : l’ID externe est valide.
    • faux : l’ID externe n’est pas valide.

    L’exemple de code suivant montre comment appeler cette méthode.

    isValidCreateTopicPayload: function(topicObject, schema, warnings) {
      var isValidPayload = true;
      var details = [];
      var validationResults = this.jsonSchemaValidation.validateJSON(topicObject, schema, ''); // Schema validation
      var errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD, sn_tmt_core.Constants.MESSAGES.MISSING_BODY_FIELD);
    
      if (validationResults.length > 0) {
        if (validationResults[0].message == Constants.PAYLOAD_MISSING) {
          this._logger.logDebug("isValidCreateTopicPayload: Missing request body, invalid payload");
          errorObj = this.apiCoreUtil.getErrorObj(sn_tmt_core.Constants.ERROR_CODES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY, sn_tmt_core.Constants.MESSAGES.MISSING_BODY);
          details.push(this.apiCoreUtil.getErrorDetailsObj(sn_tmt_core.Constants.MESSAGES.MISSING_BODY, ''));
          errorObj.details = details;
          this.response.details = errorObj;
          return false;
        } else {
          for (var i = 0; i < validationResults.length; i++) {
            var missingFieldMsg = sn_tmt_core.Constants.MESSAGES.MISSING_FIELD_KEY;
            var message = validationResults[i].message;
            var errorMessage = '';
            if (message.indexOf('missing') != -1) {
              var newMessage = this.apiCoreUtil.constructErrorMsg(message, validationResults[i].dataPath);
              errorMessage = missingFieldMsg.replace(/\$key/g, newMessage);
            } else {
              errorMessage = message;
            }
            details.push(this.apiCoreUtil.getErrorDetailsObj(errorMessage, validationResults[i].dataPath));
          }
        }
        isValidPayload = false;
      }
      var isValidTopicExternalId = this.validateTopicExternalId(topicObject, details);
      var isValidTopicAttributes = this.validatateTopicAttributes(topicObject, details);
    
      isValidPayload = isValidPayload && isValidTopicExternalId && isValidTopicAttributes;
        if (!isValidPayload) {
          errorObj.details = details;
          this.response.details = errorObj;
        }
        return isValidPayload;
      },