Node push notification

From DreamFactory
Jump to: navigation, search
DreamFactoryTutorialsNode push notification

This script uses a pre-configured push notification service to send notifications when new records are created.

<source lang="javascript"> // To enable Node.js scripting, set the path to node in your DreamFactory .env file. // This setting is commented out by default. // // DF_NODEJS_PATH=/usr/local/bin/node // // Use npm to install any dependencies. This script requires 'lodash' and 'request'. // Your scripts can call console.log to dump info to the log file in storage/logs.

// POST /api/v2/db/_table/todo triggers script db._table.todo.post.post_process // This script runs AFTER records are written to the db. // records are in array event.request.payload.resource.

var lodash = require("lodash"); var request = require("request");

if (event.request.payload.resource) {

   lodash._.each(event.request.payload.resource, function( record ) {
       var msg = {
           "Message": {
               "default": "A new Todo named '" + record.name + "' was just created!"
           },
           "Subject": "New Todo Created"
       };
       var options = {
           // full url for push service on your DreamFactory instance
           url: 'http://localhost:8888/api/v2/push/topic/642246745556:test_topic',
           method: 'POST',
           // Use same auth as user calling this script.
           headers: {
               'x-dreamfactory-api-key': platform.session.api_key,
               'x-dreamfactory-session-token': platform.session.session_token
           }
       };
       request(options, function (error, response, body) {
           if(error) {
               console.log(error);
           } else {
               console.log(response.statusCode, body);
           }
       });
   });

} </source>