module.exports = function (RED) {
    "use strict";
    var json2xls = require('json2xls');
    var fs = require('fs'); 

    function ConvertJSONToExcel(config) {
        RED.nodes.createNode(this, config);
        this.file = config.file;
        this.on('input', function(msg){
            var node = this;
            var file = msg.filepath;
            if(file === undefined || file === null){
               if(node.file === undefined || node.file === null ){
                   console.log("File path cannot be null");
                   node.error("filepath cannot be null");
               }else{
                   file = node.file;
               }
            }
            if(msg.payload === undefined || msg.payload === null){
                console.log("Payload cannot be blank");
                node.error("payload cannot be null");
            }else{
                var xls = json2xls(msg.payload);
                fs.writeFileSync(file, xls, 'binary');
                msg.attachment=file;
                msg.filename=file;
                msg.file=file;
                node.send(msg);
            }
        });
        
    };

    RED.nodes.registerType("excel", ConvertJSONToExcel);
}
