2bbd490c6f40e4d455fb27ae139c479530d7e6b9
[motion2.git] / server / api / crmWorkflowstep / crmWorkflowstep.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 _0x5470=['options','includeAll','include','rows','catch','show','params','length','merge','find','create','body','update','describe','addCrmWorkflowNextStep','ids','omit','removeCrmWorkflowNextStep','getCrmWorkflowNextStep','findOne','order','html-pdf','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../mysqldb','end','status','json','offset','limit','set','apply','reject','save','then','destroy','sendStatus','error','stack','name','index','CrmWorkflowStep','rawAttributes','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','map','key'];(function(_0x3d6f2f,_0x12b3cc){var _0x6b7da3=function(_0x328e47){while(--_0x328e47){_0x3d6f2f['push'](_0x3d6f2f['shift']());}};_0x6b7da3(++_0x12b3cc);}(_0x5470,0xaf));var _0x0547=function(_0x53aca5,_0x23c07d){_0x53aca5=_0x53aca5-0x0;var _0x49e3dd=_0x5470[_0x53aca5];return _0x49e3dd;};'use strict';var pdf=require(_0x0547('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0547('0x1'));var zipdir=require(_0x0547('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0547('0x3'));var moment=require(_0x0547('0x4'));var BPromise=require(_0x0547('0x5'));var Mustache=require(_0x0547('0x6'));var util=require('util');var path=require(_0x0547('0x7'));var sox=require(_0x0547('0x8'));var csv=require(_0x0547('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x0547('0xa'));var squel=require(_0x0547('0xb'));var crypto=require(_0x0547('0xc'));var jsforce=require(_0x0547('0xd'));var deskjs=require(_0x0547('0xe'));var toCsv=require(_0x0547('0x9'));var querystring=require(_0x0547('0xf'));var Papa=require(_0x0547('0x10'));var Redis=require(_0x0547('0x11'));var authService=require(_0x0547('0x12'));var qs=require(_0x0547('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x0547('0x14'));var utils=require(_0x0547('0x15'));var config=require('../../config/environment');var db=require(_0x0547('0x16'))['db'];function respondWithStatusCode(_0x5e6526,_0x5d3e81){_0x5d3e81=_0x5d3e81||0xcc;return function(_0x229e72){if(_0x229e72){return _0x5e6526['sendStatus'](_0x5d3e81);}return _0x5e6526['status'](_0x5d3e81)[_0x0547('0x17')]();};}function respondWithResult(_0x373cce,_0x475478){_0x475478=_0x475478||0xc8;return function(_0x1a1d30){if(_0x1a1d30){return _0x373cce[_0x0547('0x18')](_0x475478)[_0x0547('0x19')](_0x1a1d30);}};}function respondWithFilteredResult(_0x367783,_0x1163e6){return function(_0x4e3911){if(_0x4e3911){var _0x5dbf16=_0x4e3911['count'],_0x25d97a=_0x1163e6[_0x0547('0x1a')],_0x1d1654=_0x1163e6[_0x0547('0x1a')]+_0x1163e6[_0x0547('0x1b')],_0xdbb164;if(_0x1d1654>=_0x5dbf16){_0x1d1654=_0x5dbf16;_0xdbb164=0xc8;}else{_0xdbb164=0xce;}_0x367783[_0x0547('0x18')](_0xdbb164);return _0x367783[_0x0547('0x1c')]('Content-Range',_0x25d97a+'-'+_0x1d1654+'/'+_0x5dbf16)[_0x0547('0x19')](_0x4e3911);}return null;};}function patchUpdates(_0x312c47){return function(_0x103aa4){try{jsonpatch[_0x0547('0x1d')](_0x103aa4,_0x312c47,!![]);}catch(_0x2c48ac){return BPromise[_0x0547('0x1e')](_0x2c48ac);}return _0x103aa4[_0x0547('0x1f')]();};}function saveUpdates(_0x1e7613,_0x29cc91){return function(_0x196120){if(_0x196120){return _0x196120['update'](_0x1e7613)[_0x0547('0x20')](function(_0x5eb906){return _0x5eb906;});}return null;};}function removeEntity(_0xe48e13,_0x3ac88d){return function(_0x564cca){if(_0x564cca){return _0x564cca[_0x0547('0x21')]()[_0x0547('0x20')](function(){_0xe48e13[_0x0547('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe5d0cc,_0x41eef5){return function(_0x3e815a){if(!_0x3e815a){_0xe5d0cc[_0x0547('0x22')](0x194);}return _0x3e815a;};}function handleError(_0x3a26d4,_0x4f822a){_0x4f822a=_0x4f822a||0x1f4;return function(_0x40bab8){logger[_0x0547('0x23')](_0x40bab8[_0x0547('0x24')]);if(_0x40bab8[_0x0547('0x25')]){delete _0x40bab8[_0x0547('0x25')];}_0x3a26d4[_0x0547('0x18')](_0x4f822a)['send'](_0x40bab8);};}exports[_0x0547('0x26')]=function(_0x37beaa,_0x109e64){var _0x3ae0fd={},_0x5b4920={},_0x4f1803={'count':0x0,'rows':[]};var _0x4889a4=db[_0x0547('0x27')][_0x0547('0x28')];_0x5b4920[_0x0547('0x29')]=_[_0x0547('0x2a')](_0x4889a4);_0x5b4920['query']=_['keys'](_0x37beaa[_0x0547('0x2b')]);_0x5b4920[_0x0547('0x2c')]=_[_0x0547('0x2d')](_0x5b4920['model'],_0x5b4920[_0x0547('0x2b')]);_0x3ae0fd[_0x0547('0x2e')]=_['intersection'](_0x5b4920['model'],qs['fields'](_0x37beaa[_0x0547('0x2b')][_0x0547('0x2f')]));_0x3ae0fd[_0x0547('0x2e')]=_0x3ae0fd['attributes']['length']?_0x3ae0fd[_0x0547('0x2e')]:_0x5b4920[_0x0547('0x29')];if(!_0x37beaa[_0x0547('0x2b')][_0x0547('0x30')](_0x0547('0x31'))){_0x3ae0fd[_0x0547('0x1b')]=qs[_0x0547('0x1b')](_0x37beaa['query'][_0x0547('0x1b')]);_0x3ae0fd[_0x0547('0x1a')]=qs[_0x0547('0x1a')](_0x37beaa[_0x0547('0x2b')][_0x0547('0x1a')]);}_0x3ae0fd['order']=qs[_0x0547('0x32')](_0x37beaa[_0x0547('0x2b')][_0x0547('0x32')]);_0x3ae0fd[_0x0547('0x33')]=qs[_0x0547('0x2c')](_[_0x0547('0x34')](_0x37beaa['query'],_0x5b4920['filters']));if(_0x37beaa[_0x0547('0x2b')][_0x0547('0x35')]){_0x3ae0fd[_0x0547('0x33')]=_['merge'](_0x3ae0fd[_0x0547('0x33')],{'$or':_[_0x0547('0x36')](_0x4889a4,function(_0x53719e){if(_0x53719e['type'][_0x0547('0x37')]!=='VIRTUAL'){var _0x518d9f={};_0x518d9f[_0x53719e['field']]={'$like':'%'+_0x37beaa[_0x0547('0x2b')][_0x0547('0x35')]+'%'};return _0x518d9f;}})});}_0x3ae0fd=_['merge']({},_0x3ae0fd,_0x37beaa[_0x0547('0x38')]);var _0xc9f5e4={'where':_0x3ae0fd[_0x0547('0x33')]};return db['CrmWorkflowStep']['count'](_0xc9f5e4)[_0x0547('0x20')](function(_0x3c6ff7){_0x4f1803['count']=_0x3c6ff7;if(_0x37beaa[_0x0547('0x2b')][_0x0547('0x39')]){_0x3ae0fd[_0x0547('0x3a')]=[{'all':!![]}];}return db[_0x0547('0x27')]['findAll'](_0x3ae0fd);})['then'](function(_0x3f6a47){_0x4f1803[_0x0547('0x3b')]=_0x3f6a47;return _0x4f1803;})['then'](respondWithFilteredResult(_0x109e64,_0x3ae0fd))[_0x0547('0x3c')](handleError(_0x109e64,null));};exports[_0x0547('0x3d')]=function(_0x3d443b,_0xc6c290){var _0x275c77={'raw':![],'where':{'id':_0x3d443b[_0x0547('0x3e')]['id']}},_0x4f6588={};_0x4f6588[_0x0547('0x29')]=_['keys'](db[_0x0547('0x27')][_0x0547('0x28')]);_0x4f6588[_0x0547('0x2b')]=_['keys'](_0x3d443b[_0x0547('0x2b')]);_0x4f6588['filters']=_[_0x0547('0x2d')](_0x4f6588[_0x0547('0x29')],_0x4f6588['query']);_0x275c77['attributes']=_[_0x0547('0x2d')](_0x4f6588[_0x0547('0x29')],qs[_0x0547('0x2f')](_0x3d443b[_0x0547('0x2b')]['fields']));_0x275c77['attributes']=_0x275c77[_0x0547('0x2e')][_0x0547('0x3f')]?_0x275c77[_0x0547('0x2e')]:_0x4f6588[_0x0547('0x29')];if(_0x3d443b[_0x0547('0x2b')][_0x0547('0x39')]){_0x275c77[_0x0547('0x3a')]=[{'all':!![]}];}_0x275c77=_[_0x0547('0x40')]({},_0x275c77,_0x3d443b[_0x0547('0x38')]);return db[_0x0547('0x27')][_0x0547('0x41')](_0x275c77)[_0x0547('0x20')](handleEntityNotFound(_0xc6c290,null))['then'](respondWithResult(_0xc6c290,null))[_0x0547('0x3c')](handleError(_0xc6c290,null));};exports['create']=function(_0x4c666c,_0x40b682){return db[_0x0547('0x27')][_0x0547('0x42')](_0x4c666c[_0x0547('0x43')],{})['then'](respondWithResult(_0x40b682,0xc9))[_0x0547('0x3c')](handleError(_0x40b682,null));};exports[_0x0547('0x44')]=function(_0x3bb169,_0x1a8412){if(_0x3bb169[_0x0547('0x43')]['id']){delete _0x3bb169[_0x0547('0x43')]['id'];}return db['CrmWorkflowStep'][_0x0547('0x41')]({'where':{'id':_0x3bb169['params']['id']}})[_0x0547('0x20')](handleEntityNotFound(_0x1a8412,null))[_0x0547('0x20')](saveUpdates(_0x3bb169['body'],null))[_0x0547('0x20')](respondWithResult(_0x1a8412,null))[_0x0547('0x3c')](handleError(_0x1a8412,null));};exports[_0x0547('0x21')]=function(_0x5e5537,_0x5c270a){return db[_0x0547('0x27')][_0x0547('0x41')]({'where':{'id':_0x5e5537[_0x0547('0x3e')]['id']}})['then'](handleEntityNotFound(_0x5c270a,null))[_0x0547('0x20')](removeEntity(_0x5c270a,null))[_0x0547('0x3c')](handleError(_0x5c270a,null));};exports[_0x0547('0x45')]=function(_0x1ac58a,_0x5dce76){return db['CrmWorkflowStep']['describe']()[_0x0547('0x20')](respondWithResult(_0x5dce76,null))[_0x0547('0x3c')](handleError(_0x5dce76,null));};exports['addCrmWorkflowNextStep']=function(_0x46da08,_0x57b7e4,_0x2bc134){return db[_0x0547('0x27')]['find']({'where':{'id':_0x46da08[_0x0547('0x3e')]['id']}})[_0x0547('0x20')](handleEntityNotFound(_0x57b7e4,null))['then'](function(_0x3d039b){if(_0x3d039b){return _0x3d039b[_0x0547('0x46')](_0x46da08[_0x0547('0x43')][_0x0547('0x47')],_[_0x0547('0x48')](_0x46da08[_0x0547('0x43')],[_0x0547('0x47'),'id'])||{});}})['then'](respondWithResult(_0x57b7e4,null))['catch'](handleError(_0x57b7e4,null));};exports[_0x0547('0x49')]=function(_0x2a7c6b,_0x4cc4e5,_0x32e617){return db[_0x0547('0x27')]['find']({'where':{'id':_0x2a7c6b[_0x0547('0x3e')]['id']}})[_0x0547('0x20')](handleEntityNotFound(_0x4cc4e5,null))[_0x0547('0x20')](function(_0x5ece93){if(_0x5ece93){return _0x5ece93['removeCrmWorkflowNextStep'](_0x2a7c6b['query'][_0x0547('0x47')]);}})[_0x0547('0x20')](respondWithStatusCode(_0x4cc4e5,null))[_0x0547('0x3c')](handleError(_0x4cc4e5,null));};exports[_0x0547('0x4a')]=function(_0x446a03,_0x58a39b,_0x4fa700){var _0x23876e={};var _0x19dd1f={};var _0x5d2aca;var _0x564c60;return db[_0x0547('0x27')][_0x0547('0x4b')]({'where':{'id':_0x446a03[_0x0547('0x3e')]['id']}})['then'](handleEntityNotFound(_0x58a39b,null))[_0x0547('0x20')](function(_0xaf7b7e){if(_0xaf7b7e){_0x5d2aca=_0xaf7b7e;_0x19dd1f[_0x0547('0x29')]=_[_0x0547('0x2a')](db['CrmWorkflowStep'][_0x0547('0x28')]);_0x19dd1f[_0x0547('0x2b')]=_[_0x0547('0x2a')](_0x446a03['query']);_0x19dd1f[_0x0547('0x2c')]=_['intersection'](_0x19dd1f['model'],_0x19dd1f['query']);_0x23876e[_0x0547('0x2e')]=_['intersection'](_0x19dd1f[_0x0547('0x29')],qs['fields'](_0x446a03['query'][_0x0547('0x2f')]));_0x23876e['attributes']=_0x23876e[_0x0547('0x2e')][_0x0547('0x3f')]?_0x23876e[_0x0547('0x2e')]:_0x19dd1f[_0x0547('0x29')];_0x23876e[_0x0547('0x4c')]=qs[_0x0547('0x32')](_0x446a03[_0x0547('0x2b')]['sort']);_0x23876e['where']=qs[_0x0547('0x2c')](_[_0x0547('0x34')](_0x446a03[_0x0547('0x2b')],_0x19dd1f['filters']));if(_0x446a03[_0x0547('0x2b')][_0x0547('0x35')]){_0x23876e['where']=_[_0x0547('0x40')](_0x23876e['where'],{'$or':_[_0x0547('0x36')](_0x23876e['attributes'],function(_0x1c245e){var _0x445345={};_0x445345[_0x1c245e]={'$like':'%'+_0x446a03[_0x0547('0x2b')][_0x0547('0x35')]+'%'};return _0x445345;})});}_0x23876e=_[_0x0547('0x40')]({},_0x23876e,_0x446a03[_0x0547('0x38')]);return _0x5d2aca['getCrmWorkflowNextStep'](_0x23876e);}})[_0x0547('0x20')](function(_0x474bcd){if(_0x474bcd){_0x564c60=_0x474bcd[_0x0547('0x3f')];if(!_0x446a03['query']['hasOwnProperty']('nolimit')){_0x23876e['limit']=qs['limit'](_0x446a03['query']['limit']);_0x23876e['offset']=qs['offset'](_0x446a03[_0x0547('0x2b')][_0x0547('0x1a')]);}return _0x5d2aca[_0x0547('0x4a')](_0x23876e);}})[_0x0547('0x20')](function(_0x112694){if(_0x112694){return _0x112694?{'count':_0x564c60,'rows':_0x112694}:null;}})[_0x0547('0x20')](respondWithResult(_0x58a39b,null))[_0x0547('0x3c')](handleError(_0x58a39b,null));};