Built motion from commit 14588770.|2.5.38
[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 _0x0043=['path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','offset','undefined','count','limit','set','json','save','update','destroy','then','end','name','map','FreshsalesAccount','rawAttributes','fieldName','key','model','keys','filters','intersection','attributes','fields','length','query','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','findOne','FreshsalesConfiguration','nolimit','addConfiguration','AccountId','Subjects','type','channel','remoteUri','apiKey','username','slice','substring','format','%s%s','/api/selector/owners','Token\x20token=','Requested\x20Resource\x20not\x20Found','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','send','test','Wrong\x20credentials','statusCode','eml-format','zip-dir','request-promise','moment','bluebird','util'];(function(_0x4526f2,_0x5869e2){var _0x58d2df=function(_0x16659f){while(--_0x16659f){_0x4526f2['push'](_0x4526f2['shift']());}};_0x58d2df(++_0x5869e2);}(_0x0043,0xb8));var _0x3004=function(_0x374ada,_0x27b3a5){_0x374ada=_0x374ada-0x0;var _0x449ed8=_0x0043[_0x374ada];return _0x449ed8;};'use strict';var emlformat=require(_0x3004('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3004('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3004('0x2'));var moment=require(_0x3004('0x3'));var BPromise=require(_0x3004('0x4'));var Mustache=require('mustache');var util=require(_0x3004('0x5'));var path=require(_0x3004('0x6'));var sox=require(_0x3004('0x7'));var csv=require(_0x3004('0x8'));var ejs=require(_0x3004('0x9'));var fs=require('fs');var fs_extra=require(_0x3004('0xa'));var _=require(_0x3004('0xb'));var squel=require(_0x3004('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3004('0xd'));var toCsv=require(_0x3004('0x8'));var querystring=require(_0x3004('0xe'));var Papa=require(_0x3004('0xf'));var Redis=require(_0x3004('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x3004('0x11'));var hardwareService=require(_0x3004('0x12'));var logger=require('../../config/logger')(_0x3004('0x13'));var utils=require(_0x3004('0x14'));var config=require(_0x3004('0x15'));var licenseUtil=require(_0x3004('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x3004('0x17'));function respondWithStatusCode(_0x125aa6,_0x5c09a6){_0x5c09a6=_0x5c09a6||0xcc;return function(_0x1c3df6){if(_0x1c3df6){return _0x125aa6[_0x3004('0x18')](_0x5c09a6);}return _0x125aa6[_0x3004('0x19')](_0x5c09a6)['end']();};}function respondWithResult(_0x4e7ae3,_0x5a82f0){_0x5a82f0=_0x5a82f0||0xc8;return function(_0x5e36d7){if(_0x5e36d7){return _0x4e7ae3[_0x3004('0x19')](_0x5a82f0)['json'](_0x5e36d7);}};}function respondWithFilteredResult(_0x45329a,_0x44f30a){return function(_0x5e068c){if(_0x5e068c){var _0x565879=typeof _0x44f30a[_0x3004('0x1a')]===_0x3004('0x1b')&&typeof _0x44f30a['limit']===_0x3004('0x1b');var _0x367cad=_0x5e068c[_0x3004('0x1c')];var _0x38e923=_0x565879?0x0:_0x44f30a[_0x3004('0x1a')];var _0x354dea=_0x565879?_0x5e068c[_0x3004('0x1c')]:_0x44f30a[_0x3004('0x1a')]+_0x44f30a[_0x3004('0x1d')];var _0xa5bbde;if(_0x354dea>=_0x367cad){_0x354dea=_0x367cad;_0xa5bbde=0xc8;}else{_0xa5bbde=0xce;}_0x45329a[_0x3004('0x19')](_0xa5bbde);return _0x45329a[_0x3004('0x1e')]('Content-Range',_0x38e923+'-'+_0x354dea+'/'+_0x367cad)[_0x3004('0x1f')](_0x5e068c);}return null;};}function patchUpdates(_0x47018e){return function(_0x5775e6){try{jsonpatch['apply'](_0x5775e6,_0x47018e,!![]);}catch(_0x1f2fc8){return BPromise['reject'](_0x1f2fc8);}return _0x5775e6[_0x3004('0x20')]();};}function saveUpdates(_0x5b653d,_0x2b2929){return function(_0x2050a5){if(_0x2050a5){return _0x2050a5[_0x3004('0x21')](_0x5b653d)['then'](function(_0x12f38f){return _0x12f38f;});}return null;};}function removeEntity(_0x53bed0,_0x54a885){return function(_0x58547f){if(_0x58547f){return _0x58547f[_0x3004('0x22')]()[_0x3004('0x23')](function(){_0x53bed0[_0x3004('0x19')](0xcc)[_0x3004('0x24')]();});}};}function handleEntityNotFound(_0x13adfc,_0x107b41){return function(_0x47977d){if(!_0x47977d){_0x13adfc['sendStatus'](0x194);}return _0x47977d;};}function handleError(_0x1a17ce,_0x439bfd){_0x439bfd=_0x439bfd||0x1f4;return function(_0x4b989d){logger['error'](_0x4b989d['stack']);if(_0x4b989d[_0x3004('0x25')]){delete _0x4b989d[_0x3004('0x25')];}_0x1a17ce['status'](_0x439bfd)['send'](_0x4b989d);};}exports['index']=function(_0x5ecf77,_0x3767b4){var _0x1baad2={},_0x165067={},_0x5d64bc={'count':0x0,'rows':[]};var _0x27e167=_[_0x3004('0x26')](db[_0x3004('0x27')][_0x3004('0x28')],function(_0x8f5d83){return{'name':_0x8f5d83[_0x3004('0x29')],'type':_0x8f5d83['type'][_0x3004('0x2a')]};});_0x165067[_0x3004('0x2b')]=_[_0x3004('0x26')](_0x27e167,_0x3004('0x25'));_0x165067['query']=_[_0x3004('0x2c')](_0x5ecf77['query']);_0x165067[_0x3004('0x2d')]=_[_0x3004('0x2e')](_0x165067[_0x3004('0x2b')],_0x165067['query']);_0x1baad2[_0x3004('0x2f')]=_[_0x3004('0x2e')](_0x165067[_0x3004('0x2b')],qs[_0x3004('0x30')](_0x5ecf77['query']['fields']));_0x1baad2[_0x3004('0x2f')]=_0x1baad2[_0x3004('0x2f')][_0x3004('0x31')]?_0x1baad2['attributes']:_0x165067[_0x3004('0x2b')];if(!_0x5ecf77[_0x3004('0x32')]['hasOwnProperty']('nolimit')){_0x1baad2[_0x3004('0x1d')]=qs['limit'](_0x5ecf77[_0x3004('0x32')][_0x3004('0x1d')]);_0x1baad2[_0x3004('0x1a')]=qs['offset'](_0x5ecf77[_0x3004('0x32')][_0x3004('0x1a')]);}_0x1baad2[_0x3004('0x33')]=qs[_0x3004('0x34')](_0x5ecf77[_0x3004('0x32')][_0x3004('0x34')]);_0x1baad2[_0x3004('0x35')]=qs[_0x3004('0x2d')](_[_0x3004('0x36')](_0x5ecf77['query'],_0x165067[_0x3004('0x2d')]),_0x27e167);if(_0x5ecf77[_0x3004('0x32')][_0x3004('0x37')]){_0x1baad2[_0x3004('0x35')]=_['merge'](_0x1baad2['where'],{'$or':_[_0x3004('0x26')](_0x27e167,function(_0x3cff5f){if(_0x3cff5f['type']!==_0x3004('0x38')){var _0x54fafd={};_0x54fafd[_0x3cff5f['name']]={'$like':'%'+_0x5ecf77['query']['filter']+'%'};return _0x54fafd;}})});}_0x1baad2=_[_0x3004('0x39')]({},_0x1baad2,_0x5ecf77[_0x3004('0x3a')]);var _0x10f9d6={'where':_0x1baad2['where']};return db[_0x3004('0x27')][_0x3004('0x1c')](_0x10f9d6)[_0x3004('0x23')](function(_0xd1a4b8){_0x5d64bc[_0x3004('0x1c')]=_0xd1a4b8;if(_0x5ecf77[_0x3004('0x32')][_0x3004('0x3b')]){_0x1baad2[_0x3004('0x3c')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x3004('0x3d')](_0x1baad2);})['then'](function(_0x11f8d1){_0x5d64bc['rows']=_0x11f8d1;return _0x5d64bc;})[_0x3004('0x23')](respondWithFilteredResult(_0x3767b4,_0x1baad2))[_0x3004('0x3e')](handleError(_0x3767b4,null));};exports[_0x3004('0x3f')]=function(_0x36110f,_0x260083){var _0x276bde={'raw':![],'where':{'id':_0x36110f[_0x3004('0x40')]['id']}},_0x3afa5f={};_0x3afa5f[_0x3004('0x2b')]=_[_0x3004('0x2c')](db[_0x3004('0x27')][_0x3004('0x28')]);_0x3afa5f[_0x3004('0x32')]=_[_0x3004('0x2c')](_0x36110f['query']);_0x3afa5f[_0x3004('0x2d')]=_['intersection'](_0x3afa5f['model'],_0x3afa5f[_0x3004('0x32')]);_0x276bde[_0x3004('0x2f')]=_[_0x3004('0x2e')](_0x3afa5f['model'],qs[_0x3004('0x30')](_0x36110f[_0x3004('0x32')][_0x3004('0x30')]));_0x276bde['attributes']=_0x276bde[_0x3004('0x2f')][_0x3004('0x31')]?_0x276bde[_0x3004('0x2f')]:_0x3afa5f['model'];if(_0x36110f[_0x3004('0x32')][_0x3004('0x3b')]){_0x276bde[_0x3004('0x3c')]=[{'all':!![]}];}_0x276bde=_[_0x3004('0x39')]({},_0x276bde,_0x36110f[_0x3004('0x3a')]);return db[_0x3004('0x27')][_0x3004('0x41')](_0x276bde)['then'](handleEntityNotFound(_0x260083,null))['then'](respondWithResult(_0x260083,null))['catch'](handleError(_0x260083,null));};exports[_0x3004('0x42')]=function(_0x190235,_0x910de){return db[_0x3004('0x27')][_0x3004('0x42')](_0x190235['body'],{})[_0x3004('0x23')](respondWithResult(_0x910de,0xc9))['catch'](handleError(_0x910de,null));};exports[_0x3004('0x21')]=function(_0x1620d2,_0x4dfd37){if(_0x1620d2['body']['id']){delete _0x1620d2[_0x3004('0x43')]['id'];}return db[_0x3004('0x27')][_0x3004('0x41')]({'where':{'id':_0x1620d2[_0x3004('0x40')]['id']}})[_0x3004('0x23')](handleEntityNotFound(_0x4dfd37,null))[_0x3004('0x23')](saveUpdates(_0x1620d2['body'],null))[_0x3004('0x23')](respondWithResult(_0x4dfd37,null))[_0x3004('0x3e')](handleError(_0x4dfd37,null));};exports[_0x3004('0x22')]=function(_0x496edd,_0x267d83){return db[_0x3004('0x27')][_0x3004('0x41')]({'where':{'id':_0x496edd[_0x3004('0x40')]['id']}})[_0x3004('0x23')](handleEntityNotFound(_0x267d83,null))['then'](removeEntity(_0x267d83,null))[_0x3004('0x3e')](handleError(_0x267d83,null));};exports[_0x3004('0x44')]=function(_0x1aff33,_0x5c43c4,_0x4359ef){var _0xdc75d5={};var _0x9c9a5f={};var _0xc7a2a2;var _0x28cbe6;return db['FreshsalesAccount'][_0x3004('0x45')]({'where':{'id':_0x1aff33[_0x3004('0x40')]['id']}})[_0x3004('0x23')](handleEntityNotFound(_0x5c43c4,null))[_0x3004('0x23')](function(_0xb16804){if(_0xb16804){_0xc7a2a2=_0xb16804;_0x9c9a5f[_0x3004('0x2b')]=_[_0x3004('0x2c')](db[_0x3004('0x46')][_0x3004('0x28')]);_0x9c9a5f[_0x3004('0x32')]=_['keys'](_0x1aff33['query']);_0x9c9a5f[_0x3004('0x2d')]=_[_0x3004('0x2e')](_0x9c9a5f[_0x3004('0x2b')],_0x9c9a5f[_0x3004('0x32')]);_0xdc75d5[_0x3004('0x2f')]=_[_0x3004('0x2e')](_0x9c9a5f[_0x3004('0x2b')],qs[_0x3004('0x30')](_0x1aff33[_0x3004('0x32')][_0x3004('0x30')]));_0xdc75d5[_0x3004('0x2f')]=_0xdc75d5['attributes'][_0x3004('0x31')]?_0xdc75d5[_0x3004('0x2f')]:_0x9c9a5f[_0x3004('0x2b')];_0xdc75d5[_0x3004('0x33')]=qs[_0x3004('0x34')](_0x1aff33[_0x3004('0x32')][_0x3004('0x34')]);_0xdc75d5[_0x3004('0x35')]=qs[_0x3004('0x2d')](_[_0x3004('0x36')](_0x1aff33[_0x3004('0x32')],_0x9c9a5f['filters']));if(_0x1aff33['query'][_0x3004('0x37')]){_0xdc75d5[_0x3004('0x35')]=_[_0x3004('0x39')](_0xdc75d5[_0x3004('0x35')],{'$or':_[_0x3004('0x26')](_0xdc75d5[_0x3004('0x2f')],function(_0x392a71){var _0x3ab54f={};_0x3ab54f[_0x392a71]={'$like':'%'+_0x1aff33[_0x3004('0x32')][_0x3004('0x37')]+'%'};return _0x3ab54f;})});}_0xdc75d5=_[_0x3004('0x39')]({},_0xdc75d5,_0x1aff33[_0x3004('0x3a')]);return _0xc7a2a2[_0x3004('0x44')](_0xdc75d5);}})[_0x3004('0x23')](function(_0x2cefa6){if(_0x2cefa6){_0x28cbe6=_0x2cefa6['length'];if(!_0x1aff33[_0x3004('0x32')]['hasOwnProperty'](_0x3004('0x47'))){_0xdc75d5[_0x3004('0x1d')]=qs[_0x3004('0x1d')](_0x1aff33[_0x3004('0x32')]['limit']);_0xdc75d5[_0x3004('0x1a')]=qs[_0x3004('0x1a')](_0x1aff33['query'][_0x3004('0x1a')]);}return _0xc7a2a2[_0x3004('0x44')](_0xdc75d5);}})[_0x3004('0x23')](function(_0x5b3c04){if(_0x5b3c04){return _0x5b3c04?{'count':_0x28cbe6,'rows':_0x5b3c04}:null;}})[_0x3004('0x23')](respondWithResult(_0x5c43c4,null))[_0x3004('0x3e')](handleError(_0x5c43c4,null));};exports[_0x3004('0x48')]=function(_0x371290,_0x446138,_0x58fbd3){if(_0x371290['body']['id']){delete _0x371290[_0x3004('0x43')]['id'];}return db[_0x3004('0x27')]['findOne']({'where':{'id':_0x371290[_0x3004('0x40')]['id']}})['then'](handleEntityNotFound(_0x446138,null))[_0x3004('0x23')](function(_0x219f73){if(_0x219f73){_0x371290[_0x3004('0x43')][_0x3004('0x49')]=_0x219f73['id'];_0x371290[_0x3004('0x43')][_0x3004('0x4a')]=integrations['getSubjects'](_0x371290[_0x3004('0x43')]['channel'],_0x371290[_0x3004('0x43')][_0x3004('0x4b')]);_0x371290['body']['Descriptions']=integrations['getDescriptions'](_0x371290['body'][_0x3004('0x4c')],_0x371290[_0x3004('0x43')][_0x3004('0x4b')]);return db[_0x3004('0x46')][_0x3004('0x42')](_0x371290[_0x3004('0x43')],{'include':[{'model':db['FreshsalesField'],'as':'Subjects'},{'model':db['FreshsalesField'],'as':'Descriptions'}]});}return null;})[_0x3004('0x23')](respondWithResult(_0x446138,null))['catch'](handleError(_0x446138,null));};exports['getFields']=function(_0x4f956a,_0x23ebe7,_0x4babac){var _0x2ed51f='';var _0x4d3525='';return db[_0x3004('0x27')][_0x3004('0x45')]({'where':{'id':_0x4f956a['params']['id']},'attributes':['id','username',_0x3004('0x4d'),_0x3004('0x4e')]})['then'](handleEntityNotFound(_0x23ebe7,null))[_0x3004('0x23')](function(_0x18f5b9){if(_0x18f5b9){_0x4d3525=_0x18f5b9[_0x3004('0x4f')];_0x2ed51f=_0x18f5b9['remoteUri'];var _0x5e08e1=_0x18f5b9[_0x3004('0x4d')][_0x3004('0x50')](-0x1);if(_0x5e08e1==='/'){_0x2ed51f=_0x2ed51f[_0x3004('0x51')](0x0,_0x2ed51f['lastIndexOf'](_0x5e08e1));}return rp({'method':'GET','uri':util[_0x3004('0x52')](_0x3004('0x53'),_0x2ed51f,_0x3004('0x54')),'headers':{'Authorization':_0x3004('0x55')+_0x18f5b9['apiKey']},'json':!![]});}})[_0x3004('0x23')](function(_0x51d88b){if(_0x51d88b){var _0x59b5cb=_0x51d88b['users'];var _0x55bb29=![];var _0x47e66e=null;for(_0x47e66e=0x0;_0x47e66e<_0x59b5cb[_0x3004('0x31')];_0x47e66e++){if(_0x59b5cb[_0x47e66e]['email']===_0x4d3525){_0x55bb29=!![];}}if(_0x55bb29){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x3004('0x56')});}}})[_0x3004('0x23')](respondWithResult(_0x23ebe7,null))[_0x3004('0x3e')](function(_0xaa721a){var _0x6807e8=_0x4f956a[_0x3004('0x32')]['test']?0x1f4:_0xaa721a['statusCode']||0x1f4;logger[_0x3004('0x57')](_0x3004('0x58'),_0x3004('0x59'),_0x6807e8,JSON[_0x3004('0x5a')](_0xaa721a));delete _0xaa721a[_0x3004('0x25')];if(_0x6807e8===0x191){_0x6807e8=0x190;}_0x23ebe7[_0x3004('0x19')](_0x6807e8)[_0x3004('0x5b')](_0x4f956a[_0x3004('0x32')][_0x3004('0x5c')]?{'message':_0x3004('0x5d'),'statusCode':_0xaa721a[_0x3004('0x5e')]}:_0xaa721a);});};