18b81c050c3e5ae4df397cab1bf4151d883c61d0
[motion2.git] / server / api / crmWorkflow / crmWorkflow.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 _0xa477=['fields','length','nolimit','order','sort','where','pick','merge','map','key','field','filter','options','CrmWorkflow','CrmActionsList','CrmWorkflowStep','CrmWorkflowNextStep','rows','catch','show','params','rawAttributes','includeAll','include','create','body','find','destroy','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','count','offset','limit','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','model','keys','query','filters','intersection','attributes'];(function(_0x4b122e,_0x5cce6c){var _0x57fb9a=function(_0x3ef35d){while(--_0x3ef35d){_0x4b122e['push'](_0x4b122e['shift']());}};_0x57fb9a(++_0x5cce6c);}(_0xa477,0xaf));var _0x7a47=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xa477[_0x432682];return _0x463d05;};'use strict';var pdf=require(_0x7a47('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x7a47('0x1'));var zipdir=require(_0x7a47('0x2'));var jsonpatch=require(_0x7a47('0x3'));var rp=require(_0x7a47('0x4'));var moment=require(_0x7a47('0x5'));var BPromise=require(_0x7a47('0x6'));var Mustache=require(_0x7a47('0x7'));var util=require(_0x7a47('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x7a47('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x7a47('0xa'));var squel=require(_0x7a47('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7a47('0xc'));var toCsv=require(_0x7a47('0x9'));var querystring=require('querystring');var Papa=require(_0x7a47('0xd'));var Redis=require(_0x7a47('0xe'));var authService=require(_0x7a47('0xf'));var qs=require(_0x7a47('0x10'));var hardwareService=require(_0x7a47('0x11'));var logger=require(_0x7a47('0x12'))('api');var utils=require(_0x7a47('0x13'));var config=require('../../config/environment');var db=require(_0x7a47('0x14'))['db'];function respondWithStatusCode(_0x5b21ca,_0x4acc8e){_0x4acc8e=_0x4acc8e||0xcc;return function(_0x536cd6){if(_0x536cd6){return _0x5b21ca[_0x7a47('0x15')](_0x4acc8e);}return _0x5b21ca[_0x7a47('0x16')](_0x4acc8e)[_0x7a47('0x17')]();};}function respondWithResult(_0x13fbb1,_0x23f81f){_0x23f81f=_0x23f81f||0xc8;return function(_0x4cefa6){if(_0x4cefa6){return _0x13fbb1[_0x7a47('0x16')](_0x23f81f)['json'](_0x4cefa6);}};}function respondWithFilteredResult(_0x43693a,_0x3c9757){return function(_0x376803){if(_0x376803){var _0x339721=_0x376803[_0x7a47('0x18')],_0x17ed20=_0x3c9757[_0x7a47('0x19')],_0x29a6e5=_0x3c9757['offset']+_0x3c9757[_0x7a47('0x1a')],_0x8976a0;if(_0x29a6e5>=_0x339721){_0x29a6e5=_0x339721;_0x8976a0=0xc8;}else{_0x8976a0=0xce;}_0x43693a[_0x7a47('0x16')](_0x8976a0);return _0x43693a[_0x7a47('0x1b')](_0x7a47('0x1c'),_0x17ed20+'-'+_0x29a6e5+'/'+_0x339721)['json'](_0x376803);}return null;};}function patchUpdates(_0x55de55){return function(_0x233bec){try{jsonpatch[_0x7a47('0x1d')](_0x233bec,_0x55de55,!![]);}catch(_0x18a8b){return BPromise[_0x7a47('0x1e')](_0x18a8b);}return _0x233bec[_0x7a47('0x1f')]();};}function saveUpdates(_0x2f23da,_0x503302){return function(_0x11b726){if(_0x11b726){return _0x11b726[_0x7a47('0x20')](_0x2f23da)[_0x7a47('0x21')](function(_0x4e8350){return _0x4e8350;});}return null;};}function removeEntity(_0xe3435d,_0x19d44f){return function(_0x357f6b){if(_0x357f6b){return _0x357f6b['destroy']()[_0x7a47('0x21')](function(){_0xe3435d[_0x7a47('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x560a2b,_0x4b2d09){return function(_0x4c40e4){if(!_0x4c40e4){_0x560a2b[_0x7a47('0x15')](0x194);}return _0x4c40e4;};}function handleError(_0x2653fb,_0x482f2b){_0x482f2b=_0x482f2b||0x1f4;return function(_0x496e2a){logger[_0x7a47('0x22')](_0x496e2a[_0x7a47('0x23')]);if(_0x496e2a[_0x7a47('0x24')]){delete _0x496e2a['name'];}_0x2653fb[_0x7a47('0x16')](_0x482f2b)[_0x7a47('0x25')](_0x496e2a);};}exports['index']=function(_0x72c12f,_0x37855f){var _0x4dc655={},_0x476fe5={},_0x93f65d={'count':0x0,'rows':[]};var _0x1ed937=db['CrmWorkflow']['rawAttributes'];_0x476fe5[_0x7a47('0x26')]=_[_0x7a47('0x27')](_0x1ed937);_0x476fe5[_0x7a47('0x28')]=_[_0x7a47('0x27')](_0x72c12f[_0x7a47('0x28')]);_0x476fe5[_0x7a47('0x29')]=_[_0x7a47('0x2a')](_0x476fe5[_0x7a47('0x26')],_0x476fe5[_0x7a47('0x28')]);_0x4dc655[_0x7a47('0x2b')]=_[_0x7a47('0x2a')](_0x476fe5[_0x7a47('0x26')],qs[_0x7a47('0x2c')](_0x72c12f[_0x7a47('0x28')][_0x7a47('0x2c')]));_0x4dc655[_0x7a47('0x2b')]=_0x4dc655['attributes'][_0x7a47('0x2d')]?_0x4dc655[_0x7a47('0x2b')]:_0x476fe5['model'];if(!_0x72c12f[_0x7a47('0x28')]['hasOwnProperty'](_0x7a47('0x2e'))){_0x4dc655['limit']=qs[_0x7a47('0x1a')](_0x72c12f[_0x7a47('0x28')][_0x7a47('0x1a')]);_0x4dc655[_0x7a47('0x19')]=qs['offset'](_0x72c12f[_0x7a47('0x28')][_0x7a47('0x19')]);}_0x4dc655[_0x7a47('0x2f')]=qs['sort'](_0x72c12f[_0x7a47('0x28')][_0x7a47('0x30')]);_0x4dc655[_0x7a47('0x31')]=qs[_0x7a47('0x29')](_[_0x7a47('0x32')](_0x72c12f[_0x7a47('0x28')],_0x476fe5[_0x7a47('0x29')]));if(_0x72c12f['query']['filter']){_0x4dc655[_0x7a47('0x31')]=_[_0x7a47('0x33')](_0x4dc655[_0x7a47('0x31')],{'$or':_[_0x7a47('0x34')](_0x1ed937,function(_0x4fd47f){if(_0x4fd47f['type'][_0x7a47('0x35')]!=='VIRTUAL'){var _0x46fbc0={};_0x46fbc0[_0x4fd47f[_0x7a47('0x36')]]={'$like':'%'+_0x72c12f[_0x7a47('0x28')][_0x7a47('0x37')]+'%'};return _0x46fbc0;}})});}_0x4dc655=_['merge']({},_0x4dc655,_0x72c12f[_0x7a47('0x38')]);var _0x5410af={'where':_0x4dc655['where']};return db[_0x7a47('0x39')][_0x7a47('0x18')](_0x5410af)['then'](function(_0x2ec9bd){_0x93f65d[_0x7a47('0x18')]=_0x2ec9bd;if(_0x72c12f['query']['includeAll']){_0x4dc655['include']=[{'model':db['CrmWorkflowStep'],'include':[{'model':db['CrmTask'],'include':[{'model':db[_0x7a47('0x3a')]}]},{'model':db[_0x7a47('0x3b')],'as':_0x7a47('0x3c'),'through':{'attributes':[]}}]}];}return db[_0x7a47('0x39')]['findAll'](_0x4dc655);})[_0x7a47('0x21')](function(_0x4eeafb){_0x93f65d[_0x7a47('0x3d')]=_0x4eeafb;return _0x93f65d;})[_0x7a47('0x21')](respondWithFilteredResult(_0x37855f,_0x4dc655))[_0x7a47('0x3e')](handleError(_0x37855f,null));};exports[_0x7a47('0x3f')]=function(_0x101a03,_0x3572d8){var _0x379e1a={'raw':![],'where':{'id':_0x101a03[_0x7a47('0x40')]['id']}},_0x56bcee={};_0x56bcee[_0x7a47('0x26')]=_['keys'](db[_0x7a47('0x39')][_0x7a47('0x41')]);_0x56bcee[_0x7a47('0x28')]=_[_0x7a47('0x27')](_0x101a03[_0x7a47('0x28')]);_0x56bcee[_0x7a47('0x29')]=_[_0x7a47('0x2a')](_0x56bcee[_0x7a47('0x26')],_0x56bcee[_0x7a47('0x28')]);_0x379e1a['attributes']=_[_0x7a47('0x2a')](_0x56bcee[_0x7a47('0x26')],qs[_0x7a47('0x2c')](_0x101a03[_0x7a47('0x28')][_0x7a47('0x2c')]));_0x379e1a['attributes']=_0x379e1a['attributes'][_0x7a47('0x2d')]?_0x379e1a['attributes']:_0x56bcee[_0x7a47('0x26')];if(_0x101a03[_0x7a47('0x28')][_0x7a47('0x42')]){_0x379e1a[_0x7a47('0x43')]=[{'all':!![]}];}_0x379e1a=_[_0x7a47('0x33')]({},_0x379e1a,_0x101a03[_0x7a47('0x38')]);return db[_0x7a47('0x39')]['find'](_0x379e1a)[_0x7a47('0x21')](handleEntityNotFound(_0x3572d8,null))['then'](respondWithResult(_0x3572d8,null))[_0x7a47('0x3e')](handleError(_0x3572d8,null));};exports[_0x7a47('0x44')]=function(_0x4d13ae,_0x5bdc6d){return db[_0x7a47('0x39')]['create'](_0x4d13ae[_0x7a47('0x45')],{})[_0x7a47('0x21')](respondWithResult(_0x5bdc6d,0xc9))[_0x7a47('0x3e')](handleError(_0x5bdc6d,null));};exports[_0x7a47('0x20')]=function(_0x2da925,_0xc13aba){if(_0x2da925[_0x7a47('0x45')]['id']){delete _0x2da925[_0x7a47('0x45')]['id'];}return db['CrmWorkflow'][_0x7a47('0x46')]({'where':{'id':_0x2da925[_0x7a47('0x40')]['id']}})[_0x7a47('0x21')](handleEntityNotFound(_0xc13aba,null))['then'](saveUpdates(_0x2da925[_0x7a47('0x45')],null))[_0x7a47('0x21')](respondWithResult(_0xc13aba,null))[_0x7a47('0x3e')](handleError(_0xc13aba,null));};exports[_0x7a47('0x47')]=function(_0x1e4396,_0x290243){return db[_0x7a47('0x39')][_0x7a47('0x46')]({'where':{'id':_0x1e4396['params']['id']}})[_0x7a47('0x21')](handleEntityNotFound(_0x290243,null))[_0x7a47('0x21')](removeEntity(_0x290243,null))[_0x7a47('0x3e')](handleError(_0x290243,null));};exports[_0x7a47('0x48')]=function(_0x412245,_0x7edec9){return db[_0x7a47('0x39')][_0x7a47('0x48')]()[_0x7a47('0x21')](respondWithResult(_0x7edec9,null))['catch'](handleError(_0x7edec9,null));};