ef98f8b50e9b5b1eec488b35b120fcb0b0ff4cc5
[motion2.git] / server / api / automation / automation.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x88dd=['options','includeAll','include','findAll','catch','show','params','keys','find','create','body','destroy','addConditions','ids','omit','getConditions','findOne','addActions','getActions','Action','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','count','offset','set','Content-Range','json','apply','reject','save','update','then','error','name','send','index','map','Automation','rawAttributes','type','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge'];(function(_0x4f13ef,_0xd6e098){var _0x18d6b0=function(_0x5b04e0){while(--_0x5b04e0){_0x4f13ef['push'](_0x4f13ef['shift']());}};_0x18d6b0(++_0xd6e098);}(_0x88dd,0x1ae));var _0xd88d=function(_0x27a824,_0x50dc82){_0x27a824=_0x27a824-0x0;var _0x5a1a7b=_0x88dd[_0x27a824];return _0x5a1a7b;};'use strict';var emlformat=require(_0xd88d('0x0'));var rimraf=require(_0xd88d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd88d('0x2'));var rp=require(_0xd88d('0x3'));var moment=require('moment');var BPromise=require(_0xd88d('0x4'));var Mustache=require(_0xd88d('0x5'));var util=require('util');var path=require(_0xd88d('0x6'));var sox=require(_0xd88d('0x7'));var csv=require(_0xd88d('0x8'));var ejs=require(_0xd88d('0x9'));var fs=require('fs');var fs_extra=require(_0xd88d('0xa'));var _=require(_0xd88d('0xb'));var squel=require('squel');var crypto=require(_0xd88d('0xc'));var jsforce=require(_0xd88d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd88d('0x8'));var querystring=require('querystring');var Papa=require(_0xd88d('0xe'));var Redis=require(_0xd88d('0xf'));var authService=require(_0xd88d('0x10'));var qs=require(_0xd88d('0x11'));var as=require(_0xd88d('0x12'));var hardwareService=require(_0xd88d('0x13'));var logger=require(_0xd88d('0x14'))(_0xd88d('0x15'));var utils=require(_0xd88d('0x16'));var config=require(_0xd88d('0x17'));var licenseUtil=require(_0xd88d('0x18'));var db=require(_0xd88d('0x19'))['db'];function respondWithStatusCode(_0x587abf,_0x4ac440){_0x4ac440=_0x4ac440||0xcc;return function(_0x466dbb){if(_0x466dbb){return _0x587abf[_0xd88d('0x1a')](_0x4ac440);}return _0x587abf['status'](_0x4ac440)['end']();};}function respondWithResult(_0x310930,_0xf3f040){_0xf3f040=_0xf3f040||0xc8;return function(_0x3beb1b){if(_0x3beb1b){return _0x310930[_0xd88d('0x1b')](_0xf3f040)['json'](_0x3beb1b);}};}function respondWithFilteredResult(_0x36f50f,_0x870ab){return function(_0x119c95){if(_0x119c95){var _0x3e9aaa=_0x119c95[_0xd88d('0x1c')],_0x44cb99=_0x870ab[_0xd88d('0x1d')],_0x1390e0=_0x870ab[_0xd88d('0x1d')]+_0x870ab['limit'],_0x31af1a;if(_0x1390e0>=_0x3e9aaa){_0x1390e0=_0x3e9aaa;_0x31af1a=0xc8;}else{_0x31af1a=0xce;}_0x36f50f[_0xd88d('0x1b')](_0x31af1a);return _0x36f50f[_0xd88d('0x1e')](_0xd88d('0x1f'),_0x44cb99+'-'+_0x1390e0+'/'+_0x3e9aaa)[_0xd88d('0x20')](_0x119c95);}return null;};}function patchUpdates(_0x40df10){return function(_0x16013e){try{jsonpatch[_0xd88d('0x21')](_0x16013e,_0x40df10,!![]);}catch(_0x1d06e4){return BPromise[_0xd88d('0x22')](_0x1d06e4);}return _0x16013e[_0xd88d('0x23')]();};}function saveUpdates(_0x38eb11,_0x2d08fe){return function(_0x279ba6){if(_0x279ba6){return _0x279ba6[_0xd88d('0x24')](_0x38eb11)[_0xd88d('0x25')](function(_0x50969e){return _0x50969e;});}return null;};}function removeEntity(_0x4fcc43,_0x60d57d){return function(_0x5ddc5c){if(_0x5ddc5c){return _0x5ddc5c['destroy']()['then'](function(){_0x4fcc43[_0xd88d('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59c491,_0x1a8352){return function(_0x2a0387){if(!_0x2a0387){_0x59c491[_0xd88d('0x1a')](0x194);}return _0x2a0387;};}function handleError(_0x2f4932,_0x34e004){_0x34e004=_0x34e004||0x1f4;return function(_0x485aea){logger[_0xd88d('0x26')](_0x485aea['stack']);if(_0x485aea['name']){delete _0x485aea[_0xd88d('0x27')];}_0x2f4932[_0xd88d('0x1b')](_0x34e004)[_0xd88d('0x28')](_0x485aea);};}exports[_0xd88d('0x29')]=function(_0x1a561a,_0x3d20a3){var _0x53fedd={},_0x693fd5={},_0x43caa7={'count':0x0,'rows':[]};var _0x105623=_[_0xd88d('0x2a')](db[_0xd88d('0x2b')][_0xd88d('0x2c')],function(_0x194bce){return{'name':_0x194bce['fieldName'],'type':_0x194bce[_0xd88d('0x2d')]['key']};});_0x693fd5[_0xd88d('0x2e')]=_[_0xd88d('0x2a')](_0x105623,_0xd88d('0x27'));_0x693fd5['query']=_['keys'](_0x1a561a[_0xd88d('0x2f')]);_0x693fd5[_0xd88d('0x30')]=_[_0xd88d('0x31')](_0x693fd5[_0xd88d('0x2e')],_0x693fd5[_0xd88d('0x2f')]);_0x53fedd['attributes']=_[_0xd88d('0x31')](_0x693fd5[_0xd88d('0x2e')],qs['fields'](_0x1a561a['query'][_0xd88d('0x32')]));_0x53fedd['attributes']=_0x53fedd[_0xd88d('0x33')][_0xd88d('0x34')]?_0x53fedd['attributes']:_0x693fd5['model'];if(!_0x1a561a[_0xd88d('0x2f')][_0xd88d('0x35')](_0xd88d('0x36'))){_0x53fedd[_0xd88d('0x37')]=qs[_0xd88d('0x37')](_0x1a561a[_0xd88d('0x2f')]['limit']);_0x53fedd['offset']=qs['offset'](_0x1a561a[_0xd88d('0x2f')]['offset']);}_0x53fedd[_0xd88d('0x38')]=qs[_0xd88d('0x39')](_0x1a561a[_0xd88d('0x2f')][_0xd88d('0x39')]);_0x53fedd[_0xd88d('0x3a')]=qs[_0xd88d('0x30')](_[_0xd88d('0x3b')](_0x1a561a['query'],_0x693fd5[_0xd88d('0x30')]),_0x105623);if(_0x1a561a[_0xd88d('0x2f')][_0xd88d('0x3c')]){_0x53fedd['where']=_[_0xd88d('0x3d')](_0x53fedd[_0xd88d('0x3a')],{'$or':_['map'](_0x105623,function(_0x579641){if(_0x579641[_0xd88d('0x2d')]!=='VIRTUAL'){var _0x519766={};_0x519766[_0x579641[_0xd88d('0x27')]]={'$like':'%'+_0x1a561a[_0xd88d('0x2f')][_0xd88d('0x3c')]+'%'};return _0x519766;}})});}_0x53fedd=_[_0xd88d('0x3d')]({},_0x53fedd,_0x1a561a[_0xd88d('0x3e')]);var _0x3a6d30={'where':_0x53fedd[_0xd88d('0x3a')]};return db[_0xd88d('0x2b')]['count'](_0x3a6d30)[_0xd88d('0x25')](function(_0x33ed55){_0x43caa7[_0xd88d('0x1c')]=_0x33ed55;if(_0x1a561a[_0xd88d('0x2f')][_0xd88d('0x3f')]){_0x53fedd[_0xd88d('0x40')]=[{'all':!![]}];}return db['Automation'][_0xd88d('0x41')](_0x53fedd);})[_0xd88d('0x25')](function(_0x40c914){_0x43caa7['rows']=_0x40c914;return _0x43caa7;})['then'](respondWithFilteredResult(_0x3d20a3,_0x53fedd))[_0xd88d('0x42')](handleError(_0x3d20a3,null));};exports[_0xd88d('0x43')]=function(_0x339c3d,_0x25ac5a){var _0x12b8f3={'raw':![],'where':{'id':_0x339c3d[_0xd88d('0x44')]['id']}},_0x223645={};_0x223645[_0xd88d('0x2e')]=_['keys'](db['Automation']['rawAttributes']);_0x223645[_0xd88d('0x2f')]=_[_0xd88d('0x45')](_0x339c3d[_0xd88d('0x2f')]);_0x223645[_0xd88d('0x30')]=_[_0xd88d('0x31')](_0x223645[_0xd88d('0x2e')],_0x223645[_0xd88d('0x2f')]);_0x12b8f3[_0xd88d('0x33')]=_[_0xd88d('0x31')](_0x223645[_0xd88d('0x2e')],qs['fields'](_0x339c3d[_0xd88d('0x2f')][_0xd88d('0x32')]));_0x12b8f3[_0xd88d('0x33')]=_0x12b8f3[_0xd88d('0x33')][_0xd88d('0x34')]?_0x12b8f3[_0xd88d('0x33')]:_0x223645['model'];if(_0x339c3d['query'][_0xd88d('0x3f')]){_0x12b8f3['include']=[{'all':!![]}];}_0x12b8f3=_[_0xd88d('0x3d')]({},_0x12b8f3,_0x339c3d[_0xd88d('0x3e')]);return db['Automation'][_0xd88d('0x46')](_0x12b8f3)[_0xd88d('0x25')](handleEntityNotFound(_0x25ac5a,null))[_0xd88d('0x25')](respondWithResult(_0x25ac5a,null))[_0xd88d('0x42')](handleError(_0x25ac5a,null));};exports[_0xd88d('0x47')]=function(_0x45f037,_0x122ee6){return db[_0xd88d('0x2b')][_0xd88d('0x47')](_0x45f037[_0xd88d('0x48')],{})[_0xd88d('0x25')](respondWithResult(_0x122ee6,0xc9))[_0xd88d('0x42')](handleError(_0x122ee6,null));};exports[_0xd88d('0x24')]=function(_0x7d585c,_0x26daa1){if(_0x7d585c[_0xd88d('0x48')]['id']){delete _0x7d585c[_0xd88d('0x48')]['id'];}return db[_0xd88d('0x2b')][_0xd88d('0x46')]({'where':{'id':_0x7d585c[_0xd88d('0x44')]['id']}})[_0xd88d('0x25')](handleEntityNotFound(_0x26daa1,null))[_0xd88d('0x25')](saveUpdates(_0x7d585c[_0xd88d('0x48')],null))[_0xd88d('0x25')](respondWithResult(_0x26daa1,null))[_0xd88d('0x42')](handleError(_0x26daa1,null));};exports[_0xd88d('0x49')]=function(_0x3e13b3,_0x1d1915){return db[_0xd88d('0x2b')]['find']({'where':{'id':_0x3e13b3[_0xd88d('0x44')]['id']}})['then'](handleEntityNotFound(_0x1d1915,null))[_0xd88d('0x25')](removeEntity(_0x1d1915,null))[_0xd88d('0x42')](handleError(_0x1d1915,null));};exports[_0xd88d('0x4a')]=function(_0x4e8491,_0x1769fc,_0xa1919){return db['Condition'][_0xd88d('0x46')]({'where':{'id':_0x4e8491[_0xd88d('0x44')]['id']}})['then'](handleEntityNotFound(_0x1769fc,null))[_0xd88d('0x25')](function(_0x17f7cb){if(_0x17f7cb){return _0x17f7cb[_0xd88d('0x4a')](_0x4e8491[_0xd88d('0x48')][_0xd88d('0x4b')],_[_0xd88d('0x4c')](_0x4e8491[_0xd88d('0x48')],['ids','id'])||{});}})['then'](respondWithResult(_0x1769fc,null))[_0xd88d('0x42')](handleError(_0x1769fc,null));};exports[_0xd88d('0x4d')]=function(_0x4213a5,_0x1017f4,_0x9c5967){var _0x38d688={};var _0x28191b={};var _0x179faf;var _0x1434d6;return db[_0xd88d('0x2b')][_0xd88d('0x4e')]({'where':{'id':_0x4213a5['params']['id']}})['then'](handleEntityNotFound(_0x1017f4,null))[_0xd88d('0x25')](function(_0x90dbd1){if(_0x90dbd1){_0x179faf=_0x90dbd1;_0x28191b['model']=_[_0xd88d('0x45')](db['Condition'][_0xd88d('0x2c')]);_0x28191b[_0xd88d('0x2f')]=_[_0xd88d('0x45')](_0x4213a5[_0xd88d('0x2f')]);_0x28191b[_0xd88d('0x30')]=_['intersection'](_0x28191b[_0xd88d('0x2e')],_0x28191b[_0xd88d('0x2f')]);_0x38d688[_0xd88d('0x33')]=_[_0xd88d('0x31')](_0x28191b[_0xd88d('0x2e')],qs[_0xd88d('0x32')](_0x4213a5['query'][_0xd88d('0x32')]));_0x38d688[_0xd88d('0x33')]=_0x38d688[_0xd88d('0x33')][_0xd88d('0x34')]?_0x38d688['attributes']:_0x28191b[_0xd88d('0x2e')];_0x38d688['order']=qs['sort'](_0x4213a5[_0xd88d('0x2f')][_0xd88d('0x39')]);_0x38d688['where']=qs[_0xd88d('0x30')](_[_0xd88d('0x3b')](_0x4213a5[_0xd88d('0x2f')],_0x28191b[_0xd88d('0x30')]));if(_0x4213a5[_0xd88d('0x2f')]['filter']){_0x38d688[_0xd88d('0x3a')]=_[_0xd88d('0x3d')](_0x38d688[_0xd88d('0x3a')],{'$or':_[_0xd88d('0x2a')](_0x38d688['attributes'],function(_0x522aae){var _0x51833d={};_0x51833d[_0x522aae]={'$like':'%'+_0x4213a5[_0xd88d('0x2f')]['filter']+'%'};return _0x51833d;})});}_0x38d688=_['merge']({},_0x38d688,_0x4213a5[_0xd88d('0x3e')]);return _0x179faf['getConditions'](_0x38d688);}})['then'](function(_0x1a7a5c){if(_0x1a7a5c){_0x1434d6=_0x1a7a5c[_0xd88d('0x34')];if(!_0x4213a5[_0xd88d('0x2f')][_0xd88d('0x35')](_0xd88d('0x36'))){_0x38d688[_0xd88d('0x37')]=qs[_0xd88d('0x37')](_0x4213a5[_0xd88d('0x2f')][_0xd88d('0x37')]);_0x38d688['offset']=qs[_0xd88d('0x1d')](_0x4213a5[_0xd88d('0x2f')]['offset']);}return _0x179faf[_0xd88d('0x4d')](_0x38d688);}})['then'](function(_0x5a7af9){if(_0x5a7af9){return _0x5a7af9?{'count':_0x1434d6,'rows':_0x5a7af9}:null;}})['then'](respondWithResult(_0x1017f4,null))['catch'](handleError(_0x1017f4,null));};exports[_0xd88d('0x4f')]=function(_0x47aba7,_0x25fa36,_0x5c0bb2){return db['Action']['find']({'where':{'id':_0x47aba7['params']['id']}})[_0xd88d('0x25')](handleEntityNotFound(_0x25fa36,null))[_0xd88d('0x25')](function(_0x4d3830){if(_0x4d3830){return _0x4d3830['addActions'](_0x47aba7[_0xd88d('0x48')][_0xd88d('0x4b')],_[_0xd88d('0x4c')](_0x47aba7[_0xd88d('0x48')],[_0xd88d('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x25fa36,null))[_0xd88d('0x42')](handleError(_0x25fa36,null));};exports[_0xd88d('0x50')]=function(_0xfe118f,_0x1a5fca,_0x22be12){var _0x35c6fc={};var _0x18eb8b={};var _0x136613;var _0x4cc491;return db['Automation'][_0xd88d('0x4e')]({'where':{'id':_0xfe118f[_0xd88d('0x44')]['id']}})[_0xd88d('0x25')](handleEntityNotFound(_0x1a5fca,null))[_0xd88d('0x25')](function(_0x255a1d){if(_0x255a1d){_0x136613=_0x255a1d;_0x18eb8b[_0xd88d('0x2e')]=_['keys'](db[_0xd88d('0x51')][_0xd88d('0x2c')]);_0x18eb8b[_0xd88d('0x2f')]=_['keys'](_0xfe118f[_0xd88d('0x2f')]);_0x18eb8b[_0xd88d('0x30')]=_[_0xd88d('0x31')](_0x18eb8b['model'],_0x18eb8b['query']);_0x35c6fc['attributes']=_[_0xd88d('0x31')](_0x18eb8b['model'],qs[_0xd88d('0x32')](_0xfe118f[_0xd88d('0x2f')][_0xd88d('0x32')]));_0x35c6fc['attributes']=_0x35c6fc[_0xd88d('0x33')][_0xd88d('0x34')]?_0x35c6fc[_0xd88d('0x33')]:_0x18eb8b[_0xd88d('0x2e')];_0x35c6fc[_0xd88d('0x38')]=qs['sort'](_0xfe118f[_0xd88d('0x2f')][_0xd88d('0x39')]);_0x35c6fc[_0xd88d('0x3a')]=qs[_0xd88d('0x30')](_[_0xd88d('0x3b')](_0xfe118f[_0xd88d('0x2f')],_0x18eb8b['filters']));if(_0xfe118f[_0xd88d('0x2f')][_0xd88d('0x3c')]){_0x35c6fc[_0xd88d('0x3a')]=_['merge'](_0x35c6fc[_0xd88d('0x3a')],{'$or':_[_0xd88d('0x2a')](_0x35c6fc[_0xd88d('0x33')],function(_0xbe21c8){var _0xd96344={};_0xd96344[_0xbe21c8]={'$like':'%'+_0xfe118f[_0xd88d('0x2f')][_0xd88d('0x3c')]+'%'};return _0xd96344;})});}_0x35c6fc=_['merge']({},_0x35c6fc,_0xfe118f['options']);return _0x136613[_0xd88d('0x50')](_0x35c6fc);}})[_0xd88d('0x25')](function(_0x58a550){if(_0x58a550){_0x4cc491=_0x58a550['length'];if(!_0xfe118f[_0xd88d('0x2f')][_0xd88d('0x35')](_0xd88d('0x36'))){_0x35c6fc['limit']=qs['limit'](_0xfe118f[_0xd88d('0x2f')]['limit']);_0x35c6fc[_0xd88d('0x1d')]=qs[_0xd88d('0x1d')](_0xfe118f['query'][_0xd88d('0x1d')]);}return _0x136613['getActions'](_0x35c6fc);}})[_0xd88d('0x25')](function(_0x18f9b4){if(_0x18f9b4){return _0x18f9b4?{'count':_0x4cc491,'rows':_0x18f9b4}:null;}})['then'](respondWithResult(_0x1a5fca,null))[_0xd88d('0x42')](handleError(_0x1a5fca,null));};