Built motion from commit c116dc8b.|2.6.30
[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 _0x4723=['status','offset','undefined','limit','count','set','Content-Range','json','save','update','then','destroy','sendStatus','error','send','index','map','FreshsalesAccount','fieldName','type','key','name','query','keys','filters','model','attributes','intersection','fields','hasOwnProperty','nolimit','sort','filter','where','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','length','find','create','body','getConfigurations','findOne','order','pick','addConfiguration','Subjects','channel','Descriptions','getDescriptions','FreshsalesConfiguration','FreshsalesField','username','remoteUri','slice','substring','lastIndexOf','GET','format','/api/selector/owners','apiKey','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration'];(function(_0x24ecaf,_0x39da9a){var _0x2fda50=function(_0x48e994){while(--_0x48e994){_0x24ecaf['push'](_0x24ecaf['shift']());}};_0x2fda50(++_0x39da9a);}(_0x4723,0x172));var _0x3472=function(_0x107f31,_0x1bcd53){_0x107f31=_0x107f31-0x0;var _0x10560c=_0x4723[_0x107f31];return _0x10560c;};'use strict';var emlformat=require(_0x3472('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3472('0x1'));var jsonpatch=require(_0x3472('0x2'));var rp=require(_0x3472('0x3'));var moment=require(_0x3472('0x4'));var BPromise=require(_0x3472('0x5'));var Mustache=require(_0x3472('0x6'));var util=require('util');var path=require(_0x3472('0x7'));var sox=require('sox');var csv=require(_0x3472('0x8'));var ejs=require(_0x3472('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3472('0xa'));var squel=require('squel');var crypto=require(_0x3472('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x3472('0xc'));var toCsv=require(_0x3472('0x8'));var querystring=require('querystring');var Papa=require(_0x3472('0xd'));var Redis=require(_0x3472('0xe'));var authService=require(_0x3472('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x3472('0x10'))(_0x3472('0x11'));var utils=require(_0x3472('0x12'));var config=require(_0x3472('0x13'));var licenseUtil=require(_0x3472('0x14'));var db=require('../../mysqldb')['db'];var integrations=require(_0x3472('0x15'));function respondWithStatusCode(_0x438f54,_0x526edd){_0x526edd=_0x526edd||0xcc;return function(_0x57c7d2){if(_0x57c7d2){return _0x438f54['sendStatus'](_0x526edd);}return _0x438f54[_0x3472('0x16')](_0x526edd)['end']();};}function respondWithResult(_0xd369af,_0x4c8cee){_0x4c8cee=_0x4c8cee||0xc8;return function(_0x5c9409){if(_0x5c9409){return _0xd369af[_0x3472('0x16')](_0x4c8cee)['json'](_0x5c9409);}};}function respondWithFilteredResult(_0x4c6c74,_0x21a022){return function(_0xc966df){if(_0xc966df){var _0x52f9b8=typeof _0x21a022[_0x3472('0x17')]===_0x3472('0x18')&&typeof _0x21a022[_0x3472('0x19')]===_0x3472('0x18');var _0x1a6aa2=_0xc966df['count'];var _0xf1035f=_0x52f9b8?0x0:_0x21a022[_0x3472('0x17')];var _0x1ed20f=_0x52f9b8?_0xc966df[_0x3472('0x1a')]:_0x21a022[_0x3472('0x17')]+_0x21a022[_0x3472('0x19')];var _0x3d56e0;if(_0x1ed20f>=_0x1a6aa2){_0x1ed20f=_0x1a6aa2;_0x3d56e0=0xc8;}else{_0x3d56e0=0xce;}_0x4c6c74[_0x3472('0x16')](_0x3d56e0);return _0x4c6c74[_0x3472('0x1b')](_0x3472('0x1c'),_0xf1035f+'-'+_0x1ed20f+'/'+_0x1a6aa2)[_0x3472('0x1d')](_0xc966df);}return null;};}function patchUpdates(_0x509f2e){return function(_0x40bd4c){try{jsonpatch['apply'](_0x40bd4c,_0x509f2e,!![]);}catch(_0x2ac436){return BPromise['reject'](_0x2ac436);}return _0x40bd4c[_0x3472('0x1e')]();};}function saveUpdates(_0x4d8f4a,_0x1e2656){return function(_0x555d59){if(_0x555d59){return _0x555d59[_0x3472('0x1f')](_0x4d8f4a)[_0x3472('0x20')](function(_0x4a6ea2){return _0x4a6ea2;});}return null;};}function removeEntity(_0x4c9171,_0x565ac0){return function(_0x48dd4d){if(_0x48dd4d){return _0x48dd4d[_0x3472('0x21')]()['then'](function(){_0x4c9171['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4458dd,_0x2456d6){return function(_0x40d925){if(!_0x40d925){_0x4458dd[_0x3472('0x22')](0x194);}return _0x40d925;};}function handleError(_0x5c0ae2,_0x2f953d){_0x2f953d=_0x2f953d||0x1f4;return function(_0x411ee8){logger[_0x3472('0x23')](_0x411ee8['stack']);if(_0x411ee8['name']){delete _0x411ee8['name'];}_0x5c0ae2[_0x3472('0x16')](_0x2f953d)[_0x3472('0x24')](_0x411ee8);};}exports[_0x3472('0x25')]=function(_0x2dc789,_0x23f140){var _0x4f35fa={},_0xce3609={},_0x27b5e9={'count':0x0,'rows':[]};var _0x1d20a4=_[_0x3472('0x26')](db[_0x3472('0x27')]['rawAttributes'],function(_0x2f6dc4){return{'name':_0x2f6dc4[_0x3472('0x28')],'type':_0x2f6dc4[_0x3472('0x29')][_0x3472('0x2a')]};});_0xce3609['model']=_['map'](_0x1d20a4,_0x3472('0x2b'));_0xce3609[_0x3472('0x2c')]=_[_0x3472('0x2d')](_0x2dc789[_0x3472('0x2c')]);_0xce3609[_0x3472('0x2e')]=_['intersection'](_0xce3609[_0x3472('0x2f')],_0xce3609[_0x3472('0x2c')]);_0x4f35fa[_0x3472('0x30')]=_[_0x3472('0x31')](_0xce3609[_0x3472('0x2f')],qs[_0x3472('0x32')](_0x2dc789[_0x3472('0x2c')][_0x3472('0x32')]));_0x4f35fa[_0x3472('0x30')]=_0x4f35fa['attributes']['length']?_0x4f35fa[_0x3472('0x30')]:_0xce3609[_0x3472('0x2f')];if(!_0x2dc789[_0x3472('0x2c')][_0x3472('0x33')](_0x3472('0x34'))){_0x4f35fa[_0x3472('0x19')]=qs['limit'](_0x2dc789[_0x3472('0x2c')]['limit']);_0x4f35fa[_0x3472('0x17')]=qs[_0x3472('0x17')](_0x2dc789[_0x3472('0x2c')][_0x3472('0x17')]);}_0x4f35fa['order']=qs[_0x3472('0x35')](_0x2dc789[_0x3472('0x2c')][_0x3472('0x35')]);_0x4f35fa['where']=qs[_0x3472('0x2e')](_['pick'](_0x2dc789[_0x3472('0x2c')],_0xce3609[_0x3472('0x2e')]),_0x1d20a4);if(_0x2dc789[_0x3472('0x2c')][_0x3472('0x36')]){_0x4f35fa[_0x3472('0x37')]=_[_0x3472('0x38')](_0x4f35fa[_0x3472('0x37')],{'$or':_[_0x3472('0x26')](_0x1d20a4,function(_0x1991c9){if(_0x1991c9[_0x3472('0x29')]!==_0x3472('0x39')){var _0x485639={};_0x485639[_0x1991c9[_0x3472('0x2b')]]={'$like':'%'+_0x2dc789[_0x3472('0x2c')][_0x3472('0x36')]+'%'};return _0x485639;}})});}_0x4f35fa=_['merge']({},_0x4f35fa,_0x2dc789[_0x3472('0x3a')]);var _0x4d07dc={'where':_0x4f35fa['where']};return db[_0x3472('0x27')][_0x3472('0x1a')](_0x4d07dc)[_0x3472('0x20')](function(_0x1c4599){_0x27b5e9['count']=_0x1c4599;if(_0x2dc789[_0x3472('0x2c')][_0x3472('0x3b')]){_0x4f35fa[_0x3472('0x3c')]=[{'all':!![]}];}return db[_0x3472('0x27')]['findAll'](_0x4f35fa);})['then'](function(_0x553432){_0x27b5e9[_0x3472('0x3d')]=_0x553432;return _0x27b5e9;})[_0x3472('0x20')](respondWithFilteredResult(_0x23f140,_0x4f35fa))[_0x3472('0x3e')](handleError(_0x23f140,null));};exports[_0x3472('0x3f')]=function(_0x3ec7dc,_0x31cda0){var _0x230d06={'raw':![],'where':{'id':_0x3ec7dc[_0x3472('0x40')]['id']}},_0x1857f9={};_0x1857f9['model']=_[_0x3472('0x2d')](db[_0x3472('0x27')][_0x3472('0x41')]);_0x1857f9[_0x3472('0x2c')]=_[_0x3472('0x2d')](_0x3ec7dc[_0x3472('0x2c')]);_0x1857f9[_0x3472('0x2e')]=_[_0x3472('0x31')](_0x1857f9[_0x3472('0x2f')],_0x1857f9['query']);_0x230d06[_0x3472('0x30')]=_['intersection'](_0x1857f9[_0x3472('0x2f')],qs[_0x3472('0x32')](_0x3ec7dc['query'][_0x3472('0x32')]));_0x230d06[_0x3472('0x30')]=_0x230d06[_0x3472('0x30')][_0x3472('0x42')]?_0x230d06[_0x3472('0x30')]:_0x1857f9['model'];if(_0x3ec7dc[_0x3472('0x2c')][_0x3472('0x3b')]){_0x230d06[_0x3472('0x3c')]=[{'all':!![]}];}_0x230d06=_['merge']({},_0x230d06,_0x3ec7dc[_0x3472('0x3a')]);return db[_0x3472('0x27')][_0x3472('0x43')](_0x230d06)['then'](handleEntityNotFound(_0x31cda0,null))[_0x3472('0x20')](respondWithResult(_0x31cda0,null))[_0x3472('0x3e')](handleError(_0x31cda0,null));};exports[_0x3472('0x44')]=function(_0x43b24e,_0x40cd6c){return db['FreshsalesAccount'][_0x3472('0x44')](_0x43b24e[_0x3472('0x45')],{})['then'](respondWithResult(_0x40cd6c,0xc9))['catch'](handleError(_0x40cd6c,null));};exports[_0x3472('0x1f')]=function(_0x5494db,_0x71a2da){if(_0x5494db[_0x3472('0x45')]['id']){delete _0x5494db[_0x3472('0x45')]['id'];}return db['FreshsalesAccount'][_0x3472('0x43')]({'where':{'id':_0x5494db[_0x3472('0x40')]['id']}})[_0x3472('0x20')](handleEntityNotFound(_0x71a2da,null))['then'](saveUpdates(_0x5494db[_0x3472('0x45')],null))[_0x3472('0x20')](respondWithResult(_0x71a2da,null))[_0x3472('0x3e')](handleError(_0x71a2da,null));};exports['destroy']=function(_0x243350,_0x9b8476){return db[_0x3472('0x27')][_0x3472('0x43')]({'where':{'id':_0x243350[_0x3472('0x40')]['id']}})['then'](handleEntityNotFound(_0x9b8476,null))[_0x3472('0x20')](removeEntity(_0x9b8476,null))[_0x3472('0x3e')](handleError(_0x9b8476,null));};exports[_0x3472('0x46')]=function(_0x2e5cd0,_0x7a8172,_0x2aa8f2){var _0x18a323={};var _0x44baf9={};var _0x419d83;var _0x421319;return db[_0x3472('0x27')][_0x3472('0x47')]({'where':{'id':_0x2e5cd0[_0x3472('0x40')]['id']}})[_0x3472('0x20')](handleEntityNotFound(_0x7a8172,null))[_0x3472('0x20')](function(_0x2f4100){if(_0x2f4100){_0x419d83=_0x2f4100;_0x44baf9[_0x3472('0x2f')]=_['keys'](db['FreshsalesConfiguration'][_0x3472('0x41')]);_0x44baf9[_0x3472('0x2c')]=_['keys'](_0x2e5cd0[_0x3472('0x2c')]);_0x44baf9[_0x3472('0x2e')]=_['intersection'](_0x44baf9[_0x3472('0x2f')],_0x44baf9[_0x3472('0x2c')]);_0x18a323[_0x3472('0x30')]=_['intersection'](_0x44baf9[_0x3472('0x2f')],qs[_0x3472('0x32')](_0x2e5cd0[_0x3472('0x2c')][_0x3472('0x32')]));_0x18a323[_0x3472('0x30')]=_0x18a323[_0x3472('0x30')][_0x3472('0x42')]?_0x18a323[_0x3472('0x30')]:_0x44baf9[_0x3472('0x2f')];_0x18a323[_0x3472('0x48')]=qs[_0x3472('0x35')](_0x2e5cd0[_0x3472('0x2c')][_0x3472('0x35')]);_0x18a323['where']=qs[_0x3472('0x2e')](_[_0x3472('0x49')](_0x2e5cd0[_0x3472('0x2c')],_0x44baf9['filters']));if(_0x2e5cd0['query'][_0x3472('0x36')]){_0x18a323[_0x3472('0x37')]=_[_0x3472('0x38')](_0x18a323[_0x3472('0x37')],{'$or':_[_0x3472('0x26')](_0x18a323[_0x3472('0x30')],function(_0x2a6134){var _0x39fe8b={};_0x39fe8b[_0x2a6134]={'$like':'%'+_0x2e5cd0[_0x3472('0x2c')][_0x3472('0x36')]+'%'};return _0x39fe8b;})});}_0x18a323=_[_0x3472('0x38')]({},_0x18a323,_0x2e5cd0[_0x3472('0x3a')]);return _0x419d83['getConfigurations'](_0x18a323);}})[_0x3472('0x20')](function(_0x4e0c69){if(_0x4e0c69){_0x421319=_0x4e0c69[_0x3472('0x42')];if(!_0x2e5cd0[_0x3472('0x2c')]['hasOwnProperty'](_0x3472('0x34'))){_0x18a323['limit']=qs[_0x3472('0x19')](_0x2e5cd0[_0x3472('0x2c')][_0x3472('0x19')]);_0x18a323[_0x3472('0x17')]=qs[_0x3472('0x17')](_0x2e5cd0['query']['offset']);}return _0x419d83[_0x3472('0x46')](_0x18a323);}})['then'](function(_0xae6d28){if(_0xae6d28){return _0xae6d28?{'count':_0x421319,'rows':_0xae6d28}:null;}})[_0x3472('0x20')](respondWithResult(_0x7a8172,null))[_0x3472('0x3e')](handleError(_0x7a8172,null));};exports[_0x3472('0x4a')]=function(_0x2d815e,_0x56240e,_0xa804f3){if(_0x2d815e['body']['id']){delete _0x2d815e['body']['id'];}return db[_0x3472('0x27')][_0x3472('0x47')]({'where':{'id':_0x2d815e['params']['id']}})[_0x3472('0x20')](handleEntityNotFound(_0x56240e,null))[_0x3472('0x20')](function(_0x4d6d20){if(_0x4d6d20){_0x2d815e[_0x3472('0x45')]['AccountId']=_0x4d6d20['id'];_0x2d815e[_0x3472('0x45')][_0x3472('0x4b')]=integrations['getSubjects'](_0x2d815e[_0x3472('0x45')][_0x3472('0x4c')],_0x2d815e[_0x3472('0x45')][_0x3472('0x29')]);_0x2d815e['body'][_0x3472('0x4d')]=integrations[_0x3472('0x4e')](_0x2d815e[_0x3472('0x45')][_0x3472('0x4c')],_0x2d815e[_0x3472('0x45')]['type']);return db[_0x3472('0x4f')]['create'](_0x2d815e[_0x3472('0x45')],{'include':[{'model':db[_0x3472('0x50')],'as':_0x3472('0x4b')},{'model':db[_0x3472('0x50')],'as':'Descriptions'}]});}return null;})[_0x3472('0x20')](respondWithResult(_0x56240e,null))[_0x3472('0x3e')](handleError(_0x56240e,null));};exports['getFields']=function(_0x35360a,_0x865fe5,_0xeb97ae){var _0x19c59d='';var _0x283ab2='';return db[_0x3472('0x27')][_0x3472('0x47')]({'where':{'id':_0x35360a['params']['id']},'attributes':['id',_0x3472('0x51'),'remoteUri','apiKey']})[_0x3472('0x20')](handleEntityNotFound(_0x865fe5,null))[_0x3472('0x20')](function(_0x21d387){if(_0x21d387){_0x283ab2=_0x21d387[_0x3472('0x51')];_0x19c59d=_0x21d387[_0x3472('0x52')];var _0x5557e6=_0x21d387['remoteUri'][_0x3472('0x53')](-0x1);if(_0x5557e6==='/'){_0x19c59d=_0x19c59d[_0x3472('0x54')](0x0,_0x19c59d[_0x3472('0x55')](_0x5557e6));}return rp({'method':_0x3472('0x56'),'uri':util[_0x3472('0x57')]('%s%s',_0x19c59d,_0x3472('0x58')),'headers':{'Authorization':'Token\x20token='+_0x21d387[_0x3472('0x59')]},'json':!![]});}})[_0x3472('0x20')](function(_0x41730a){if(_0x41730a){var _0x5ab6b3=_0x41730a[_0x3472('0x5a')];var _0x544a02=![];var _0xd8b34=null;for(_0xd8b34=0x0;_0xd8b34<_0x5ab6b3['length'];_0xd8b34++){if(_0x5ab6b3[_0xd8b34]['email']===_0x283ab2){_0x544a02=!![];}}if(_0x544a02){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x3472('0x5b')});}}})[_0x3472('0x20')](respondWithResult(_0x865fe5,null))['catch'](function(_0x173672){var _0x268a08=_0x35360a[_0x3472('0x2c')][_0x3472('0x5c')]?0x1f4:_0x173672[_0x3472('0x5d')]||0x1f4;logger[_0x3472('0x23')](_0x3472('0x5e'),_0x3472('0x5f'),_0x268a08,JSON[_0x3472('0x60')](_0x173672));delete _0x173672[_0x3472('0x2b')];if(_0x268a08===0x191){_0x268a08=0x190;}_0x865fe5[_0x3472('0x16')](_0x268a08)[_0x3472('0x24')](_0x35360a[_0x3472('0x2c')][_0x3472('0x5c')]?{'message':_0x3472('0x61'),'statusCode':_0x173672['statusCode']}:_0x173672);});};