9fd206554ec072fca9251a29c399f78e2da43e0d
[motion2.git] / server / api / intFreshsalesAccount / intFreshsalesAccount.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 _0x9ef0=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','undefined','count','offset','limit','set','Content-Range','apply','reject','then','destroy','sendStatus','stack','name','send','index','FreshsalesAccount','type','model','map','query','keys','filters','intersection','attributes','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','show','params','rawAttributes','fields','find','create','body','catch','update','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','FreshsalesField','username','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','/api/selector/owners','Token\x20token=','email','Requested\x20Resource\x20not\x20Found','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api'];(function(_0x394b03,_0x3cecf5){var _0x5c420d=function(_0x307d17){while(--_0x307d17){_0x394b03['push'](_0x394b03['shift']());}};_0x5c420d(++_0x3cecf5);}(_0x9ef0,0x187));var _0x09ef=function(_0x297290,_0x2cf2c8){_0x297290=_0x297290-0x0;var _0x2652a0=_0x9ef0[_0x297290];return _0x2652a0;};'use strict';var emlformat=require(_0x09ef('0x0'));var rimraf=require(_0x09ef('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x09ef('0x2'));var rp=require('request-promise');var moment=require(_0x09ef('0x3'));var BPromise=require(_0x09ef('0x4'));var Mustache=require('mustache');var util=require(_0x09ef('0x5'));var path=require(_0x09ef('0x6'));var sox=require(_0x09ef('0x7'));var csv=require(_0x09ef('0x8'));var ejs=require(_0x09ef('0x9'));var fs=require('fs');var fs_extra=require(_0x09ef('0xa'));var _=require(_0x09ef('0xb'));var squel=require(_0x09ef('0xc'));var crypto=require(_0x09ef('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x09ef('0x8'));var querystring=require(_0x09ef('0xe'));var Papa=require(_0x09ef('0xf'));var Redis=require(_0x09ef('0x10'));var authService=require(_0x09ef('0x11'));var qs=require(_0x09ef('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x09ef('0x13'));var logger=require('../../config/logger')(_0x09ef('0x14'));var utils=require(_0x09ef('0x15'));var config=require(_0x09ef('0x16'));var licenseUtil=require(_0x09ef('0x17'));var db=require(_0x09ef('0x18'))['db'];var integrations=require(_0x09ef('0x19'));function respondWithStatusCode(_0x30c216,_0xb43579){_0xb43579=_0xb43579||0xcc;return function(_0x1bee21){if(_0x1bee21){return _0x30c216['sendStatus'](_0xb43579);}return _0x30c216[_0x09ef('0x1a')](_0xb43579)['end']();};}function respondWithResult(_0x34c6fa,_0x396485){_0x396485=_0x396485||0xc8;return function(_0x31f441){if(_0x31f441){return _0x34c6fa[_0x09ef('0x1a')](_0x396485)[_0x09ef('0x1b')](_0x31f441);}};}function respondWithFilteredResult(_0x18482a,_0x121532){return function(_0x5ebc7a){if(_0x5ebc7a){var _0x4352df=typeof _0x121532['offset']===_0x09ef('0x1c')&&typeof _0x121532['limit']==='undefined';var _0x2e8857=_0x5ebc7a[_0x09ef('0x1d')];var _0x5e26ad=_0x4352df?0x0:_0x121532['offset'];var _0xec5b53=_0x4352df?_0x5ebc7a['count']:_0x121532[_0x09ef('0x1e')]+_0x121532[_0x09ef('0x1f')];var _0x528765;if(_0xec5b53>=_0x2e8857){_0xec5b53=_0x2e8857;_0x528765=0xc8;}else{_0x528765=0xce;}_0x18482a['status'](_0x528765);return _0x18482a[_0x09ef('0x20')](_0x09ef('0x21'),_0x5e26ad+'-'+_0xec5b53+'/'+_0x2e8857)[_0x09ef('0x1b')](_0x5ebc7a);}return null;};}function patchUpdates(_0x348ed0){return function(_0x8d57d7){try{jsonpatch[_0x09ef('0x22')](_0x8d57d7,_0x348ed0,!![]);}catch(_0x28dad8){return BPromise[_0x09ef('0x23')](_0x28dad8);}return _0x8d57d7['save']();};}function saveUpdates(_0x336194,_0x45df9f){return function(_0x27cad8){if(_0x27cad8){return _0x27cad8['update'](_0x336194)[_0x09ef('0x24')](function(_0xd6b26a){return _0xd6b26a;});}return null;};}function removeEntity(_0x21c610,_0x37d976){return function(_0x3f9259){if(_0x3f9259){return _0x3f9259[_0x09ef('0x25')]()[_0x09ef('0x24')](function(){_0x21c610[_0x09ef('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x29b20f,_0x3dcbad){return function(_0x13148c){if(!_0x13148c){_0x29b20f[_0x09ef('0x26')](0x194);}return _0x13148c;};}function handleError(_0x10c730,_0x231f4d){_0x231f4d=_0x231f4d||0x1f4;return function(_0x4d0a79){logger['error'](_0x4d0a79[_0x09ef('0x27')]);if(_0x4d0a79[_0x09ef('0x28')]){delete _0x4d0a79[_0x09ef('0x28')];}_0x10c730['status'](_0x231f4d)[_0x09ef('0x29')](_0x4d0a79);};}exports[_0x09ef('0x2a')]=function(_0x57d776,_0xe085a9){var _0x50338f={},_0x40159a={},_0x5c9367={'count':0x0,'rows':[]};var _0x218911=_['map'](db[_0x09ef('0x2b')]['rawAttributes'],function(_0x39446d){return{'name':_0x39446d['fieldName'],'type':_0x39446d[_0x09ef('0x2c')]['key']};});_0x40159a[_0x09ef('0x2d')]=_[_0x09ef('0x2e')](_0x218911,_0x09ef('0x28'));_0x40159a[_0x09ef('0x2f')]=_[_0x09ef('0x30')](_0x57d776[_0x09ef('0x2f')]);_0x40159a[_0x09ef('0x31')]=_[_0x09ef('0x32')](_0x40159a[_0x09ef('0x2d')],_0x40159a[_0x09ef('0x2f')]);_0x50338f['attributes']=_[_0x09ef('0x32')](_0x40159a[_0x09ef('0x2d')],qs['fields'](_0x57d776['query']['fields']));_0x50338f[_0x09ef('0x33')]=_0x50338f[_0x09ef('0x33')][_0x09ef('0x34')]?_0x50338f[_0x09ef('0x33')]:_0x40159a[_0x09ef('0x2d')];if(!_0x57d776['query'][_0x09ef('0x35')]('nolimit')){_0x50338f[_0x09ef('0x1f')]=qs[_0x09ef('0x1f')](_0x57d776[_0x09ef('0x2f')][_0x09ef('0x1f')]);_0x50338f[_0x09ef('0x1e')]=qs[_0x09ef('0x1e')](_0x57d776[_0x09ef('0x2f')][_0x09ef('0x1e')]);}_0x50338f[_0x09ef('0x36')]=qs[_0x09ef('0x37')](_0x57d776[_0x09ef('0x2f')][_0x09ef('0x37')]);_0x50338f[_0x09ef('0x38')]=qs[_0x09ef('0x31')](_[_0x09ef('0x39')](_0x57d776[_0x09ef('0x2f')],_0x40159a['filters']),_0x218911);if(_0x57d776[_0x09ef('0x2f')][_0x09ef('0x3a')]){_0x50338f[_0x09ef('0x38')]=_['merge'](_0x50338f[_0x09ef('0x38')],{'$or':_[_0x09ef('0x2e')](_0x218911,function(_0xc23de2){if(_0xc23de2[_0x09ef('0x2c')]!==_0x09ef('0x3b')){var _0x345d46={};_0x345d46[_0xc23de2['name']]={'$like':'%'+_0x57d776[_0x09ef('0x2f')][_0x09ef('0x3a')]+'%'};return _0x345d46;}})});}_0x50338f=_[_0x09ef('0x3c')]({},_0x50338f,_0x57d776[_0x09ef('0x3d')]);var _0x44458a={'where':_0x50338f['where']};return db[_0x09ef('0x2b')][_0x09ef('0x1d')](_0x44458a)[_0x09ef('0x24')](function(_0x5236fc){_0x5c9367['count']=_0x5236fc;if(_0x57d776[_0x09ef('0x2f')][_0x09ef('0x3e')]){_0x50338f[_0x09ef('0x3f')]=[{'all':!![]}];}return db[_0x09ef('0x2b')]['findAll'](_0x50338f);})[_0x09ef('0x24')](function(_0x295051){_0x5c9367[_0x09ef('0x40')]=_0x295051;return _0x5c9367;})['then'](respondWithFilteredResult(_0xe085a9,_0x50338f))['catch'](handleError(_0xe085a9,null));};exports[_0x09ef('0x41')]=function(_0x1f6339,_0x1d8311){var _0x57413e={'raw':![],'where':{'id':_0x1f6339[_0x09ef('0x42')]['id']}},_0x3ac263={};_0x3ac263[_0x09ef('0x2d')]=_[_0x09ef('0x30')](db[_0x09ef('0x2b')][_0x09ef('0x43')]);_0x3ac263[_0x09ef('0x2f')]=_[_0x09ef('0x30')](_0x1f6339[_0x09ef('0x2f')]);_0x3ac263['filters']=_[_0x09ef('0x32')](_0x3ac263[_0x09ef('0x2d')],_0x3ac263[_0x09ef('0x2f')]);_0x57413e['attributes']=_[_0x09ef('0x32')](_0x3ac263[_0x09ef('0x2d')],qs[_0x09ef('0x44')](_0x1f6339['query'][_0x09ef('0x44')]));_0x57413e[_0x09ef('0x33')]=_0x57413e[_0x09ef('0x33')][_0x09ef('0x34')]?_0x57413e[_0x09ef('0x33')]:_0x3ac263[_0x09ef('0x2d')];if(_0x1f6339[_0x09ef('0x2f')][_0x09ef('0x3e')]){_0x57413e[_0x09ef('0x3f')]=[{'all':!![]}];}_0x57413e=_[_0x09ef('0x3c')]({},_0x57413e,_0x1f6339[_0x09ef('0x3d')]);return db[_0x09ef('0x2b')][_0x09ef('0x45')](_0x57413e)[_0x09ef('0x24')](handleEntityNotFound(_0x1d8311,null))[_0x09ef('0x24')](respondWithResult(_0x1d8311,null))['catch'](handleError(_0x1d8311,null));};exports[_0x09ef('0x46')]=function(_0x53179b,_0x24d130){return db[_0x09ef('0x2b')][_0x09ef('0x46')](_0x53179b[_0x09ef('0x47')],{})[_0x09ef('0x24')](respondWithResult(_0x24d130,0xc9))[_0x09ef('0x48')](handleError(_0x24d130,null));};exports[_0x09ef('0x49')]=function(_0x4e02b7,_0x286500){if(_0x4e02b7['body']['id']){delete _0x4e02b7[_0x09ef('0x47')]['id'];}return db[_0x09ef('0x2b')][_0x09ef('0x45')]({'where':{'id':_0x4e02b7['params']['id']}})[_0x09ef('0x24')](handleEntityNotFound(_0x286500,null))[_0x09ef('0x24')](saveUpdates(_0x4e02b7[_0x09ef('0x47')],null))[_0x09ef('0x24')](respondWithResult(_0x286500,null))['catch'](handleError(_0x286500,null));};exports[_0x09ef('0x25')]=function(_0x1913bf,_0x5da106){return db[_0x09ef('0x2b')][_0x09ef('0x45')]({'where':{'id':_0x1913bf['params']['id']}})['then'](handleEntityNotFound(_0x5da106,null))[_0x09ef('0x24')](removeEntity(_0x5da106,null))[_0x09ef('0x48')](handleError(_0x5da106,null));};exports[_0x09ef('0x4a')]=function(_0x3f76fb,_0x5f1932,_0x4f5f62){var _0x3c6b38={};var _0x53a439={};var _0x13394d;var _0x146841;return db[_0x09ef('0x2b')][_0x09ef('0x4b')]({'where':{'id':_0x3f76fb[_0x09ef('0x42')]['id']}})[_0x09ef('0x24')](handleEntityNotFound(_0x5f1932,null))[_0x09ef('0x24')](function(_0x401a64){if(_0x401a64){_0x13394d=_0x401a64;_0x53a439['model']=_[_0x09ef('0x30')](db[_0x09ef('0x4c')][_0x09ef('0x43')]);_0x53a439['query']=_[_0x09ef('0x30')](_0x3f76fb[_0x09ef('0x2f')]);_0x53a439[_0x09ef('0x31')]=_['intersection'](_0x53a439[_0x09ef('0x2d')],_0x53a439['query']);_0x3c6b38[_0x09ef('0x33')]=_[_0x09ef('0x32')](_0x53a439[_0x09ef('0x2d')],qs[_0x09ef('0x44')](_0x3f76fb['query'][_0x09ef('0x44')]));_0x3c6b38[_0x09ef('0x33')]=_0x3c6b38['attributes'][_0x09ef('0x34')]?_0x3c6b38[_0x09ef('0x33')]:_0x53a439[_0x09ef('0x2d')];_0x3c6b38['order']=qs['sort'](_0x3f76fb[_0x09ef('0x2f')]['sort']);_0x3c6b38[_0x09ef('0x38')]=qs[_0x09ef('0x31')](_[_0x09ef('0x39')](_0x3f76fb['query'],_0x53a439['filters']));if(_0x3f76fb[_0x09ef('0x2f')][_0x09ef('0x3a')]){_0x3c6b38[_0x09ef('0x38')]=_[_0x09ef('0x3c')](_0x3c6b38['where'],{'$or':_[_0x09ef('0x2e')](_0x3c6b38['attributes'],function(_0x3ad62a){var _0xf04b3f={};_0xf04b3f[_0x3ad62a]={'$like':'%'+_0x3f76fb['query'][_0x09ef('0x3a')]+'%'};return _0xf04b3f;})});}_0x3c6b38=_[_0x09ef('0x3c')]({},_0x3c6b38,_0x3f76fb[_0x09ef('0x3d')]);return _0x13394d[_0x09ef('0x4a')](_0x3c6b38);}})['then'](function(_0x289f3f){if(_0x289f3f){_0x146841=_0x289f3f[_0x09ef('0x34')];if(!_0x3f76fb[_0x09ef('0x2f')]['hasOwnProperty']('nolimit')){_0x3c6b38[_0x09ef('0x1f')]=qs[_0x09ef('0x1f')](_0x3f76fb['query'][_0x09ef('0x1f')]);_0x3c6b38[_0x09ef('0x1e')]=qs[_0x09ef('0x1e')](_0x3f76fb[_0x09ef('0x2f')][_0x09ef('0x1e')]);}return _0x13394d[_0x09ef('0x4a')](_0x3c6b38);}})[_0x09ef('0x24')](function(_0x40b710){if(_0x40b710){return _0x40b710?{'count':_0x146841,'rows':_0x40b710}:null;}})[_0x09ef('0x24')](respondWithResult(_0x5f1932,null))[_0x09ef('0x48')](handleError(_0x5f1932,null));};exports[_0x09ef('0x4d')]=function(_0x105e24,_0x3068d0,_0x2ec984){if(_0x105e24[_0x09ef('0x47')]['id']){delete _0x105e24[_0x09ef('0x47')]['id'];}return db[_0x09ef('0x2b')]['findOne']({'where':{'id':_0x105e24[_0x09ef('0x42')]['id']}})['then'](handleEntityNotFound(_0x3068d0,null))[_0x09ef('0x24')](function(_0x17ee3d){if(_0x17ee3d){_0x105e24[_0x09ef('0x47')][_0x09ef('0x4e')]=_0x17ee3d['id'];_0x105e24[_0x09ef('0x47')][_0x09ef('0x4f')]=integrations[_0x09ef('0x50')](_0x105e24[_0x09ef('0x47')][_0x09ef('0x51')],_0x105e24[_0x09ef('0x47')][_0x09ef('0x2c')]);_0x105e24[_0x09ef('0x47')][_0x09ef('0x52')]=integrations['getDescriptions'](_0x105e24[_0x09ef('0x47')][_0x09ef('0x51')],_0x105e24['body'][_0x09ef('0x2c')]);return db[_0x09ef('0x4c')][_0x09ef('0x46')](_0x105e24[_0x09ef('0x47')],{'include':[{'model':db[_0x09ef('0x53')],'as':_0x09ef('0x4f')},{'model':db[_0x09ef('0x53')],'as':_0x09ef('0x52')}]});}return null;})['then'](respondWithResult(_0x3068d0,null))[_0x09ef('0x48')](handleError(_0x3068d0,null));};exports['getFields']=function(_0xbf699e,_0x500572,_0x356764){var _0x2a2f27='';var _0x572feb='';return db[_0x09ef('0x2b')][_0x09ef('0x4b')]({'where':{'id':_0xbf699e[_0x09ef('0x42')]['id']},'attributes':['id',_0x09ef('0x54'),_0x09ef('0x55'),_0x09ef('0x56')]})['then'](handleEntityNotFound(_0x500572,null))[_0x09ef('0x24')](function(_0x2d6c5b){if(_0x2d6c5b){_0x572feb=_0x2d6c5b[_0x09ef('0x54')];_0x2a2f27=_0x2d6c5b[_0x09ef('0x55')];var _0x2e3480=_0x2d6c5b[_0x09ef('0x55')][_0x09ef('0x57')](-0x1);if(_0x2e3480==='/'){_0x2a2f27=_0x2a2f27[_0x09ef('0x58')](0x0,_0x2a2f27[_0x09ef('0x59')](_0x2e3480));}return rp({'method':_0x09ef('0x5a'),'uri':util[_0x09ef('0x5b')]('%s%s',_0x2a2f27,_0x09ef('0x5c')),'headers':{'Authorization':_0x09ef('0x5d')+_0x2d6c5b[_0x09ef('0x56')]},'json':!![]});}})[_0x09ef('0x24')](function(_0x22c405){if(_0x22c405){var _0x56d4e2=_0x22c405['users'];var _0x4018c8=![];var _0x5d6f85=null;for(_0x5d6f85=0x0;_0x5d6f85<_0x56d4e2[_0x09ef('0x34')];_0x5d6f85++){if(_0x56d4e2[_0x5d6f85][_0x09ef('0x5e')]===_0x572feb){_0x4018c8=!![];}}if(_0x4018c8){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x09ef('0x5f')});}}})[_0x09ef('0x24')](respondWithResult(_0x500572,null))[_0x09ef('0x48')](function(_0x536de6){var _0x2c0fb3=_0xbf699e[_0x09ef('0x2f')][_0x09ef('0x60')]?0x1f4:_0x536de6[_0x09ef('0x61')]||0x1f4;logger[_0x09ef('0x62')](_0x09ef('0x63'),_0x09ef('0x64'),_0x2c0fb3,JSON[_0x09ef('0x65')](_0x536de6));delete _0x536de6[_0x09ef('0x28')];if(_0x2c0fb3===0x191){_0x2c0fb3=0x190;}_0x500572[_0x09ef('0x1a')](_0x2c0fb3)[_0x09ef('0x29')](_0xbf699e[_0x09ef('0x2f')][_0x09ef('0x60')]?{'message':_0x09ef('0x66'),'statusCode':_0x536de6[_0x09ef('0x61')]}:_0x536de6);});};