Built motion from commit (unavailable).|2.4.18
[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 _0x095a=['sort','where','filter','merge','options','count','includeAll','include','findAll','rows','catch','params','create','body','update','find','addConditions','Condition','ids','omit','getConditions','findOne','pick','addActions','Action','getActions','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','offset','status','set','Content-Range','json','reject','save','then','destroy','error','stack','name','index','Automation','rawAttributes','fieldName','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order'];(function(_0x3f25a5,_0x19f07a){var _0x4abb52=function(_0x29f44f){while(--_0x29f44f){_0x3f25a5['push'](_0x3f25a5['shift']());}};_0x4abb52(++_0x19f07a);}(_0x095a,0x107));var _0xa095=function(_0x5851ec,_0x213152){_0x5851ec=_0x5851ec-0x0;var _0x7d3e54=_0x095a[_0x5851ec];return _0x7d3e54;};'use strict';var pdf=require(_0xa095('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa095('0x1'));var zipdir=require(_0xa095('0x2'));var jsonpatch=require(_0xa095('0x3'));var rp=require(_0xa095('0x4'));var moment=require(_0xa095('0x5'));var BPromise=require(_0xa095('0x6'));var Mustache=require(_0xa095('0x7'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xa095('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa095('0x9'));var squel=require(_0xa095('0xa'));var crypto=require(_0xa095('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xa095('0xc'));var toCsv=require('to-csv');var querystring=require(_0xa095('0xd'));var Papa=require('papaparse');var Redis=require(_0xa095('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xa095('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa095('0x10'));var logger=require(_0xa095('0x11'))(_0xa095('0x12'));var utils=require(_0xa095('0x13'));var config=require(_0xa095('0x14'));var db=require(_0xa095('0x15'))['db'];function respondWithStatusCode(_0x1e44ba,_0x993626){_0x993626=_0x993626||0xcc;return function(_0xe9709e){if(_0xe9709e){return _0x1e44ba[_0xa095('0x16')](_0x993626);}return _0x1e44ba['status'](_0x993626)[_0xa095('0x17')]();};}function respondWithResult(_0x2df657,_0x121bfe){_0x121bfe=_0x121bfe||0xc8;return function(_0x297052){if(_0x297052){return _0x2df657['status'](_0x121bfe)['json'](_0x297052);}};}function respondWithFilteredResult(_0x541a55,_0x2ad5ea){return function(_0x4a854a){if(_0x4a854a){var _0x1678c5=_0x4a854a['count'],_0x4a8f9f=_0x2ad5ea[_0xa095('0x18')],_0x41acba=_0x2ad5ea[_0xa095('0x18')]+_0x2ad5ea['limit'],_0x31c5e8;if(_0x41acba>=_0x1678c5){_0x41acba=_0x1678c5;_0x31c5e8=0xc8;}else{_0x31c5e8=0xce;}_0x541a55[_0xa095('0x19')](_0x31c5e8);return _0x541a55[_0xa095('0x1a')](_0xa095('0x1b'),_0x4a8f9f+'-'+_0x41acba+'/'+_0x1678c5)[_0xa095('0x1c')](_0x4a854a);}return null;};}function patchUpdates(_0x29b542){return function(_0x238efc){try{jsonpatch['apply'](_0x238efc,_0x29b542,!![]);}catch(_0x1b54fa){return BPromise[_0xa095('0x1d')](_0x1b54fa);}return _0x238efc[_0xa095('0x1e')]();};}function saveUpdates(_0x32bfb5,_0x23beb3){return function(_0x44a31e){if(_0x44a31e){return _0x44a31e['update'](_0x32bfb5)[_0xa095('0x1f')](function(_0xdd8e94){return _0xdd8e94;});}return null;};}function removeEntity(_0x221b3c,_0x4040f9){return function(_0x1cc830){if(_0x1cc830){return _0x1cc830[_0xa095('0x20')]()[_0xa095('0x1f')](function(){_0x221b3c[_0xa095('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x457598,_0x219460){return function(_0xb64dfc){if(!_0xb64dfc){_0x457598[_0xa095('0x16')](0x194);}return _0xb64dfc;};}function handleError(_0x370348,_0x30c5fb){_0x30c5fb=_0x30c5fb||0x1f4;return function(_0x37a488){logger[_0xa095('0x21')](_0x37a488[_0xa095('0x22')]);if(_0x37a488[_0xa095('0x23')]){delete _0x37a488[_0xa095('0x23')];}_0x370348['status'](_0x30c5fb)['send'](_0x37a488);};}exports[_0xa095('0x24')]=function(_0x2429e7,_0x310ca5){var _0x2e05a2={},_0x234594={},_0x81cedc={'count':0x0,'rows':[]};var _0x14d4bd=_['map'](db[_0xa095('0x25')][_0xa095('0x26')],function(_0x2ee2f4){return{'name':_0x2ee2f4[_0xa095('0x27')],'type':_0x2ee2f4['type']['key']};});_0x234594[_0xa095('0x28')]=_[_0xa095('0x29')](_0x14d4bd,_0xa095('0x23'));_0x234594['query']=_[_0xa095('0x2a')](_0x2429e7[_0xa095('0x2b')]);_0x234594[_0xa095('0x2c')]=_[_0xa095('0x2d')](_0x234594['model'],_0x234594[_0xa095('0x2b')]);_0x2e05a2[_0xa095('0x2e')]=_[_0xa095('0x2d')](_0x234594[_0xa095('0x28')],qs[_0xa095('0x2f')](_0x2429e7[_0xa095('0x2b')][_0xa095('0x2f')]));_0x2e05a2[_0xa095('0x2e')]=_0x2e05a2['attributes'][_0xa095('0x30')]?_0x2e05a2[_0xa095('0x2e')]:_0x234594[_0xa095('0x28')];if(!_0x2429e7[_0xa095('0x2b')][_0xa095('0x31')](_0xa095('0x32'))){_0x2e05a2[_0xa095('0x33')]=qs['limit'](_0x2429e7[_0xa095('0x2b')][_0xa095('0x33')]);_0x2e05a2[_0xa095('0x18')]=qs['offset'](_0x2429e7[_0xa095('0x2b')][_0xa095('0x18')]);}_0x2e05a2[_0xa095('0x34')]=qs['sort'](_0x2429e7[_0xa095('0x2b')][_0xa095('0x35')]);_0x2e05a2[_0xa095('0x36')]=qs['filters'](_['pick'](_0x2429e7[_0xa095('0x2b')],_0x234594[_0xa095('0x2c')]));if(_0x2429e7['query'][_0xa095('0x37')]){_0x2e05a2[_0xa095('0x36')]=_[_0xa095('0x38')](_0x2e05a2[_0xa095('0x36')],{'$or':_[_0xa095('0x29')](_0x14d4bd,function(_0x47383c){if(_0x47383c['type']!=='VIRTUAL'){var _0x2e8835={};_0x2e8835[_0x47383c['name']]={'$like':'%'+_0x2429e7[_0xa095('0x2b')][_0xa095('0x37')]+'%'};return _0x2e8835;}})});}_0x2e05a2=_[_0xa095('0x38')]({},_0x2e05a2,_0x2429e7[_0xa095('0x39')]);var _0x501455={'where':_0x2e05a2[_0xa095('0x36')]};return db[_0xa095('0x25')]['count'](_0x501455)[_0xa095('0x1f')](function(_0x5d9aff){_0x81cedc[_0xa095('0x3a')]=_0x5d9aff;if(_0x2429e7[_0xa095('0x2b')][_0xa095('0x3b')]){_0x2e05a2[_0xa095('0x3c')]=[{'all':!![]}];}return db[_0xa095('0x25')][_0xa095('0x3d')](_0x2e05a2);})[_0xa095('0x1f')](function(_0xad82b6){_0x81cedc[_0xa095('0x3e')]=_0xad82b6;return _0x81cedc;})[_0xa095('0x1f')](respondWithFilteredResult(_0x310ca5,_0x2e05a2))[_0xa095('0x3f')](handleError(_0x310ca5,null));};exports['show']=function(_0x22e464,_0x299012){var _0x5eee05={'raw':![],'where':{'id':_0x22e464[_0xa095('0x40')]['id']}},_0x34c250={};_0x34c250[_0xa095('0x28')]=_[_0xa095('0x2a')](db[_0xa095('0x25')][_0xa095('0x26')]);_0x34c250[_0xa095('0x2b')]=_[_0xa095('0x2a')](_0x22e464[_0xa095('0x2b')]);_0x34c250['filters']=_[_0xa095('0x2d')](_0x34c250['model'],_0x34c250['query']);_0x5eee05['attributes']=_[_0xa095('0x2d')](_0x34c250[_0xa095('0x28')],qs[_0xa095('0x2f')](_0x22e464[_0xa095('0x2b')][_0xa095('0x2f')]));_0x5eee05[_0xa095('0x2e')]=_0x5eee05[_0xa095('0x2e')][_0xa095('0x30')]?_0x5eee05[_0xa095('0x2e')]:_0x34c250[_0xa095('0x28')];if(_0x22e464[_0xa095('0x2b')][_0xa095('0x3b')]){_0x5eee05[_0xa095('0x3c')]=[{'all':!![]}];}_0x5eee05=_[_0xa095('0x38')]({},_0x5eee05,_0x22e464['options']);return db[_0xa095('0x25')]['find'](_0x5eee05)[_0xa095('0x1f')](handleEntityNotFound(_0x299012,null))[_0xa095('0x1f')](respondWithResult(_0x299012,null))[_0xa095('0x3f')](handleError(_0x299012,null));};exports['create']=function(_0x2e1463,_0x488db1){return db['Automation'][_0xa095('0x41')](_0x2e1463[_0xa095('0x42')],{})[_0xa095('0x1f')](respondWithResult(_0x488db1,0xc9))[_0xa095('0x3f')](handleError(_0x488db1,null));};exports[_0xa095('0x43')]=function(_0x43be75,_0x1d72c9){if(_0x43be75['body']['id']){delete _0x43be75[_0xa095('0x42')]['id'];}return db[_0xa095('0x25')][_0xa095('0x44')]({'where':{'id':_0x43be75['params']['id']}})['then'](handleEntityNotFound(_0x1d72c9,null))[_0xa095('0x1f')](saveUpdates(_0x43be75[_0xa095('0x42')],null))['then'](respondWithResult(_0x1d72c9,null))[_0xa095('0x3f')](handleError(_0x1d72c9,null));};exports[_0xa095('0x20')]=function(_0x29dec4,_0x3cb8a8){return db[_0xa095('0x25')][_0xa095('0x44')]({'where':{'id':_0x29dec4[_0xa095('0x40')]['id']}})[_0xa095('0x1f')](handleEntityNotFound(_0x3cb8a8,null))['then'](removeEntity(_0x3cb8a8,null))[_0xa095('0x3f')](handleError(_0x3cb8a8,null));};exports[_0xa095('0x45')]=function(_0x158107,_0x3ed0e3,_0x50c3ca){return db[_0xa095('0x46')][_0xa095('0x44')]({'where':{'id':_0x158107[_0xa095('0x40')]['id']}})['then'](handleEntityNotFound(_0x3ed0e3,null))[_0xa095('0x1f')](function(_0x59b36c){if(_0x59b36c){return _0x59b36c[_0xa095('0x45')](_0x158107['body'][_0xa095('0x47')],_[_0xa095('0x48')](_0x158107['body'],[_0xa095('0x47'),'id'])||{});}})[_0xa095('0x1f')](respondWithResult(_0x3ed0e3,null))[_0xa095('0x3f')](handleError(_0x3ed0e3,null));};exports[_0xa095('0x49')]=function(_0x1861e4,_0x13f679,_0x1ca1da){var _0x42c161={};var _0x54e85c={};var _0xed32b6;var _0x10eea6;return db[_0xa095('0x25')][_0xa095('0x4a')]({'where':{'id':_0x1861e4[_0xa095('0x40')]['id']}})[_0xa095('0x1f')](handleEntityNotFound(_0x13f679,null))[_0xa095('0x1f')](function(_0x21b644){if(_0x21b644){_0xed32b6=_0x21b644;_0x54e85c[_0xa095('0x28')]=_[_0xa095('0x2a')](db[_0xa095('0x46')]['rawAttributes']);_0x54e85c[_0xa095('0x2b')]=_['keys'](_0x1861e4['query']);_0x54e85c[_0xa095('0x2c')]=_[_0xa095('0x2d')](_0x54e85c[_0xa095('0x28')],_0x54e85c[_0xa095('0x2b')]);_0x42c161[_0xa095('0x2e')]=_[_0xa095('0x2d')](_0x54e85c[_0xa095('0x28')],qs[_0xa095('0x2f')](_0x1861e4['query'][_0xa095('0x2f')]));_0x42c161['attributes']=_0x42c161['attributes']['length']?_0x42c161[_0xa095('0x2e')]:_0x54e85c[_0xa095('0x28')];_0x42c161[_0xa095('0x34')]=qs['sort'](_0x1861e4[_0xa095('0x2b')][_0xa095('0x35')]);_0x42c161['where']=qs[_0xa095('0x2c')](_[_0xa095('0x4b')](_0x1861e4[_0xa095('0x2b')],_0x54e85c['filters']));if(_0x1861e4[_0xa095('0x2b')][_0xa095('0x37')]){_0x42c161['where']=_[_0xa095('0x38')](_0x42c161[_0xa095('0x36')],{'$or':_['map'](_0x42c161['attributes'],function(_0x4de1ed){var _0x3f11e9={};_0x3f11e9[_0x4de1ed]={'$like':'%'+_0x1861e4[_0xa095('0x2b')][_0xa095('0x37')]+'%'};return _0x3f11e9;})});}_0x42c161=_[_0xa095('0x38')]({},_0x42c161,_0x1861e4['options']);return _0xed32b6[_0xa095('0x49')](_0x42c161);}})['then'](function(_0x355f2f){if(_0x355f2f){_0x10eea6=_0x355f2f[_0xa095('0x30')];if(!_0x1861e4['query'][_0xa095('0x31')]('nolimit')){_0x42c161['limit']=qs[_0xa095('0x33')](_0x1861e4[_0xa095('0x2b')]['limit']);_0x42c161[_0xa095('0x18')]=qs[_0xa095('0x18')](_0x1861e4[_0xa095('0x2b')]['offset']);}return _0xed32b6[_0xa095('0x49')](_0x42c161);}})['then'](function(_0x2f110e){if(_0x2f110e){return _0x2f110e?{'count':_0x10eea6,'rows':_0x2f110e}:null;}})[_0xa095('0x1f')](respondWithResult(_0x13f679,null))[_0xa095('0x3f')](handleError(_0x13f679,null));};exports[_0xa095('0x4c')]=function(_0x59fb6a,_0x4190cc,_0x5cef0c){return db[_0xa095('0x4d')]['find']({'where':{'id':_0x59fb6a[_0xa095('0x40')]['id']}})[_0xa095('0x1f')](handleEntityNotFound(_0x4190cc,null))[_0xa095('0x1f')](function(_0x28b8b8){if(_0x28b8b8){return _0x28b8b8[_0xa095('0x4c')](_0x59fb6a[_0xa095('0x42')]['ids'],_[_0xa095('0x48')](_0x59fb6a[_0xa095('0x42')],[_0xa095('0x47'),'id'])||{});}})[_0xa095('0x1f')](respondWithResult(_0x4190cc,null))[_0xa095('0x3f')](handleError(_0x4190cc,null));};exports[_0xa095('0x4e')]=function(_0x2e28c7,_0x5499a9,_0x46b3f3){var _0x3a489c={};var _0x50c6f0={};var _0x1e4216;var _0x3a8bb3;return db[_0xa095('0x25')][_0xa095('0x4a')]({'where':{'id':_0x2e28c7[_0xa095('0x40')]['id']}})[_0xa095('0x1f')](handleEntityNotFound(_0x5499a9,null))['then'](function(_0xe45af5){if(_0xe45af5){_0x1e4216=_0xe45af5;_0x50c6f0[_0xa095('0x28')]=_['keys'](db[_0xa095('0x4d')][_0xa095('0x26')]);_0x50c6f0[_0xa095('0x2b')]=_[_0xa095('0x2a')](_0x2e28c7[_0xa095('0x2b')]);_0x50c6f0[_0xa095('0x2c')]=_[_0xa095('0x2d')](_0x50c6f0[_0xa095('0x28')],_0x50c6f0[_0xa095('0x2b')]);_0x3a489c[_0xa095('0x2e')]=_['intersection'](_0x50c6f0[_0xa095('0x28')],qs[_0xa095('0x2f')](_0x2e28c7[_0xa095('0x2b')][_0xa095('0x2f')]));_0x3a489c[_0xa095('0x2e')]=_0x3a489c[_0xa095('0x2e')]['length']?_0x3a489c['attributes']:_0x50c6f0[_0xa095('0x28')];_0x3a489c[_0xa095('0x34')]=qs[_0xa095('0x35')](_0x2e28c7[_0xa095('0x2b')][_0xa095('0x35')]);_0x3a489c[_0xa095('0x36')]=qs['filters'](_[_0xa095('0x4b')](_0x2e28c7[_0xa095('0x2b')],_0x50c6f0[_0xa095('0x2c')]));if(_0x2e28c7[_0xa095('0x2b')][_0xa095('0x37')]){_0x3a489c['where']=_['merge'](_0x3a489c[_0xa095('0x36')],{'$or':_['map'](_0x3a489c[_0xa095('0x2e')],function(_0x3a149b){var _0x4ac6c6={};_0x4ac6c6[_0x3a149b]={'$like':'%'+_0x2e28c7['query']['filter']+'%'};return _0x4ac6c6;})});}_0x3a489c=_[_0xa095('0x38')]({},_0x3a489c,_0x2e28c7[_0xa095('0x39')]);return _0x1e4216['getActions'](_0x3a489c);}})['then'](function(_0xb8f030){if(_0xb8f030){_0x3a8bb3=_0xb8f030[_0xa095('0x30')];if(!_0x2e28c7[_0xa095('0x2b')][_0xa095('0x31')]('nolimit')){_0x3a489c['limit']=qs['limit'](_0x2e28c7[_0xa095('0x2b')][_0xa095('0x33')]);_0x3a489c[_0xa095('0x18')]=qs[_0xa095('0x18')](_0x2e28c7[_0xa095('0x2b')]['offset']);}return _0x1e4216[_0xa095('0x4e')](_0x3a489c);}})[_0xa095('0x1f')](function(_0xe73a9f){if(_0xe73a9f){return _0xe73a9f?{'count':_0x3a8bb3,'rows':_0xe73a9f}:null;}})[_0xa095('0x1f')](respondWithResult(_0x5499a9,null))[_0xa095('0x3f')](handleError(_0x5499a9,null));};