ebe68bd534e22cb042c546f0daecf6bd51732677
[motion2.git] / server / api / intFreshsalesConfiguration / intFreshsalesConfiguration.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 _0xc936=['sendStatus','error','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','filter','where','merge','VIRTUAL','FreshsalesConfiguration','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','update','getSubjects','findOne','FreshsalesField','order','sort','pick','getDescriptions','getFields','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','then'];(function(_0x451d04,_0x999e7d){var _0x32c6fe=function(_0x2be910){while(--_0x2be910){_0x451d04['push'](_0x451d04['shift']());}};_0x32c6fe(++_0x999e7d);}(_0xc936,0x123));var _0x6c93=function(_0x26d06a,_0x4ee921){_0x26d06a=_0x26d06a-0x0;var _0x33f1b5=_0xc936[_0x26d06a];return _0x33f1b5;};'use strict';var emlformat=require(_0x6c93('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6c93('0x1'));var rp=require(_0x6c93('0x2'));var moment=require(_0x6c93('0x3'));var BPromise=require(_0x6c93('0x4'));var Mustache=require(_0x6c93('0x5'));var util=require('util');var path=require(_0x6c93('0x6'));var sox=require(_0x6c93('0x7'));var csv=require('to-csv');var ejs=require(_0x6c93('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6c93('0x9'));var crypto=require(_0x6c93('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x6c93('0xb'));var toCsv=require(_0x6c93('0xc'));var querystring=require(_0x6c93('0xd'));var Papa=require(_0x6c93('0xe'));var Redis=require('ioredis');var authService=require(_0x6c93('0xf'));var qs=require(_0x6c93('0x10'));var as=require(_0x6c93('0x11'));var hardwareService=require(_0x6c93('0x12'));var logger=require(_0x6c93('0x13'))(_0x6c93('0x14'));var utils=require(_0x6c93('0x15'));var config=require(_0x6c93('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x6c93('0x17'))['db'];function respondWithStatusCode(_0x1e1ebd,_0x383b5f){_0x383b5f=_0x383b5f||0xcc;return function(_0x5cd23a){if(_0x5cd23a){return _0x1e1ebd['sendStatus'](_0x383b5f);}return _0x1e1ebd[_0x6c93('0x18')](_0x383b5f)[_0x6c93('0x19')]();};}function respondWithResult(_0x358a9c,_0x58d1ba){_0x58d1ba=_0x58d1ba||0xc8;return function(_0x245fb5){if(_0x245fb5){return _0x358a9c['status'](_0x58d1ba)[_0x6c93('0x1a')](_0x245fb5);}};}function respondWithFilteredResult(_0x510352,_0x3df436){return function(_0x18afa5){if(_0x18afa5){var _0xd20684=typeof _0x3df436[_0x6c93('0x1b')]===_0x6c93('0x1c')&&typeof _0x3df436[_0x6c93('0x1d')]===_0x6c93('0x1c');var _0x53ef39=_0x18afa5[_0x6c93('0x1e')];var _0x5475af=_0xd20684?0x0:_0x3df436[_0x6c93('0x1b')];var _0x34665a=_0xd20684?_0x18afa5[_0x6c93('0x1e')]:_0x3df436['offset']+_0x3df436[_0x6c93('0x1d')];var _0x481a60;if(_0x34665a>=_0x53ef39){_0x34665a=_0x53ef39;_0x481a60=0xc8;}else{_0x481a60=0xce;}_0x510352[_0x6c93('0x18')](_0x481a60);return _0x510352['set'](_0x6c93('0x1f'),_0x5475af+'-'+_0x34665a+'/'+_0x53ef39)[_0x6c93('0x1a')](_0x18afa5);}return null;};}function patchUpdates(_0xfcfdb3){return function(_0x2b5d4c){try{jsonpatch[_0x6c93('0x20')](_0x2b5d4c,_0xfcfdb3,!![]);}catch(_0x4eaf2b){return BPromise[_0x6c93('0x21')](_0x4eaf2b);}return _0x2b5d4c[_0x6c93('0x22')]();};}function saveUpdates(_0x3ecf3c,_0x2d1a47){return function(_0x1f22d0){if(_0x1f22d0){return _0x1f22d0['update'](_0x3ecf3c)['then'](function(_0x266152){return _0x266152;});}return null;};}function removeEntity(_0x580248,_0x577efe){return function(_0x13b844){if(_0x13b844){return _0x13b844[_0x6c93('0x23')]()[_0x6c93('0x24')](function(){_0x580248[_0x6c93('0x18')](0xcc)[_0x6c93('0x19')]();});}};}function handleEntityNotFound(_0x56e1c7,_0x45cefd){return function(_0x3bee25){if(!_0x3bee25){_0x56e1c7[_0x6c93('0x25')](0x194);}return _0x3bee25;};}function handleError(_0x10fb82,_0x1fb55c){_0x1fb55c=_0x1fb55c||0x1f4;return function(_0x4c2906){logger[_0x6c93('0x26')](_0x4c2906['stack']);if(_0x4c2906[_0x6c93('0x27')]){delete _0x4c2906[_0x6c93('0x27')];}_0x10fb82[_0x6c93('0x18')](_0x1fb55c)[_0x6c93('0x28')](_0x4c2906);};}exports[_0x6c93('0x29')]=function(_0x17c573,_0xb8e1d3){var _0x25ba26={},_0x47dbcb={},_0x2a09ad={'count':0x0,'rows':[]};var _0x43a7d8=_[_0x6c93('0x2a')](db['FreshsalesConfiguration'][_0x6c93('0x2b')],function(_0xa26303){return{'name':_0xa26303[_0x6c93('0x2c')],'type':_0xa26303[_0x6c93('0x2d')][_0x6c93('0x2e')]};});_0x47dbcb[_0x6c93('0x2f')]=_[_0x6c93('0x2a')](_0x43a7d8,_0x6c93('0x27'));_0x47dbcb['query']=_[_0x6c93('0x30')](_0x17c573[_0x6c93('0x31')]);_0x47dbcb[_0x6c93('0x32')]=_[_0x6c93('0x33')](_0x47dbcb[_0x6c93('0x2f')],_0x47dbcb[_0x6c93('0x31')]);_0x25ba26[_0x6c93('0x34')]=_['intersection'](_0x47dbcb['model'],qs[_0x6c93('0x35')](_0x17c573[_0x6c93('0x31')]['fields']));_0x25ba26[_0x6c93('0x34')]=_0x25ba26[_0x6c93('0x34')][_0x6c93('0x36')]?_0x25ba26[_0x6c93('0x34')]:_0x47dbcb[_0x6c93('0x2f')];if(!_0x17c573[_0x6c93('0x31')][_0x6c93('0x37')](_0x6c93('0x38'))){_0x25ba26[_0x6c93('0x1d')]=qs['limit'](_0x17c573[_0x6c93('0x31')][_0x6c93('0x1d')]);_0x25ba26['offset']=qs[_0x6c93('0x1b')](_0x17c573[_0x6c93('0x31')][_0x6c93('0x1b')]);}_0x25ba26['order']=qs['sort'](_0x17c573[_0x6c93('0x31')]['sort']);_0x25ba26['where']=qs[_0x6c93('0x32')](_['pick'](_0x17c573[_0x6c93('0x31')],_0x47dbcb[_0x6c93('0x32')]),_0x43a7d8);if(_0x17c573[_0x6c93('0x31')][_0x6c93('0x39')]){_0x25ba26[_0x6c93('0x3a')]=_[_0x6c93('0x3b')](_0x25ba26[_0x6c93('0x3a')],{'$or':_[_0x6c93('0x2a')](_0x43a7d8,function(_0x3a21d7){if(_0x3a21d7[_0x6c93('0x2d')]!==_0x6c93('0x3c')){var _0x13c70f={};_0x13c70f[_0x3a21d7[_0x6c93('0x27')]]={'$like':'%'+_0x17c573['query'][_0x6c93('0x39')]+'%'};return _0x13c70f;}})});}_0x25ba26=_[_0x6c93('0x3b')]({},_0x25ba26,_0x17c573['options']);var _0x243596={'where':_0x25ba26['where']};return db[_0x6c93('0x3d')][_0x6c93('0x1e')](_0x243596)['then'](function(_0x1291d5){_0x2a09ad[_0x6c93('0x1e')]=_0x1291d5;if(_0x17c573['query'][_0x6c93('0x3e')]){_0x25ba26[_0x6c93('0x3f')]=[{'all':!![]}];}return db[_0x6c93('0x3d')][_0x6c93('0x40')](_0x25ba26);})[_0x6c93('0x24')](function(_0x5c25c6){_0x2a09ad[_0x6c93('0x41')]=_0x5c25c6;return _0x2a09ad;})[_0x6c93('0x24')](respondWithFilteredResult(_0xb8e1d3,_0x25ba26))['catch'](handleError(_0xb8e1d3,null));};exports[_0x6c93('0x42')]=function(_0x3063d2,_0x441f1d){var _0x8e28b8={'raw':![],'where':{'id':_0x3063d2[_0x6c93('0x43')]['id']}},_0x21731b={};_0x21731b[_0x6c93('0x2f')]=_[_0x6c93('0x30')](db[_0x6c93('0x3d')][_0x6c93('0x2b')]);_0x21731b['query']=_['keys'](_0x3063d2[_0x6c93('0x31')]);_0x21731b[_0x6c93('0x32')]=_[_0x6c93('0x33')](_0x21731b[_0x6c93('0x2f')],_0x21731b[_0x6c93('0x31')]);_0x8e28b8[_0x6c93('0x34')]=_[_0x6c93('0x33')](_0x21731b[_0x6c93('0x2f')],qs[_0x6c93('0x35')](_0x3063d2[_0x6c93('0x31')]['fields']));_0x8e28b8[_0x6c93('0x34')]=_0x8e28b8[_0x6c93('0x34')][_0x6c93('0x36')]?_0x8e28b8[_0x6c93('0x34')]:_0x21731b['model'];if(_0x3063d2[_0x6c93('0x31')]['includeAll']){_0x8e28b8[_0x6c93('0x3f')]=[{'all':!![]}];}_0x8e28b8=_[_0x6c93('0x3b')]({},_0x8e28b8,_0x3063d2[_0x6c93('0x44')]);return db[_0x6c93('0x3d')][_0x6c93('0x45')](_0x8e28b8)[_0x6c93('0x24')](handleEntityNotFound(_0x441f1d,null))[_0x6c93('0x24')](respondWithResult(_0x441f1d,null))[_0x6c93('0x46')](handleError(_0x441f1d,null));};exports['create']=function(_0x1c219f,_0x30ce31){return db[_0x6c93('0x3d')][_0x6c93('0x47')](_0x1c219f[_0x6c93('0x48')],{})[_0x6c93('0x24')](respondWithResult(_0x30ce31,0xc9))[_0x6c93('0x46')](handleError(_0x30ce31,null));};exports[_0x6c93('0x49')]=function(_0x2ea943,_0x212487){if(_0x2ea943[_0x6c93('0x48')]['id']){delete _0x2ea943[_0x6c93('0x48')]['id'];}return db[_0x6c93('0x3d')]['find']({'where':{'id':_0x2ea943['params']['id']}})[_0x6c93('0x24')](handleEntityNotFound(_0x212487,null))[_0x6c93('0x24')](saveUpdates(_0x2ea943[_0x6c93('0x48')],null))['then'](respondWithResult(_0x212487,null))['catch'](handleError(_0x212487,null));};exports['destroy']=function(_0x4a1d25,_0x1c235){return db[_0x6c93('0x3d')]['find']({'where':{'id':_0x4a1d25['params']['id']}})[_0x6c93('0x24')](handleEntityNotFound(_0x1c235,null))['then'](removeEntity(_0x1c235,null))[_0x6c93('0x46')](handleError(_0x1c235,null));};exports[_0x6c93('0x4a')]=function(_0x4af339,_0x4488cc,_0x17c80c){var _0x2f9a9c={};var _0xb8982b={};var _0x2fbccc;var _0x19e863;return db[_0x6c93('0x3d')][_0x6c93('0x4b')]({'where':{'id':_0x4af339['params']['id']}})[_0x6c93('0x24')](handleEntityNotFound(_0x4488cc,null))[_0x6c93('0x24')](function(_0x11c81e){if(_0x11c81e){_0x2fbccc=_0x11c81e;_0xb8982b[_0x6c93('0x2f')]=_[_0x6c93('0x30')](db[_0x6c93('0x4c')][_0x6c93('0x2b')]);_0xb8982b[_0x6c93('0x31')]=_['keys'](_0x4af339[_0x6c93('0x31')]);_0xb8982b['filters']=_[_0x6c93('0x33')](_0xb8982b['model'],_0xb8982b[_0x6c93('0x31')]);_0x2f9a9c['attributes']=_[_0x6c93('0x33')](_0xb8982b[_0x6c93('0x2f')],qs['fields'](_0x4af339['query'][_0x6c93('0x35')]));_0x2f9a9c[_0x6c93('0x34')]=_0x2f9a9c[_0x6c93('0x34')][_0x6c93('0x36')]?_0x2f9a9c['attributes']:_0xb8982b[_0x6c93('0x2f')];_0x2f9a9c[_0x6c93('0x4d')]=qs[_0x6c93('0x4e')](_0x4af339[_0x6c93('0x31')][_0x6c93('0x4e')]);_0x2f9a9c['where']=qs[_0x6c93('0x32')](_[_0x6c93('0x4f')](_0x4af339[_0x6c93('0x31')],_0xb8982b[_0x6c93('0x32')]));if(_0x4af339['query'][_0x6c93('0x39')]){_0x2f9a9c[_0x6c93('0x3a')]=_[_0x6c93('0x3b')](_0x2f9a9c[_0x6c93('0x3a')],{'$or':_[_0x6c93('0x2a')](_0x2f9a9c[_0x6c93('0x34')],function(_0x514d47){var _0x3eaa66={};_0x3eaa66[_0x514d47]={'$like':'%'+_0x4af339[_0x6c93('0x31')]['filter']+'%'};return _0x3eaa66;})});}_0x2f9a9c=_[_0x6c93('0x3b')]({},_0x2f9a9c,_0x4af339[_0x6c93('0x44')]);return _0x2fbccc[_0x6c93('0x4a')](_0x2f9a9c);}})[_0x6c93('0x24')](function(_0x452a7a){if(_0x452a7a){_0x19e863=_0x452a7a[_0x6c93('0x36')];if(!_0x4af339[_0x6c93('0x31')][_0x6c93('0x37')]('nolimit')){_0x2f9a9c[_0x6c93('0x1d')]=qs[_0x6c93('0x1d')](_0x4af339[_0x6c93('0x31')][_0x6c93('0x1d')]);_0x2f9a9c[_0x6c93('0x1b')]=qs[_0x6c93('0x1b')](_0x4af339[_0x6c93('0x31')][_0x6c93('0x1b')]);}return _0x2fbccc['getSubjects'](_0x2f9a9c);}})[_0x6c93('0x24')](function(_0x518ae8){if(_0x518ae8){return _0x518ae8?{'count':_0x19e863,'rows':_0x518ae8}:null;}})[_0x6c93('0x24')](respondWithResult(_0x4488cc,null))['catch'](handleError(_0x4488cc,null));};exports[_0x6c93('0x50')]=function(_0x5578b0,_0x3b89f1,_0x271222){var _0x408985={};var _0x3c89fc={};var _0x5f5644;var _0x1c79a0;return db['FreshsalesConfiguration'][_0x6c93('0x4b')]({'where':{'id':_0x5578b0[_0x6c93('0x43')]['id']}})[_0x6c93('0x24')](handleEntityNotFound(_0x3b89f1,null))[_0x6c93('0x24')](function(_0x2c5e2c){if(_0x2c5e2c){_0x5f5644=_0x2c5e2c;_0x3c89fc[_0x6c93('0x2f')]=_['keys'](db[_0x6c93('0x4c')]['rawAttributes']);_0x3c89fc[_0x6c93('0x31')]=_['keys'](_0x5578b0[_0x6c93('0x31')]);_0x3c89fc[_0x6c93('0x32')]=_[_0x6c93('0x33')](_0x3c89fc[_0x6c93('0x2f')],_0x3c89fc[_0x6c93('0x31')]);_0x408985[_0x6c93('0x34')]=_[_0x6c93('0x33')](_0x3c89fc['model'],qs[_0x6c93('0x35')](_0x5578b0[_0x6c93('0x31')][_0x6c93('0x35')]));_0x408985[_0x6c93('0x34')]=_0x408985[_0x6c93('0x34')][_0x6c93('0x36')]?_0x408985[_0x6c93('0x34')]:_0x3c89fc[_0x6c93('0x2f')];_0x408985['order']=qs[_0x6c93('0x4e')](_0x5578b0[_0x6c93('0x31')][_0x6c93('0x4e')]);_0x408985[_0x6c93('0x3a')]=qs['filters'](_['pick'](_0x5578b0[_0x6c93('0x31')],_0x3c89fc[_0x6c93('0x32')]));if(_0x5578b0['query'][_0x6c93('0x39')]){_0x408985[_0x6c93('0x3a')]=_['merge'](_0x408985[_0x6c93('0x3a')],{'$or':_[_0x6c93('0x2a')](_0x408985['attributes'],function(_0xfb37fd){var _0x55c9c2={};_0x55c9c2[_0xfb37fd]={'$like':'%'+_0x5578b0[_0x6c93('0x31')][_0x6c93('0x39')]+'%'};return _0x55c9c2;})});}_0x408985=_['merge']({},_0x408985,_0x5578b0[_0x6c93('0x44')]);return _0x5f5644[_0x6c93('0x50')](_0x408985);}})[_0x6c93('0x24')](function(_0x7121bb){if(_0x7121bb){_0x1c79a0=_0x7121bb[_0x6c93('0x36')];if(!_0x5578b0[_0x6c93('0x31')][_0x6c93('0x37')](_0x6c93('0x38'))){_0x408985[_0x6c93('0x1d')]=qs['limit'](_0x5578b0['query'][_0x6c93('0x1d')]);_0x408985[_0x6c93('0x1b')]=qs[_0x6c93('0x1b')](_0x5578b0[_0x6c93('0x31')][_0x6c93('0x1b')]);}return _0x5f5644[_0x6c93('0x50')](_0x408985);}})[_0x6c93('0x24')](function(_0x52fdc2){if(_0x52fdc2){return _0x52fdc2?{'count':_0x1c79a0,'rows':_0x52fdc2}:null;}})[_0x6c93('0x24')](respondWithResult(_0x3b89f1,null))[_0x6c93('0x46')](handleError(_0x3b89f1,null));};exports['getFields']=function(_0x77bc83,_0x6f43be,_0x190af4){var _0x580ccb={};var _0x2574eb={};var _0x4bb971;var _0x35efef;return db['FreshsalesConfiguration'][_0x6c93('0x4b')]({'where':{'id':_0x77bc83['params']['id']}})[_0x6c93('0x24')](handleEntityNotFound(_0x6f43be,null))[_0x6c93('0x24')](function(_0x11f9c0){if(_0x11f9c0){_0x4bb971=_0x11f9c0;_0x2574eb['model']=_[_0x6c93('0x30')](db['FreshsalesField'][_0x6c93('0x2b')]);_0x2574eb[_0x6c93('0x31')]=_[_0x6c93('0x30')](_0x77bc83['query']);_0x2574eb['filters']=_[_0x6c93('0x33')](_0x2574eb[_0x6c93('0x2f')],_0x2574eb[_0x6c93('0x31')]);_0x580ccb[_0x6c93('0x34')]=_[_0x6c93('0x33')](_0x2574eb[_0x6c93('0x2f')],qs[_0x6c93('0x35')](_0x77bc83[_0x6c93('0x31')]['fields']));_0x580ccb[_0x6c93('0x34')]=_0x580ccb[_0x6c93('0x34')]['length']?_0x580ccb[_0x6c93('0x34')]:_0x2574eb['model'];_0x580ccb['order']=qs[_0x6c93('0x4e')](_0x77bc83[_0x6c93('0x31')][_0x6c93('0x4e')]);_0x580ccb['where']=qs[_0x6c93('0x32')](_[_0x6c93('0x4f')](_0x77bc83[_0x6c93('0x31')],_0x2574eb[_0x6c93('0x32')]));if(_0x77bc83['query']['filter']){_0x580ccb[_0x6c93('0x3a')]=_['merge'](_0x580ccb[_0x6c93('0x3a')],{'$or':_[_0x6c93('0x2a')](_0x580ccb[_0x6c93('0x34')],function(_0xf93e5c){var _0x53a6e3={};_0x53a6e3[_0xf93e5c]={'$like':'%'+_0x77bc83[_0x6c93('0x31')][_0x6c93('0x39')]+'%'};return _0x53a6e3;})});}_0x580ccb=_['merge']({},_0x580ccb,_0x77bc83[_0x6c93('0x44')]);return _0x4bb971[_0x6c93('0x51')](_0x580ccb);}})[_0x6c93('0x24')](function(_0x544e5f){if(_0x544e5f){_0x35efef=_0x544e5f['length'];if(!_0x77bc83[_0x6c93('0x31')]['hasOwnProperty']('nolimit')){_0x580ccb[_0x6c93('0x1d')]=qs[_0x6c93('0x1d')](_0x77bc83[_0x6c93('0x31')]['limit']);_0x580ccb[_0x6c93('0x1b')]=qs[_0x6c93('0x1b')](_0x77bc83[_0x6c93('0x31')][_0x6c93('0x1b')]);}return _0x4bb971[_0x6c93('0x51')](_0x580ccb);}})['then'](function(_0x4ee197){if(_0x4ee197){return _0x4ee197?{'count':_0x35efef,'rows':_0x4ee197}:null;}})[_0x6c93('0x24')](respondWithResult(_0x6f43be,null))[_0x6c93('0x46')](handleError(_0x6f43be,null));};