0326d89ff9f2898c813a5458f4426fb519186db7
[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 _0x7ad9=['api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','index','FreshsalesConfiguration','rawAttributes','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','type','filter','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','findOne','getSubjects','getDescriptions','FreshsalesField','pick','getFields','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x330a28,_0x1c0823){var _0x126dea=function(_0x108b76){while(--_0x108b76){_0x330a28['push'](_0x330a28['shift']());}};_0x126dea(++_0x1c0823);}(_0x7ad9,0x8a));var _0x97ad=function(_0x275719,_0x4abe89){_0x275719=_0x275719-0x0;var _0x43ab66=_0x7ad9[_0x275719];return _0x43ab66;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x97ad('0x0'));var zipdir=require(_0x97ad('0x1'));var jsonpatch=require(_0x97ad('0x2'));var rp=require(_0x97ad('0x3'));var moment=require('moment');var BPromise=require(_0x97ad('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x97ad('0x5'));var sox=require(_0x97ad('0x6'));var csv=require(_0x97ad('0x7'));var ejs=require(_0x97ad('0x8'));var fs=require('fs');var fs_extra=require(_0x97ad('0x9'));var _=require(_0x97ad('0xa'));var squel=require(_0x97ad('0xb'));var crypto=require(_0x97ad('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x97ad('0xd'));var toCsv=require(_0x97ad('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x97ad('0xe'));var authService=require(_0x97ad('0xf'));var qs=require(_0x97ad('0x10'));var as=require(_0x97ad('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x97ad('0x12'));var utils=require(_0x97ad('0x13'));var config=require(_0x97ad('0x14'));var licenseUtil=require(_0x97ad('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x270876,_0x1c2af0){_0x1c2af0=_0x1c2af0||0xcc;return function(_0x5d0ab4){if(_0x5d0ab4){return _0x270876[_0x97ad('0x16')](_0x1c2af0);}return _0x270876['status'](_0x1c2af0)[_0x97ad('0x17')]();};}function respondWithResult(_0x1f25ec,_0x111f0d){_0x111f0d=_0x111f0d||0xc8;return function(_0x2cf4e1){if(_0x2cf4e1){return _0x1f25ec[_0x97ad('0x18')](_0x111f0d)[_0x97ad('0x19')](_0x2cf4e1);}};}function respondWithFilteredResult(_0x5c4535,_0x16c38c){return function(_0x5b31bc){if(_0x5b31bc){var _0x26d740=typeof _0x16c38c[_0x97ad('0x1a')]==='undefined'&&typeof _0x16c38c[_0x97ad('0x1b')]==='undefined';var _0x76c2eb=_0x5b31bc[_0x97ad('0x1c')];var _0x59bc12=_0x26d740?0x0:_0x16c38c[_0x97ad('0x1a')];var _0x581c9a=_0x26d740?_0x5b31bc['count']:_0x16c38c[_0x97ad('0x1a')]+_0x16c38c[_0x97ad('0x1b')];var _0x9669ce;if(_0x581c9a>=_0x76c2eb){_0x581c9a=_0x76c2eb;_0x9669ce=0xc8;}else{_0x9669ce=0xce;}_0x5c4535[_0x97ad('0x18')](_0x9669ce);return _0x5c4535[_0x97ad('0x1d')](_0x97ad('0x1e'),_0x59bc12+'-'+_0x581c9a+'/'+_0x76c2eb)['json'](_0x5b31bc);}return null;};}function patchUpdates(_0x1ab3a8){return function(_0x26089c){try{jsonpatch[_0x97ad('0x1f')](_0x26089c,_0x1ab3a8,!![]);}catch(_0x488eb6){return BPromise['reject'](_0x488eb6);}return _0x26089c[_0x97ad('0x20')]();};}function saveUpdates(_0xc2505f,_0x3092ac){return function(_0x410faf){if(_0x410faf){return _0x410faf[_0x97ad('0x21')](_0xc2505f)[_0x97ad('0x22')](function(_0x2ac534){return _0x2ac534;});}return null;};}function removeEntity(_0x50687a,_0x37014e){return function(_0x386cdc){if(_0x386cdc){return _0x386cdc[_0x97ad('0x23')]()[_0x97ad('0x22')](function(){_0x50687a[_0x97ad('0x18')](0xcc)[_0x97ad('0x17')]();});}};}function handleEntityNotFound(_0x27a0db,_0x5dfde6){return function(_0x393ba0){if(!_0x393ba0){_0x27a0db[_0x97ad('0x16')](0x194);}return _0x393ba0;};}function handleError(_0x251547,_0x2dd8f4){_0x2dd8f4=_0x2dd8f4||0x1f4;return function(_0x477f13){logger[_0x97ad('0x24')](_0x477f13[_0x97ad('0x25')]);if(_0x477f13[_0x97ad('0x26')]){delete _0x477f13['name'];}_0x251547[_0x97ad('0x18')](_0x2dd8f4)[_0x97ad('0x27')](_0x477f13);};}exports[_0x97ad('0x28')]=function(_0x2709bf,_0x2dd248){var _0x10bd92={},_0x54cc48={},_0x39c7ef={'count':0x0,'rows':[]};var _0x3cb81a=_['map'](db[_0x97ad('0x29')][_0x97ad('0x2a')],function(_0xd68b9c){return{'name':_0xd68b9c[_0x97ad('0x2b')],'type':_0xd68b9c['type']['key']};});_0x54cc48[_0x97ad('0x2c')]=_[_0x97ad('0x2d')](_0x3cb81a,_0x97ad('0x26'));_0x54cc48[_0x97ad('0x2e')]=_[_0x97ad('0x2f')](_0x2709bf[_0x97ad('0x2e')]);_0x54cc48[_0x97ad('0x30')]=_[_0x97ad('0x31')](_0x54cc48[_0x97ad('0x2c')],_0x54cc48[_0x97ad('0x2e')]);_0x10bd92[_0x97ad('0x32')]=_[_0x97ad('0x31')](_0x54cc48[_0x97ad('0x2c')],qs['fields'](_0x2709bf[_0x97ad('0x2e')][_0x97ad('0x33')]));_0x10bd92[_0x97ad('0x32')]=_0x10bd92[_0x97ad('0x32')][_0x97ad('0x34')]?_0x10bd92['attributes']:_0x54cc48[_0x97ad('0x2c')];if(!_0x2709bf[_0x97ad('0x2e')][_0x97ad('0x35')](_0x97ad('0x36'))){_0x10bd92['limit']=qs['limit'](_0x2709bf[_0x97ad('0x2e')][_0x97ad('0x1b')]);_0x10bd92[_0x97ad('0x1a')]=qs['offset'](_0x2709bf['query']['offset']);}_0x10bd92[_0x97ad('0x37')]=qs[_0x97ad('0x38')](_0x2709bf[_0x97ad('0x2e')][_0x97ad('0x38')]);_0x10bd92['where']=qs[_0x97ad('0x30')](_['pick'](_0x2709bf['query'],_0x54cc48[_0x97ad('0x30')]),_0x3cb81a);if(_0x2709bf[_0x97ad('0x2e')]['filter']){_0x10bd92[_0x97ad('0x39')]=_[_0x97ad('0x3a')](_0x10bd92[_0x97ad('0x39')],{'$or':_[_0x97ad('0x2d')](_0x3cb81a,function(_0x2df356){if(_0x2df356[_0x97ad('0x3b')]!=='VIRTUAL'){var _0xb5f109={};_0xb5f109[_0x2df356[_0x97ad('0x26')]]={'$like':'%'+_0x2709bf[_0x97ad('0x2e')][_0x97ad('0x3c')]+'%'};return _0xb5f109;}})});}_0x10bd92=_['merge']({},_0x10bd92,_0x2709bf[_0x97ad('0x3d')]);var _0x1a49b4={'where':_0x10bd92[_0x97ad('0x39')]};return db[_0x97ad('0x29')][_0x97ad('0x1c')](_0x1a49b4)[_0x97ad('0x22')](function(_0xe36361){_0x39c7ef[_0x97ad('0x1c')]=_0xe36361;if(_0x2709bf['query'][_0x97ad('0x3e')]){_0x10bd92[_0x97ad('0x3f')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x97ad('0x40')](_0x10bd92);})[_0x97ad('0x22')](function(_0x5d4b00){_0x39c7ef[_0x97ad('0x41')]=_0x5d4b00;return _0x39c7ef;})[_0x97ad('0x22')](respondWithFilteredResult(_0x2dd248,_0x10bd92))[_0x97ad('0x42')](handleError(_0x2dd248,null));};exports[_0x97ad('0x43')]=function(_0x195bd4,_0x4a54a7){var _0x9b5b11={'raw':![],'where':{'id':_0x195bd4[_0x97ad('0x44')]['id']}},_0x33ea00={};_0x33ea00[_0x97ad('0x2c')]=_[_0x97ad('0x2f')](db[_0x97ad('0x29')]['rawAttributes']);_0x33ea00[_0x97ad('0x2e')]=_[_0x97ad('0x2f')](_0x195bd4[_0x97ad('0x2e')]);_0x33ea00[_0x97ad('0x30')]=_['intersection'](_0x33ea00[_0x97ad('0x2c')],_0x33ea00[_0x97ad('0x2e')]);_0x9b5b11['attributes']=_[_0x97ad('0x31')](_0x33ea00[_0x97ad('0x2c')],qs['fields'](_0x195bd4[_0x97ad('0x2e')]['fields']));_0x9b5b11[_0x97ad('0x32')]=_0x9b5b11[_0x97ad('0x32')][_0x97ad('0x34')]?_0x9b5b11['attributes']:_0x33ea00[_0x97ad('0x2c')];if(_0x195bd4['query']['includeAll']){_0x9b5b11[_0x97ad('0x3f')]=[{'all':!![]}];}_0x9b5b11=_[_0x97ad('0x3a')]({},_0x9b5b11,_0x195bd4[_0x97ad('0x3d')]);return db[_0x97ad('0x29')]['find'](_0x9b5b11)[_0x97ad('0x22')](handleEntityNotFound(_0x4a54a7,null))['then'](respondWithResult(_0x4a54a7,null))[_0x97ad('0x42')](handleError(_0x4a54a7,null));};exports[_0x97ad('0x45')]=function(_0x2a9079,_0x5a7fcb){return db[_0x97ad('0x29')][_0x97ad('0x45')](_0x2a9079['body'],{})['then'](respondWithResult(_0x5a7fcb,0xc9))[_0x97ad('0x42')](handleError(_0x5a7fcb,null));};exports[_0x97ad('0x21')]=function(_0x3c44ee,_0x2004fe){if(_0x3c44ee['body']['id']){delete _0x3c44ee[_0x97ad('0x46')]['id'];}return db[_0x97ad('0x29')][_0x97ad('0x47')]({'where':{'id':_0x3c44ee[_0x97ad('0x44')]['id']}})['then'](handleEntityNotFound(_0x2004fe,null))['then'](saveUpdates(_0x3c44ee[_0x97ad('0x46')],null))[_0x97ad('0x22')](respondWithResult(_0x2004fe,null))[_0x97ad('0x42')](handleError(_0x2004fe,null));};exports[_0x97ad('0x23')]=function(_0x27bde0,_0x60ce0b){return db[_0x97ad('0x29')][_0x97ad('0x47')]({'where':{'id':_0x27bde0[_0x97ad('0x44')]['id']}})[_0x97ad('0x22')](handleEntityNotFound(_0x60ce0b,null))[_0x97ad('0x22')](removeEntity(_0x60ce0b,null))[_0x97ad('0x42')](handleError(_0x60ce0b,null));};exports['getSubjects']=function(_0x45aa76,_0xb3392d,_0x1915cd){var _0x48448c={};var _0x42842e={};var _0x1b98b6;var _0x139ef1;return db['FreshsalesConfiguration'][_0x97ad('0x48')]({'where':{'id':_0x45aa76[_0x97ad('0x44')]['id']}})['then'](handleEntityNotFound(_0xb3392d,null))['then'](function(_0x83fad9){if(_0x83fad9){_0x1b98b6=_0x83fad9;_0x42842e[_0x97ad('0x2c')]=_['keys'](db['FreshsalesField'][_0x97ad('0x2a')]);_0x42842e[_0x97ad('0x2e')]=_[_0x97ad('0x2f')](_0x45aa76[_0x97ad('0x2e')]);_0x42842e[_0x97ad('0x30')]=_[_0x97ad('0x31')](_0x42842e[_0x97ad('0x2c')],_0x42842e[_0x97ad('0x2e')]);_0x48448c[_0x97ad('0x32')]=_[_0x97ad('0x31')](_0x42842e['model'],qs[_0x97ad('0x33')](_0x45aa76['query']['fields']));_0x48448c[_0x97ad('0x32')]=_0x48448c['attributes'][_0x97ad('0x34')]?_0x48448c['attributes']:_0x42842e[_0x97ad('0x2c')];_0x48448c['order']=qs[_0x97ad('0x38')](_0x45aa76[_0x97ad('0x2e')]['sort']);_0x48448c[_0x97ad('0x39')]=qs[_0x97ad('0x30')](_['pick'](_0x45aa76[_0x97ad('0x2e')],_0x42842e[_0x97ad('0x30')]));if(_0x45aa76['query']['filter']){_0x48448c[_0x97ad('0x39')]=_[_0x97ad('0x3a')](_0x48448c['where'],{'$or':_[_0x97ad('0x2d')](_0x48448c['attributes'],function(_0x2e7004){var _0x5e0a14={};_0x5e0a14[_0x2e7004]={'$like':'%'+_0x45aa76[_0x97ad('0x2e')][_0x97ad('0x3c')]+'%'};return _0x5e0a14;})});}_0x48448c=_['merge']({},_0x48448c,_0x45aa76[_0x97ad('0x3d')]);return _0x1b98b6[_0x97ad('0x49')](_0x48448c);}})[_0x97ad('0x22')](function(_0x3115b8){if(_0x3115b8){_0x139ef1=_0x3115b8['length'];if(!_0x45aa76[_0x97ad('0x2e')]['hasOwnProperty'](_0x97ad('0x36'))){_0x48448c[_0x97ad('0x1b')]=qs[_0x97ad('0x1b')](_0x45aa76['query'][_0x97ad('0x1b')]);_0x48448c[_0x97ad('0x1a')]=qs[_0x97ad('0x1a')](_0x45aa76[_0x97ad('0x2e')][_0x97ad('0x1a')]);}return _0x1b98b6['getSubjects'](_0x48448c);}})[_0x97ad('0x22')](function(_0x308b19){if(_0x308b19){return _0x308b19?{'count':_0x139ef1,'rows':_0x308b19}:null;}})['then'](respondWithResult(_0xb3392d,null))[_0x97ad('0x42')](handleError(_0xb3392d,null));};exports[_0x97ad('0x4a')]=function(_0x441f77,_0x1032fc,_0xe6ac1f){var _0x46d317={};var _0x53e93c={};var _0x2f9f1b;var _0x1e42bc;return db[_0x97ad('0x29')]['findOne']({'where':{'id':_0x441f77[_0x97ad('0x44')]['id']}})[_0x97ad('0x22')](handleEntityNotFound(_0x1032fc,null))['then'](function(_0x4550b7){if(_0x4550b7){_0x2f9f1b=_0x4550b7;_0x53e93c[_0x97ad('0x2c')]=_[_0x97ad('0x2f')](db[_0x97ad('0x4b')][_0x97ad('0x2a')]);_0x53e93c[_0x97ad('0x2e')]=_['keys'](_0x441f77[_0x97ad('0x2e')]);_0x53e93c[_0x97ad('0x30')]=_[_0x97ad('0x31')](_0x53e93c[_0x97ad('0x2c')],_0x53e93c['query']);_0x46d317['attributes']=_[_0x97ad('0x31')](_0x53e93c[_0x97ad('0x2c')],qs[_0x97ad('0x33')](_0x441f77[_0x97ad('0x2e')]['fields']));_0x46d317[_0x97ad('0x32')]=_0x46d317[_0x97ad('0x32')][_0x97ad('0x34')]?_0x46d317[_0x97ad('0x32')]:_0x53e93c[_0x97ad('0x2c')];_0x46d317[_0x97ad('0x37')]=qs[_0x97ad('0x38')](_0x441f77[_0x97ad('0x2e')][_0x97ad('0x38')]);_0x46d317[_0x97ad('0x39')]=qs[_0x97ad('0x30')](_[_0x97ad('0x4c')](_0x441f77['query'],_0x53e93c['filters']));if(_0x441f77[_0x97ad('0x2e')][_0x97ad('0x3c')]){_0x46d317['where']=_[_0x97ad('0x3a')](_0x46d317['where'],{'$or':_[_0x97ad('0x2d')](_0x46d317[_0x97ad('0x32')],function(_0x319a55){var _0x1dba49={};_0x1dba49[_0x319a55]={'$like':'%'+_0x441f77['query'][_0x97ad('0x3c')]+'%'};return _0x1dba49;})});}_0x46d317=_[_0x97ad('0x3a')]({},_0x46d317,_0x441f77['options']);return _0x2f9f1b[_0x97ad('0x4a')](_0x46d317);}})['then'](function(_0x21ab2b){if(_0x21ab2b){_0x1e42bc=_0x21ab2b[_0x97ad('0x34')];if(!_0x441f77[_0x97ad('0x2e')][_0x97ad('0x35')]('nolimit')){_0x46d317[_0x97ad('0x1b')]=qs[_0x97ad('0x1b')](_0x441f77[_0x97ad('0x2e')]['limit']);_0x46d317['offset']=qs[_0x97ad('0x1a')](_0x441f77['query'][_0x97ad('0x1a')]);}return _0x2f9f1b[_0x97ad('0x4a')](_0x46d317);}})[_0x97ad('0x22')](function(_0xd80e74){if(_0xd80e74){return _0xd80e74?{'count':_0x1e42bc,'rows':_0xd80e74}:null;}})[_0x97ad('0x22')](respondWithResult(_0x1032fc,null))[_0x97ad('0x42')](handleError(_0x1032fc,null));};exports['getFields']=function(_0x51e38a,_0x20e317,_0x984202){var _0x12c090={};var _0x454f24={};var _0x5aa0b1;var _0x4e277b;return db[_0x97ad('0x29')][_0x97ad('0x48')]({'where':{'id':_0x51e38a[_0x97ad('0x44')]['id']}})[_0x97ad('0x22')](handleEntityNotFound(_0x20e317,null))[_0x97ad('0x22')](function(_0x260800){if(_0x260800){_0x5aa0b1=_0x260800;_0x454f24['model']=_[_0x97ad('0x2f')](db[_0x97ad('0x4b')][_0x97ad('0x2a')]);_0x454f24[_0x97ad('0x2e')]=_['keys'](_0x51e38a[_0x97ad('0x2e')]);_0x454f24[_0x97ad('0x30')]=_[_0x97ad('0x31')](_0x454f24[_0x97ad('0x2c')],_0x454f24[_0x97ad('0x2e')]);_0x12c090[_0x97ad('0x32')]=_[_0x97ad('0x31')](_0x454f24['model'],qs['fields'](_0x51e38a[_0x97ad('0x2e')][_0x97ad('0x33')]));_0x12c090[_0x97ad('0x32')]=_0x12c090[_0x97ad('0x32')][_0x97ad('0x34')]?_0x12c090[_0x97ad('0x32')]:_0x454f24[_0x97ad('0x2c')];_0x12c090[_0x97ad('0x37')]=qs[_0x97ad('0x38')](_0x51e38a['query'][_0x97ad('0x38')]);_0x12c090['where']=qs[_0x97ad('0x30')](_[_0x97ad('0x4c')](_0x51e38a['query'],_0x454f24['filters']));if(_0x51e38a[_0x97ad('0x2e')][_0x97ad('0x3c')]){_0x12c090[_0x97ad('0x39')]=_[_0x97ad('0x3a')](_0x12c090['where'],{'$or':_[_0x97ad('0x2d')](_0x12c090[_0x97ad('0x32')],function(_0x407da7){var _0x804fd2={};_0x804fd2[_0x407da7]={'$like':'%'+_0x51e38a[_0x97ad('0x2e')][_0x97ad('0x3c')]+'%'};return _0x804fd2;})});}_0x12c090=_[_0x97ad('0x3a')]({},_0x12c090,_0x51e38a['options']);return _0x5aa0b1['getFields'](_0x12c090);}})[_0x97ad('0x22')](function(_0x4a91fa){if(_0x4a91fa){_0x4e277b=_0x4a91fa[_0x97ad('0x34')];if(!_0x51e38a[_0x97ad('0x2e')][_0x97ad('0x35')]('nolimit')){_0x12c090['limit']=qs['limit'](_0x51e38a['query'][_0x97ad('0x1b')]);_0x12c090[_0x97ad('0x1a')]=qs['offset'](_0x51e38a['query'][_0x97ad('0x1a')]);}return _0x5aa0b1[_0x97ad('0x4d')](_0x12c090);}})[_0x97ad('0x22')](function(_0x5a3a55){if(_0x5a3a55){return _0x5a3a55?{'count':_0x4e277b,'rows':_0x5a3a55}:null;}})[_0x97ad('0x22')](respondWithResult(_0x20e317,null))[_0x97ad('0x42')](handleError(_0x20e317,null));};