2017-06-19 1 views
0

J'ai deux tables faciles configurées dans mon back-end App Azure:Interrogation une autre table facile pour un message de notification push

  • Services avec Id et ServiceName propriétés
  • ServiceDetails avec Id, ServiceID et ServiceDetailDate propriétés

Chaque fois qu'une nouvelle entrée est insérée ServiceDetails, je veux envoyer un message à mes utilisateurs via les notifications push con contenant des informations sur ServiceDetailDate et ServiceName.

Donc ma question est de savoir comment puis-je interroger une autre table pour obtenir des informations de lui? Dans ce cas, on connaît le ServiceID (à partir ServiceDetails tableau), donc je veux obtenir le ServiceName de Services. Quel code dois-je ajouter pour extraire le ServiceName de l'objet serviceInfo (dans le message de charge utile) vers mon script pour répondre à cette requête?

En fait, je ne suis pas sûr de la requête et des instructions ServiceInfo, donc si je me trompe avec le code, ne hésitez pas à me diriger dans la bonne direction.

var azureMobileApps = require('azure-mobile-apps'), 
promises = require('azure-mobile-apps/src/utilities/promises'), 
logger = require('azure-mobile-apps/src/logger'), 
queries = require('azure-mobile-apps/src/query'); 

var table = azureMobileApps.table(); 

table.insert(function (context) { 
    var query = queries.create('Services'); 
    var serviceInfo = query.where({'Id': context.item.ServiceID}); 

    var payload = '{"messageParam": "Your service -service name- has been added on ' + context.item.ServiceDetailDate + '" }'; 

    return context.execute() 
     .then(function (results) { 
      if (context.push) { 
       context.push.send(null, payload, function (error) { 
        if (error) { 
         logger.error('Error while sending push notification: ', error); 
        } else { 
         logger.info('Push notification sent successfully!'); 
        } 
       }); 
      } 
      return results; 
     }) 
     .catch(function (error) { 
      logger.error('Error while running context.execute: ', error); 
    }); 
}); 

module.exports = table; 

Merci pour votre aide.

Répondre

1

Vous pouvez utiliser le code suivant pour interroger une autre table facile à ServiceDetails.js.

table.insert(function (context) { 
    return context.tables('Services') 
     .where({ Id: context.item.ServiceID }) 
     .select('ServiceName') 
     .read() 
     .then(function (data) { 
      var message = 'Your service ' + data[0].ServiceName + ' has been added on ' + context.item.ServiceDetailDate; 
      var payload = '{"messageParam": "' + message + '"}'; 

      return context.execute().then(function (results) { 
       //.. 
      }); 
     }); 
}); 
+0

Génial, merci. Cela fonctionne et j'ai fini mon application à l'heure :) –