6002dd0982fe138b26124e93e189866abd4ad02d
[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 _0x4c67=['model','keys','query','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','rows','catch','params','length','includeAll','include','find','create','body','destroy','findOne','order','getSubjects','getDescriptions','FreshsalesField','getFields','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','offset','limit','undefined','count','status','set','json','apply','reject','save','update','then','sendStatus','error','stack','name','index','map','FreshsalesConfiguration','rawAttributes','type'];(function(_0x1a4d5e,_0x484a25){var _0x418f6=function(_0x398133){while(--_0x398133){_0x1a4d5e['push'](_0x1a4d5e['shift']());}};_0x418f6(++_0x484a25);}(_0x4c67,0xbe));var _0x74c6=function(_0x5b9b95,_0x2ffa51){_0x5b9b95=_0x5b9b95-0x0;var _0x584e72=_0x4c67[_0x5b9b95];return _0x584e72;};'use strict';var emlformat=require(_0x74c6('0x0'));var rimraf=require(_0x74c6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x74c6('0x2'));var moment=require(_0x74c6('0x3'));var BPromise=require(_0x74c6('0x4'));var Mustache=require(_0x74c6('0x5'));var util=require(_0x74c6('0x6'));var path=require(_0x74c6('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x74c6('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x74c6('0x9'));var crypto=require(_0x74c6('0xa'));var jsforce=require(_0x74c6('0xb'));var deskjs=require(_0x74c6('0xc'));var toCsv=require(_0x74c6('0xd'));var querystring=require('querystring');var Papa=require(_0x74c6('0xe'));var Redis=require(_0x74c6('0xf'));var authService=require(_0x74c6('0x10'));var qs=require(_0x74c6('0x11'));var as=require(_0x74c6('0x12'));var hardwareService=require(_0x74c6('0x13'));var logger=require('../../config/logger')(_0x74c6('0x14'));var utils=require(_0x74c6('0x15'));var config=require(_0x74c6('0x16'));var licenseUtil=require(_0x74c6('0x17'));var db=require(_0x74c6('0x18'))['db'];function respondWithStatusCode(_0x48745c,_0x2ae635){_0x2ae635=_0x2ae635||0xcc;return function(_0x5afa2e){if(_0x5afa2e){return _0x48745c['sendStatus'](_0x2ae635);}return _0x48745c['status'](_0x2ae635)[_0x74c6('0x19')]();};}function respondWithResult(_0x4a6dc0,_0xd04b38){_0xd04b38=_0xd04b38||0xc8;return function(_0x24b45e){if(_0x24b45e){return _0x4a6dc0['status'](_0xd04b38)['json'](_0x24b45e);}};}function respondWithFilteredResult(_0x28c114,_0x5d3101){return function(_0x3afb8d){if(_0x3afb8d){var _0x319cd8=typeof _0x5d3101[_0x74c6('0x1a')]==='undefined'&&typeof _0x5d3101[_0x74c6('0x1b')]===_0x74c6('0x1c');var _0x5930bd=_0x3afb8d[_0x74c6('0x1d')];var _0x1a6fcb=_0x319cd8?0x0:_0x5d3101[_0x74c6('0x1a')];var _0x5cfedc=_0x319cd8?_0x3afb8d[_0x74c6('0x1d')]:_0x5d3101[_0x74c6('0x1a')]+_0x5d3101['limit'];var _0x2caca4;if(_0x5cfedc>=_0x5930bd){_0x5cfedc=_0x5930bd;_0x2caca4=0xc8;}else{_0x2caca4=0xce;}_0x28c114[_0x74c6('0x1e')](_0x2caca4);return _0x28c114[_0x74c6('0x1f')]('Content-Range',_0x1a6fcb+'-'+_0x5cfedc+'/'+_0x5930bd)[_0x74c6('0x20')](_0x3afb8d);}return null;};}function patchUpdates(_0x17a7f2){return function(_0x3f4215){try{jsonpatch[_0x74c6('0x21')](_0x3f4215,_0x17a7f2,!![]);}catch(_0x3f4f61){return BPromise[_0x74c6('0x22')](_0x3f4f61);}return _0x3f4215[_0x74c6('0x23')]();};}function saveUpdates(_0x3fc0c4,_0x577f0a){return function(_0x284ec8){if(_0x284ec8){return _0x284ec8[_0x74c6('0x24')](_0x3fc0c4)[_0x74c6('0x25')](function(_0x321dec){return _0x321dec;});}return null;};}function removeEntity(_0x49446f,_0x26cd23){return function(_0x32033c){if(_0x32033c){return _0x32033c['destroy']()['then'](function(){_0x49446f[_0x74c6('0x1e')](0xcc)[_0x74c6('0x19')]();});}};}function handleEntityNotFound(_0x1a3ec8,_0x3d8fae){return function(_0x19af7b){if(!_0x19af7b){_0x1a3ec8[_0x74c6('0x26')](0x194);}return _0x19af7b;};}function handleError(_0x3a9ec3,_0x2060c8){_0x2060c8=_0x2060c8||0x1f4;return function(_0x7df9de){logger[_0x74c6('0x27')](_0x7df9de[_0x74c6('0x28')]);if(_0x7df9de[_0x74c6('0x29')]){delete _0x7df9de[_0x74c6('0x29')];}_0x3a9ec3['status'](_0x2060c8)['send'](_0x7df9de);};}exports[_0x74c6('0x2a')]=function(_0x53ac25,_0x2bb3e6){var _0x1ebeea={},_0x5c7e7b={},_0x2831e9={'count':0x0,'rows':[]};var _0x53a0ba=_[_0x74c6('0x2b')](db[_0x74c6('0x2c')][_0x74c6('0x2d')],function(_0x35bf79){return{'name':_0x35bf79['fieldName'],'type':_0x35bf79[_0x74c6('0x2e')]['key']};});_0x5c7e7b[_0x74c6('0x2f')]=_[_0x74c6('0x2b')](_0x53a0ba,_0x74c6('0x29'));_0x5c7e7b['query']=_[_0x74c6('0x30')](_0x53ac25[_0x74c6('0x31')]);_0x5c7e7b['filters']=_[_0x74c6('0x32')](_0x5c7e7b[_0x74c6('0x2f')],_0x5c7e7b['query']);_0x1ebeea[_0x74c6('0x33')]=_[_0x74c6('0x32')](_0x5c7e7b['model'],qs['fields'](_0x53ac25[_0x74c6('0x31')][_0x74c6('0x34')]));_0x1ebeea[_0x74c6('0x33')]=_0x1ebeea['attributes']['length']?_0x1ebeea[_0x74c6('0x33')]:_0x5c7e7b['model'];if(!_0x53ac25[_0x74c6('0x31')][_0x74c6('0x35')](_0x74c6('0x36'))){_0x1ebeea[_0x74c6('0x1b')]=qs[_0x74c6('0x1b')](_0x53ac25[_0x74c6('0x31')]['limit']);_0x1ebeea['offset']=qs['offset'](_0x53ac25[_0x74c6('0x31')][_0x74c6('0x1a')]);}_0x1ebeea['order']=qs['sort'](_0x53ac25[_0x74c6('0x31')][_0x74c6('0x37')]);_0x1ebeea[_0x74c6('0x38')]=qs[_0x74c6('0x39')](_[_0x74c6('0x3a')](_0x53ac25[_0x74c6('0x31')],_0x5c7e7b[_0x74c6('0x39')]),_0x53a0ba);if(_0x53ac25[_0x74c6('0x31')][_0x74c6('0x3b')]){_0x1ebeea['where']=_[_0x74c6('0x3c')](_0x1ebeea[_0x74c6('0x38')],{'$or':_[_0x74c6('0x2b')](_0x53a0ba,function(_0xcf3295){if(_0xcf3295['type']!==_0x74c6('0x3d')){var _0x1749ab={};_0x1749ab[_0xcf3295['name']]={'$like':'%'+_0x53ac25['query']['filter']+'%'};return _0x1749ab;}})});}_0x1ebeea=_[_0x74c6('0x3c')]({},_0x1ebeea,_0x53ac25[_0x74c6('0x3e')]);var _0x48369a={'where':_0x1ebeea[_0x74c6('0x38')]};return db[_0x74c6('0x2c')][_0x74c6('0x1d')](_0x48369a)[_0x74c6('0x25')](function(_0x17fb6a){_0x2831e9['count']=_0x17fb6a;if(_0x53ac25[_0x74c6('0x31')]['includeAll']){_0x1ebeea['include']=[{'all':!![]}];}return db[_0x74c6('0x2c')]['findAll'](_0x1ebeea);})[_0x74c6('0x25')](function(_0x100c2f){_0x2831e9[_0x74c6('0x3f')]=_0x100c2f;return _0x2831e9;})[_0x74c6('0x25')](respondWithFilteredResult(_0x2bb3e6,_0x1ebeea))[_0x74c6('0x40')](handleError(_0x2bb3e6,null));};exports['show']=function(_0x166516,_0x2651e4){var _0x3847f4={'raw':![],'where':{'id':_0x166516[_0x74c6('0x41')]['id']}},_0x5097fd={};_0x5097fd[_0x74c6('0x2f')]=_['keys'](db[_0x74c6('0x2c')][_0x74c6('0x2d')]);_0x5097fd[_0x74c6('0x31')]=_[_0x74c6('0x30')](_0x166516[_0x74c6('0x31')]);_0x5097fd[_0x74c6('0x39')]=_[_0x74c6('0x32')](_0x5097fd[_0x74c6('0x2f')],_0x5097fd[_0x74c6('0x31')]);_0x3847f4[_0x74c6('0x33')]=_[_0x74c6('0x32')](_0x5097fd[_0x74c6('0x2f')],qs['fields'](_0x166516['query'][_0x74c6('0x34')]));_0x3847f4['attributes']=_0x3847f4[_0x74c6('0x33')][_0x74c6('0x42')]?_0x3847f4['attributes']:_0x5097fd[_0x74c6('0x2f')];if(_0x166516[_0x74c6('0x31')][_0x74c6('0x43')]){_0x3847f4[_0x74c6('0x44')]=[{'all':!![]}];}_0x3847f4=_['merge']({},_0x3847f4,_0x166516[_0x74c6('0x3e')]);return db[_0x74c6('0x2c')][_0x74c6('0x45')](_0x3847f4)[_0x74c6('0x25')](handleEntityNotFound(_0x2651e4,null))[_0x74c6('0x25')](respondWithResult(_0x2651e4,null))[_0x74c6('0x40')](handleError(_0x2651e4,null));};exports[_0x74c6('0x46')]=function(_0x312a5e,_0x1f7499){return db['FreshsalesConfiguration'][_0x74c6('0x46')](_0x312a5e[_0x74c6('0x47')],{})[_0x74c6('0x25')](respondWithResult(_0x1f7499,0xc9))[_0x74c6('0x40')](handleError(_0x1f7499,null));};exports[_0x74c6('0x24')]=function(_0x181685,_0x1e3293){if(_0x181685[_0x74c6('0x47')]['id']){delete _0x181685[_0x74c6('0x47')]['id'];}return db[_0x74c6('0x2c')]['find']({'where':{'id':_0x181685[_0x74c6('0x41')]['id']}})[_0x74c6('0x25')](handleEntityNotFound(_0x1e3293,null))[_0x74c6('0x25')](saveUpdates(_0x181685[_0x74c6('0x47')],null))['then'](respondWithResult(_0x1e3293,null))[_0x74c6('0x40')](handleError(_0x1e3293,null));};exports[_0x74c6('0x48')]=function(_0xaa4a,_0x54bd0d){return db[_0x74c6('0x2c')]['find']({'where':{'id':_0xaa4a[_0x74c6('0x41')]['id']}})[_0x74c6('0x25')](handleEntityNotFound(_0x54bd0d,null))[_0x74c6('0x25')](removeEntity(_0x54bd0d,null))[_0x74c6('0x40')](handleError(_0x54bd0d,null));};exports['getSubjects']=function(_0x4e2560,_0x4b6199,_0x3c5439){var _0xbe1f74={};var _0x29a66e={};var _0x58f8e7;var _0x30dbb0;return db[_0x74c6('0x2c')][_0x74c6('0x49')]({'where':{'id':_0x4e2560[_0x74c6('0x41')]['id']}})[_0x74c6('0x25')](handleEntityNotFound(_0x4b6199,null))[_0x74c6('0x25')](function(_0x143a8e){if(_0x143a8e){_0x58f8e7=_0x143a8e;_0x29a66e[_0x74c6('0x2f')]=_['keys'](db['FreshsalesField']['rawAttributes']);_0x29a66e[_0x74c6('0x31')]=_[_0x74c6('0x30')](_0x4e2560[_0x74c6('0x31')]);_0x29a66e[_0x74c6('0x39')]=_[_0x74c6('0x32')](_0x29a66e['model'],_0x29a66e[_0x74c6('0x31')]);_0xbe1f74[_0x74c6('0x33')]=_[_0x74c6('0x32')](_0x29a66e[_0x74c6('0x2f')],qs[_0x74c6('0x34')](_0x4e2560[_0x74c6('0x31')][_0x74c6('0x34')]));_0xbe1f74[_0x74c6('0x33')]=_0xbe1f74[_0x74c6('0x33')][_0x74c6('0x42')]?_0xbe1f74['attributes']:_0x29a66e[_0x74c6('0x2f')];_0xbe1f74[_0x74c6('0x4a')]=qs[_0x74c6('0x37')](_0x4e2560[_0x74c6('0x31')][_0x74c6('0x37')]);_0xbe1f74[_0x74c6('0x38')]=qs[_0x74c6('0x39')](_['pick'](_0x4e2560[_0x74c6('0x31')],_0x29a66e[_0x74c6('0x39')]));if(_0x4e2560[_0x74c6('0x31')][_0x74c6('0x3b')]){_0xbe1f74[_0x74c6('0x38')]=_[_0x74c6('0x3c')](_0xbe1f74[_0x74c6('0x38')],{'$or':_[_0x74c6('0x2b')](_0xbe1f74[_0x74c6('0x33')],function(_0x4cd873){var _0x2a55b3={};_0x2a55b3[_0x4cd873]={'$like':'%'+_0x4e2560['query'][_0x74c6('0x3b')]+'%'};return _0x2a55b3;})});}_0xbe1f74=_['merge']({},_0xbe1f74,_0x4e2560[_0x74c6('0x3e')]);return _0x58f8e7['getSubjects'](_0xbe1f74);}})[_0x74c6('0x25')](function(_0x2c5ec6){if(_0x2c5ec6){_0x30dbb0=_0x2c5ec6[_0x74c6('0x42')];if(!_0x4e2560[_0x74c6('0x31')]['hasOwnProperty']('nolimit')){_0xbe1f74[_0x74c6('0x1b')]=qs['limit'](_0x4e2560['query'][_0x74c6('0x1b')]);_0xbe1f74[_0x74c6('0x1a')]=qs[_0x74c6('0x1a')](_0x4e2560['query'][_0x74c6('0x1a')]);}return _0x58f8e7[_0x74c6('0x4b')](_0xbe1f74);}})[_0x74c6('0x25')](function(_0x219df4){if(_0x219df4){return _0x219df4?{'count':_0x30dbb0,'rows':_0x219df4}:null;}})[_0x74c6('0x25')](respondWithResult(_0x4b6199,null))['catch'](handleError(_0x4b6199,null));};exports[_0x74c6('0x4c')]=function(_0x43af58,_0x21fbb7,_0x435f61){var _0x5eaba9={};var _0x47f5c8={};var _0x3e8c3b;var _0x444d30;return db[_0x74c6('0x2c')]['findOne']({'where':{'id':_0x43af58[_0x74c6('0x41')]['id']}})[_0x74c6('0x25')](handleEntityNotFound(_0x21fbb7,null))['then'](function(_0x2a16d7){if(_0x2a16d7){_0x3e8c3b=_0x2a16d7;_0x47f5c8['model']=_[_0x74c6('0x30')](db[_0x74c6('0x4d')]['rawAttributes']);_0x47f5c8[_0x74c6('0x31')]=_['keys'](_0x43af58[_0x74c6('0x31')]);_0x47f5c8['filters']=_[_0x74c6('0x32')](_0x47f5c8[_0x74c6('0x2f')],_0x47f5c8[_0x74c6('0x31')]);_0x5eaba9[_0x74c6('0x33')]=_[_0x74c6('0x32')](_0x47f5c8[_0x74c6('0x2f')],qs[_0x74c6('0x34')](_0x43af58[_0x74c6('0x31')][_0x74c6('0x34')]));_0x5eaba9[_0x74c6('0x33')]=_0x5eaba9['attributes'][_0x74c6('0x42')]?_0x5eaba9[_0x74c6('0x33')]:_0x47f5c8[_0x74c6('0x2f')];_0x5eaba9[_0x74c6('0x4a')]=qs[_0x74c6('0x37')](_0x43af58['query'][_0x74c6('0x37')]);_0x5eaba9[_0x74c6('0x38')]=qs[_0x74c6('0x39')](_[_0x74c6('0x3a')](_0x43af58[_0x74c6('0x31')],_0x47f5c8[_0x74c6('0x39')]));if(_0x43af58[_0x74c6('0x31')][_0x74c6('0x3b')]){_0x5eaba9['where']=_['merge'](_0x5eaba9[_0x74c6('0x38')],{'$or':_['map'](_0x5eaba9['attributes'],function(_0x58694b){var _0x2d9563={};_0x2d9563[_0x58694b]={'$like':'%'+_0x43af58[_0x74c6('0x31')][_0x74c6('0x3b')]+'%'};return _0x2d9563;})});}_0x5eaba9=_[_0x74c6('0x3c')]({},_0x5eaba9,_0x43af58[_0x74c6('0x3e')]);return _0x3e8c3b['getDescriptions'](_0x5eaba9);}})[_0x74c6('0x25')](function(_0x143d8e){if(_0x143d8e){_0x444d30=_0x143d8e[_0x74c6('0x42')];if(!_0x43af58[_0x74c6('0x31')][_0x74c6('0x35')](_0x74c6('0x36'))){_0x5eaba9[_0x74c6('0x1b')]=qs[_0x74c6('0x1b')](_0x43af58[_0x74c6('0x31')]['limit']);_0x5eaba9['offset']=qs[_0x74c6('0x1a')](_0x43af58[_0x74c6('0x31')][_0x74c6('0x1a')]);}return _0x3e8c3b[_0x74c6('0x4c')](_0x5eaba9);}})[_0x74c6('0x25')](function(_0x1d0cbb){if(_0x1d0cbb){return _0x1d0cbb?{'count':_0x444d30,'rows':_0x1d0cbb}:null;}})[_0x74c6('0x25')](respondWithResult(_0x21fbb7,null))['catch'](handleError(_0x21fbb7,null));};exports['getFields']=function(_0x4aca4f,_0x46dcab,_0x5966fc){var _0x5864b6={};var _0x57deb9={};var _0x4c3b1d;var _0x20ac8c;return db[_0x74c6('0x2c')]['findOne']({'where':{'id':_0x4aca4f['params']['id']}})[_0x74c6('0x25')](handleEntityNotFound(_0x46dcab,null))[_0x74c6('0x25')](function(_0xc201fc){if(_0xc201fc){_0x4c3b1d=_0xc201fc;_0x57deb9[_0x74c6('0x2f')]=_[_0x74c6('0x30')](db[_0x74c6('0x4d')]['rawAttributes']);_0x57deb9[_0x74c6('0x31')]=_['keys'](_0x4aca4f[_0x74c6('0x31')]);_0x57deb9[_0x74c6('0x39')]=_[_0x74c6('0x32')](_0x57deb9[_0x74c6('0x2f')],_0x57deb9[_0x74c6('0x31')]);_0x5864b6[_0x74c6('0x33')]=_[_0x74c6('0x32')](_0x57deb9[_0x74c6('0x2f')],qs['fields'](_0x4aca4f['query'][_0x74c6('0x34')]));_0x5864b6[_0x74c6('0x33')]=_0x5864b6[_0x74c6('0x33')][_0x74c6('0x42')]?_0x5864b6[_0x74c6('0x33')]:_0x57deb9[_0x74c6('0x2f')];_0x5864b6[_0x74c6('0x4a')]=qs['sort'](_0x4aca4f['query'][_0x74c6('0x37')]);_0x5864b6[_0x74c6('0x38')]=qs[_0x74c6('0x39')](_['pick'](_0x4aca4f['query'],_0x57deb9['filters']));if(_0x4aca4f[_0x74c6('0x31')][_0x74c6('0x3b')]){_0x5864b6[_0x74c6('0x38')]=_['merge'](_0x5864b6[_0x74c6('0x38')],{'$or':_[_0x74c6('0x2b')](_0x5864b6[_0x74c6('0x33')],function(_0x402020){var _0x49b11d={};_0x49b11d[_0x402020]={'$like':'%'+_0x4aca4f[_0x74c6('0x31')][_0x74c6('0x3b')]+'%'};return _0x49b11d;})});}_0x5864b6=_['merge']({},_0x5864b6,_0x4aca4f[_0x74c6('0x3e')]);return _0x4c3b1d[_0x74c6('0x4e')](_0x5864b6);}})[_0x74c6('0x25')](function(_0x5616ad){if(_0x5616ad){_0x20ac8c=_0x5616ad[_0x74c6('0x42')];if(!_0x4aca4f[_0x74c6('0x31')]['hasOwnProperty'](_0x74c6('0x36'))){_0x5864b6['limit']=qs['limit'](_0x4aca4f[_0x74c6('0x31')]['limit']);_0x5864b6[_0x74c6('0x1a')]=qs[_0x74c6('0x1a')](_0x4aca4f[_0x74c6('0x31')][_0x74c6('0x1a')]);}return _0x4c3b1d[_0x74c6('0x4e')](_0x5864b6);}})[_0x74c6('0x25')](function(_0x340cab){if(_0x340cab){return _0x340cab?{'count':_0x20ac8c,'rows':_0x340cab}:null;}})[_0x74c6('0x25')](respondWithResult(_0x46dcab,null))[_0x74c6('0x40')](handleError(_0x46dcab,null));};