ca30c080aa6eef04b29730ef15ac771e1c4feae0
[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 _0xdbef=['eml-format','rimraf','zip-dir','request-promise','bluebird','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','status','json','offset','limit','undefined','count','set','apply','reject','save','update','end','error','name','send','index','map','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','then','FreshsalesAccount','findAll','rows','catch','show','params','keys','rawAttributes','include','find','create','body','findOne','FreshsalesConfiguration','getConfigurations','nolimit','addConfiguration','AccountId','Subjects','channel','Descriptions','FreshsalesField','getFields','username','remoteUri','slice','substring','lastIndexOf','GET','%s%s','Token\x20token=','apiKey','email','Requested\x20Resource\x20not\x20Found','statusCode','test','Wrong\x20credentials'];(function(_0x42d109,_0x313c16){var _0x580acc=function(_0x49ca28){while(--_0x49ca28){_0x42d109['push'](_0x42d109['shift']());}};_0x580acc(++_0x313c16);}(_0xdbef,0xc2));var _0xfdbe=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0xdbef[_0x580576];return _0x3f55a0;};'use strict';var emlformat=require(_0xfdbe('0x0'));var rimraf=require(_0xfdbe('0x1'));var zipdir=require(_0xfdbe('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfdbe('0x3'));var moment=require('moment');var BPromise=require(_0xfdbe('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xfdbe('0x5'));var ejs=require(_0xfdbe('0x6'));var fs=require('fs');var fs_extra=require(_0xfdbe('0x7'));var _=require(_0xfdbe('0x8'));var squel=require(_0xfdbe('0x9'));var crypto=require('crypto');var jsforce=require(_0xfdbe('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xfdbe('0x5'));var querystring=require(_0xfdbe('0xb'));var Papa=require(_0xfdbe('0xc'));var Redis=require('ioredis');var authService=require(_0xfdbe('0xd'));var qs=require(_0xfdbe('0xe'));var as=require(_0xfdbe('0xf'));var hardwareService=require(_0xfdbe('0x10'));var logger=require(_0xfdbe('0x11'))(_0xfdbe('0x12'));var utils=require(_0xfdbe('0x13'));var config=require(_0xfdbe('0x14'));var licenseUtil=require(_0xfdbe('0x15'));var db=require('../../mysqldb')['db'];var integrations=require(_0xfdbe('0x16'));function respondWithStatusCode(_0x14df91,_0x541ca4){_0x541ca4=_0x541ca4||0xcc;return function(_0x50a395){if(_0x50a395){return _0x14df91['sendStatus'](_0x541ca4);}return _0x14df91['status'](_0x541ca4)['end']();};}function respondWithResult(_0x12795f,_0xcce9b7){_0xcce9b7=_0xcce9b7||0xc8;return function(_0xc0d3a1){if(_0xc0d3a1){return _0x12795f[_0xfdbe('0x17')](_0xcce9b7)[_0xfdbe('0x18')](_0xc0d3a1);}};}function respondWithFilteredResult(_0x525aac,_0x44ee23){return function(_0x190f05){if(_0x190f05){var _0x292d70=typeof _0x44ee23[_0xfdbe('0x19')]==='undefined'&&typeof _0x44ee23[_0xfdbe('0x1a')]===_0xfdbe('0x1b');var _0x3fe62b=_0x190f05[_0xfdbe('0x1c')];var _0x355385=_0x292d70?0x0:_0x44ee23[_0xfdbe('0x19')];var _0x1292e3=_0x292d70?_0x190f05[_0xfdbe('0x1c')]:_0x44ee23[_0xfdbe('0x19')]+_0x44ee23['limit'];var _0x28f82b;if(_0x1292e3>=_0x3fe62b){_0x1292e3=_0x3fe62b;_0x28f82b=0xc8;}else{_0x28f82b=0xce;}_0x525aac[_0xfdbe('0x17')](_0x28f82b);return _0x525aac[_0xfdbe('0x1d')]('Content-Range',_0x355385+'-'+_0x1292e3+'/'+_0x3fe62b)[_0xfdbe('0x18')](_0x190f05);}return null;};}function patchUpdates(_0x2c824d){return function(_0x9f99cb){try{jsonpatch[_0xfdbe('0x1e')](_0x9f99cb,_0x2c824d,!![]);}catch(_0x3e6510){return BPromise[_0xfdbe('0x1f')](_0x3e6510);}return _0x9f99cb[_0xfdbe('0x20')]();};}function saveUpdates(_0x2b8553,_0x3fa354){return function(_0x4da425){if(_0x4da425){return _0x4da425[_0xfdbe('0x21')](_0x2b8553)['then'](function(_0x19ed03){return _0x19ed03;});}return null;};}function removeEntity(_0x53a34a,_0x872c6e){return function(_0x1fa05b){if(_0x1fa05b){return _0x1fa05b['destroy']()['then'](function(){_0x53a34a[_0xfdbe('0x17')](0xcc)[_0xfdbe('0x22')]();});}};}function handleEntityNotFound(_0x315e47,_0x2fd6c3){return function(_0x3b6850){if(!_0x3b6850){_0x315e47['sendStatus'](0x194);}return _0x3b6850;};}function handleError(_0x422226,_0x5cd40b){_0x5cd40b=_0x5cd40b||0x1f4;return function(_0x3f906b){logger[_0xfdbe('0x23')](_0x3f906b['stack']);if(_0x3f906b[_0xfdbe('0x24')]){delete _0x3f906b[_0xfdbe('0x24')];}_0x422226[_0xfdbe('0x17')](_0x5cd40b)[_0xfdbe('0x25')](_0x3f906b);};}exports[_0xfdbe('0x26')]=function(_0x3a17eb,_0x2a9caf){var _0xd8239a={},_0x14f9c5={},_0x57288d={'count':0x0,'rows':[]};var _0x363819=_[_0xfdbe('0x27')](db['FreshsalesAccount']['rawAttributes'],function(_0x3d8ce4){return{'name':_0x3d8ce4[_0xfdbe('0x28')],'type':_0x3d8ce4[_0xfdbe('0x29')][_0xfdbe('0x2a')]};});_0x14f9c5['model']=_[_0xfdbe('0x27')](_0x363819,_0xfdbe('0x24'));_0x14f9c5[_0xfdbe('0x2b')]=_['keys'](_0x3a17eb[_0xfdbe('0x2b')]);_0x14f9c5[_0xfdbe('0x2c')]=_[_0xfdbe('0x2d')](_0x14f9c5[_0xfdbe('0x2e')],_0x14f9c5[_0xfdbe('0x2b')]);_0xd8239a[_0xfdbe('0x2f')]=_[_0xfdbe('0x2d')](_0x14f9c5['model'],qs[_0xfdbe('0x30')](_0x3a17eb[_0xfdbe('0x2b')]['fields']));_0xd8239a[_0xfdbe('0x2f')]=_0xd8239a[_0xfdbe('0x2f')][_0xfdbe('0x31')]?_0xd8239a[_0xfdbe('0x2f')]:_0x14f9c5[_0xfdbe('0x2e')];if(!_0x3a17eb[_0xfdbe('0x2b')][_0xfdbe('0x32')]('nolimit')){_0xd8239a[_0xfdbe('0x1a')]=qs[_0xfdbe('0x1a')](_0x3a17eb[_0xfdbe('0x2b')][_0xfdbe('0x1a')]);_0xd8239a['offset']=qs[_0xfdbe('0x19')](_0x3a17eb[_0xfdbe('0x2b')]['offset']);}_0xd8239a[_0xfdbe('0x33')]=qs['sort'](_0x3a17eb[_0xfdbe('0x2b')][_0xfdbe('0x34')]);_0xd8239a[_0xfdbe('0x35')]=qs['filters'](_[_0xfdbe('0x36')](_0x3a17eb['query'],_0x14f9c5[_0xfdbe('0x2c')]),_0x363819);if(_0x3a17eb[_0xfdbe('0x2b')][_0xfdbe('0x37')]){_0xd8239a[_0xfdbe('0x35')]=_[_0xfdbe('0x38')](_0xd8239a['where'],{'$or':_[_0xfdbe('0x27')](_0x363819,function(_0x4a69af){if(_0x4a69af['type']!==_0xfdbe('0x39')){var _0x3bc64b={};_0x3bc64b[_0x4a69af[_0xfdbe('0x24')]]={'$like':'%'+_0x3a17eb['query'][_0xfdbe('0x37')]+'%'};return _0x3bc64b;}})});}_0xd8239a=_[_0xfdbe('0x38')]({},_0xd8239a,_0x3a17eb[_0xfdbe('0x3a')]);var _0x9bf17e={'where':_0xd8239a[_0xfdbe('0x35')]};return db['FreshsalesAccount'][_0xfdbe('0x1c')](_0x9bf17e)[_0xfdbe('0x3b')](function(_0x39d10f){_0x57288d[_0xfdbe('0x1c')]=_0x39d10f;if(_0x3a17eb[_0xfdbe('0x2b')]['includeAll']){_0xd8239a['include']=[{'all':!![]}];}return db[_0xfdbe('0x3c')][_0xfdbe('0x3d')](_0xd8239a);})[_0xfdbe('0x3b')](function(_0x436a68){_0x57288d[_0xfdbe('0x3e')]=_0x436a68;return _0x57288d;})[_0xfdbe('0x3b')](respondWithFilteredResult(_0x2a9caf,_0xd8239a))[_0xfdbe('0x3f')](handleError(_0x2a9caf,null));};exports[_0xfdbe('0x40')]=function(_0x35b4b2,_0x8dd0ac){var _0x296f7f={'raw':![],'where':{'id':_0x35b4b2[_0xfdbe('0x41')]['id']}},_0x32cbd0={};_0x32cbd0['model']=_[_0xfdbe('0x42')](db[_0xfdbe('0x3c')][_0xfdbe('0x43')]);_0x32cbd0[_0xfdbe('0x2b')]=_['keys'](_0x35b4b2['query']);_0x32cbd0[_0xfdbe('0x2c')]=_[_0xfdbe('0x2d')](_0x32cbd0[_0xfdbe('0x2e')],_0x32cbd0['query']);_0x296f7f[_0xfdbe('0x2f')]=_['intersection'](_0x32cbd0['model'],qs[_0xfdbe('0x30')](_0x35b4b2['query']['fields']));_0x296f7f[_0xfdbe('0x2f')]=_0x296f7f[_0xfdbe('0x2f')][_0xfdbe('0x31')]?_0x296f7f[_0xfdbe('0x2f')]:_0x32cbd0[_0xfdbe('0x2e')];if(_0x35b4b2[_0xfdbe('0x2b')]['includeAll']){_0x296f7f[_0xfdbe('0x44')]=[{'all':!![]}];}_0x296f7f=_[_0xfdbe('0x38')]({},_0x296f7f,_0x35b4b2[_0xfdbe('0x3a')]);return db[_0xfdbe('0x3c')][_0xfdbe('0x45')](_0x296f7f)['then'](handleEntityNotFound(_0x8dd0ac,null))[_0xfdbe('0x3b')](respondWithResult(_0x8dd0ac,null))[_0xfdbe('0x3f')](handleError(_0x8dd0ac,null));};exports['create']=function(_0x2bb287,_0x3a15b0){return db['FreshsalesAccount'][_0xfdbe('0x46')](_0x2bb287['body'],{})[_0xfdbe('0x3b')](respondWithResult(_0x3a15b0,0xc9))[_0xfdbe('0x3f')](handleError(_0x3a15b0,null));};exports[_0xfdbe('0x21')]=function(_0x52955b,_0x49e5d8){if(_0x52955b[_0xfdbe('0x47')]['id']){delete _0x52955b['body']['id'];}return db[_0xfdbe('0x3c')][_0xfdbe('0x45')]({'where':{'id':_0x52955b[_0xfdbe('0x41')]['id']}})['then'](handleEntityNotFound(_0x49e5d8,null))[_0xfdbe('0x3b')](saveUpdates(_0x52955b[_0xfdbe('0x47')],null))[_0xfdbe('0x3b')](respondWithResult(_0x49e5d8,null))[_0xfdbe('0x3f')](handleError(_0x49e5d8,null));};exports['destroy']=function(_0x2c2263,_0x3d630e){return db[_0xfdbe('0x3c')][_0xfdbe('0x45')]({'where':{'id':_0x2c2263[_0xfdbe('0x41')]['id']}})['then'](handleEntityNotFound(_0x3d630e,null))['then'](removeEntity(_0x3d630e,null))[_0xfdbe('0x3f')](handleError(_0x3d630e,null));};exports['getConfigurations']=function(_0x338127,_0x322534,_0x2c1207){var _0x1bf28d={};var _0x4b6c17={};var _0xbf84d0;var _0x1f2645;return db[_0xfdbe('0x3c')][_0xfdbe('0x48')]({'where':{'id':_0x338127[_0xfdbe('0x41')]['id']}})[_0xfdbe('0x3b')](handleEntityNotFound(_0x322534,null))[_0xfdbe('0x3b')](function(_0x3dc56f){if(_0x3dc56f){_0xbf84d0=_0x3dc56f;_0x4b6c17['model']=_[_0xfdbe('0x42')](db[_0xfdbe('0x49')]['rawAttributes']);_0x4b6c17['query']=_[_0xfdbe('0x42')](_0x338127[_0xfdbe('0x2b')]);_0x4b6c17[_0xfdbe('0x2c')]=_[_0xfdbe('0x2d')](_0x4b6c17[_0xfdbe('0x2e')],_0x4b6c17[_0xfdbe('0x2b')]);_0x1bf28d[_0xfdbe('0x2f')]=_['intersection'](_0x4b6c17[_0xfdbe('0x2e')],qs[_0xfdbe('0x30')](_0x338127['query']['fields']));_0x1bf28d[_0xfdbe('0x2f')]=_0x1bf28d['attributes']['length']?_0x1bf28d[_0xfdbe('0x2f')]:_0x4b6c17['model'];_0x1bf28d[_0xfdbe('0x33')]=qs[_0xfdbe('0x34')](_0x338127[_0xfdbe('0x2b')][_0xfdbe('0x34')]);_0x1bf28d['where']=qs[_0xfdbe('0x2c')](_[_0xfdbe('0x36')](_0x338127[_0xfdbe('0x2b')],_0x4b6c17[_0xfdbe('0x2c')]));if(_0x338127[_0xfdbe('0x2b')][_0xfdbe('0x37')]){_0x1bf28d['where']=_[_0xfdbe('0x38')](_0x1bf28d[_0xfdbe('0x35')],{'$or':_['map'](_0x1bf28d[_0xfdbe('0x2f')],function(_0x45703b){var _0x4f4cfc={};_0x4f4cfc[_0x45703b]={'$like':'%'+_0x338127['query'][_0xfdbe('0x37')]+'%'};return _0x4f4cfc;})});}_0x1bf28d=_[_0xfdbe('0x38')]({},_0x1bf28d,_0x338127['options']);return _0xbf84d0[_0xfdbe('0x4a')](_0x1bf28d);}})['then'](function(_0x443bef){if(_0x443bef){_0x1f2645=_0x443bef[_0xfdbe('0x31')];if(!_0x338127['query']['hasOwnProperty'](_0xfdbe('0x4b'))){_0x1bf28d[_0xfdbe('0x1a')]=qs[_0xfdbe('0x1a')](_0x338127[_0xfdbe('0x2b')]['limit']);_0x1bf28d[_0xfdbe('0x19')]=qs[_0xfdbe('0x19')](_0x338127[_0xfdbe('0x2b')][_0xfdbe('0x19')]);}return _0xbf84d0[_0xfdbe('0x4a')](_0x1bf28d);}})[_0xfdbe('0x3b')](function(_0x461328){if(_0x461328){return _0x461328?{'count':_0x1f2645,'rows':_0x461328}:null;}})[_0xfdbe('0x3b')](respondWithResult(_0x322534,null))[_0xfdbe('0x3f')](handleError(_0x322534,null));};exports[_0xfdbe('0x4c')]=function(_0xe46ac0,_0x39879d,_0x226828){if(_0xe46ac0[_0xfdbe('0x47')]['id']){delete _0xe46ac0['body']['id'];}return db[_0xfdbe('0x3c')][_0xfdbe('0x48')]({'where':{'id':_0xe46ac0[_0xfdbe('0x41')]['id']}})['then'](handleEntityNotFound(_0x39879d,null))[_0xfdbe('0x3b')](function(_0x24ce10){if(_0x24ce10){_0xe46ac0['body'][_0xfdbe('0x4d')]=_0x24ce10['id'];_0xe46ac0[_0xfdbe('0x47')][_0xfdbe('0x4e')]=integrations['getSubjects'](_0xe46ac0['body'][_0xfdbe('0x4f')],_0xe46ac0[_0xfdbe('0x47')][_0xfdbe('0x29')]);_0xe46ac0[_0xfdbe('0x47')][_0xfdbe('0x50')]=integrations['getDescriptions'](_0xe46ac0[_0xfdbe('0x47')][_0xfdbe('0x4f')],_0xe46ac0[_0xfdbe('0x47')]['type']);return db[_0xfdbe('0x49')][_0xfdbe('0x46')](_0xe46ac0['body'],{'include':[{'model':db[_0xfdbe('0x51')],'as':'Subjects'},{'model':db[_0xfdbe('0x51')],'as':_0xfdbe('0x50')}]});}return null;})['then'](respondWithResult(_0x39879d,null))['catch'](handleError(_0x39879d,null));};exports[_0xfdbe('0x52')]=function(_0x56e48c,_0x31f892,_0x5ced5a){var _0x305825='';var _0x2ff256='';return db[_0xfdbe('0x3c')][_0xfdbe('0x48')]({'where':{'id':_0x56e48c['params']['id']},'attributes':['id','username','remoteUri','apiKey']})[_0xfdbe('0x3b')](handleEntityNotFound(_0x31f892,null))[_0xfdbe('0x3b')](function(_0x706216){if(_0x706216){_0x2ff256=_0x706216[_0xfdbe('0x53')];_0x305825=_0x706216[_0xfdbe('0x54')];var _0x3240c6=_0x706216[_0xfdbe('0x54')][_0xfdbe('0x55')](-0x1);if(_0x3240c6==='/'){_0x305825=_0x305825[_0xfdbe('0x56')](0x0,_0x305825[_0xfdbe('0x57')](_0x3240c6));}return rp({'method':_0xfdbe('0x58'),'uri':util['format'](_0xfdbe('0x59'),_0x305825,'/api/selector/owners'),'headers':{'Authorization':_0xfdbe('0x5a')+_0x706216[_0xfdbe('0x5b')]},'json':!![]});}})['then'](function(_0x385b31){if(_0x385b31){var _0x554015=_0x385b31['users'];var _0xe7f09e=![];var _0x5d41a4=null;for(_0x5d41a4=0x0;_0x5d41a4<_0x554015['length'];_0x5d41a4++){if(_0x554015[_0x5d41a4][_0xfdbe('0x5c')]===_0x2ff256){_0xe7f09e=!![];}}if(_0xe7f09e){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xfdbe('0x5d')});}}})['then'](respondWithResult(_0x31f892,null))[_0xfdbe('0x3f')](function(_0x2fb853){var _0x4d356a=_0x56e48c[_0xfdbe('0x2b')]['test']?0x1f4:_0x2fb853[_0xfdbe('0x5e')]||0x1f4;logger[_0xfdbe('0x23')]('getFields,\x20%s,\x20%s,\x20%s',_0xfdbe('0x52'),_0x4d356a,JSON['stringify'](_0x2fb853));delete _0x2fb853[_0xfdbe('0x24')];if(_0x4d356a===0x191){_0x4d356a=0x190;}_0x31f892[_0xfdbe('0x17')](_0x4d356a)[_0xfdbe('0x25')](_0x56e48c['query'][_0xfdbe('0x5f')]?{'message':_0xfdbe('0x60'),'statusCode':_0x2fb853[_0xfdbe('0x5e')]}:_0x2fb853);});};