Built motion from commit fe909640.|2.6.8
[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 _0x43c0=['attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','FreshsalesAccount','includeAll','include','findAll','rows','show','params','keys','find','catch','create','update','body','getConfigurations','findOne','FreshsalesConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','slice','GET','%s%s','Token\x20token=','apiKey','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','undefined','limit','count','offset','Content-Range','json','save','then','destroy','end','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields'];(function(_0x38c632,_0x14e8e6){var _0x12737e=function(_0x3e0fe4){while(--_0x3e0fe4){_0x38c632['push'](_0x38c632['shift']());}};_0x12737e(++_0x14e8e6);}(_0x43c0,0x15f));var _0x043c=function(_0x226c93,_0x1a9f3d){_0x226c93=_0x226c93-0x0;var _0xcdde57=_0x43c0[_0x226c93];return _0xcdde57;};'use strict';var emlformat=require(_0x043c('0x0'));var rimraf=require(_0x043c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x043c('0x2'));var rp=require('request-promise');var moment=require(_0x043c('0x3'));var BPromise=require(_0x043c('0x4'));var Mustache=require(_0x043c('0x5'));var util=require(_0x043c('0x6'));var path=require('path');var sox=require(_0x043c('0x7'));var csv=require(_0x043c('0x8'));var ejs=require(_0x043c('0x9'));var fs=require('fs');var fs_extra=require(_0x043c('0xa'));var _=require(_0x043c('0xb'));var squel=require(_0x043c('0xc'));var crypto=require('crypto');var jsforce=require(_0x043c('0xd'));var deskjs=require(_0x043c('0xe'));var toCsv=require(_0x043c('0x8'));var querystring=require(_0x043c('0xf'));var Papa=require(_0x043c('0x10'));var Redis=require(_0x043c('0x11'));var authService=require(_0x043c('0x12'));var qs=require(_0x043c('0x13'));var as=require(_0x043c('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x043c('0x15'))(_0x043c('0x16'));var utils=require('../../config/utils');var config=require(_0x043c('0x17'));var licenseUtil=require(_0x043c('0x18'));var db=require(_0x043c('0x19'))['db'];var integrations=require(_0x043c('0x1a'));function respondWithStatusCode(_0x3de9e5,_0x674e83){_0x674e83=_0x674e83||0xcc;return function(_0x10030f){if(_0x10030f){return _0x3de9e5[_0x043c('0x1b')](_0x674e83);}return _0x3de9e5['status'](_0x674e83)['end']();};}function respondWithResult(_0x2a9a4e,_0x32f00c){_0x32f00c=_0x32f00c||0xc8;return function(_0x1003de){if(_0x1003de){return _0x2a9a4e[_0x043c('0x1c')](_0x32f00c)['json'](_0x1003de);}};}function respondWithFilteredResult(_0x55fe7c,_0x55bab2){return function(_0x15628c){if(_0x15628c){var _0x290337=typeof _0x55bab2['offset']===_0x043c('0x1d')&&typeof _0x55bab2[_0x043c('0x1e')]===_0x043c('0x1d');var _0x22b0d6=_0x15628c[_0x043c('0x1f')];var _0x5e5da8=_0x290337?0x0:_0x55bab2[_0x043c('0x20')];var _0x4a4cf6=_0x290337?_0x15628c[_0x043c('0x1f')]:_0x55bab2[_0x043c('0x20')]+_0x55bab2[_0x043c('0x1e')];var _0x4e2618;if(_0x4a4cf6>=_0x22b0d6){_0x4a4cf6=_0x22b0d6;_0x4e2618=0xc8;}else{_0x4e2618=0xce;}_0x55fe7c[_0x043c('0x1c')](_0x4e2618);return _0x55fe7c['set'](_0x043c('0x21'),_0x5e5da8+'-'+_0x4a4cf6+'/'+_0x22b0d6)[_0x043c('0x22')](_0x15628c);}return null;};}function patchUpdates(_0x47a087){return function(_0x1125b5){try{jsonpatch['apply'](_0x1125b5,_0x47a087,!![]);}catch(_0x28619b){return BPromise['reject'](_0x28619b);}return _0x1125b5[_0x043c('0x23')]();};}function saveUpdates(_0x4bd99f,_0x30f133){return function(_0x1ec576){if(_0x1ec576){return _0x1ec576['update'](_0x4bd99f)[_0x043c('0x24')](function(_0x2ac7af){return _0x2ac7af;});}return null;};}function removeEntity(_0x63c581,_0x562f0d){return function(_0x4ae11d){if(_0x4ae11d){return _0x4ae11d[_0x043c('0x25')]()[_0x043c('0x24')](function(){_0x63c581[_0x043c('0x1c')](0xcc)[_0x043c('0x26')]();});}};}function handleEntityNotFound(_0x5a59a3,_0x27276d){return function(_0x414cdc){if(!_0x414cdc){_0x5a59a3[_0x043c('0x1b')](0x194);}return _0x414cdc;};}function handleError(_0x3123ca,_0x67b615){_0x67b615=_0x67b615||0x1f4;return function(_0x5689b0){logger[_0x043c('0x27')](_0x5689b0['stack']);if(_0x5689b0[_0x043c('0x28')]){delete _0x5689b0['name'];}_0x3123ca[_0x043c('0x1c')](_0x67b615)[_0x043c('0x29')](_0x5689b0);};}exports[_0x043c('0x2a')]=function(_0x4a9dc2,_0x1a4f26){var _0x45ffd6={},_0x5c057a={},_0x1a442b={'count':0x0,'rows':[]};var _0x3e0a69=_[_0x043c('0x2b')](db['FreshsalesAccount'][_0x043c('0x2c')],function(_0x55c33c){return{'name':_0x55c33c[_0x043c('0x2d')],'type':_0x55c33c[_0x043c('0x2e')][_0x043c('0x2f')]};});_0x5c057a[_0x043c('0x30')]=_[_0x043c('0x2b')](_0x3e0a69,'name');_0x5c057a['query']=_['keys'](_0x4a9dc2[_0x043c('0x31')]);_0x5c057a[_0x043c('0x32')]=_[_0x043c('0x33')](_0x5c057a[_0x043c('0x30')],_0x5c057a[_0x043c('0x31')]);_0x45ffd6['attributes']=_[_0x043c('0x33')](_0x5c057a['model'],qs[_0x043c('0x34')](_0x4a9dc2['query']['fields']));_0x45ffd6['attributes']=_0x45ffd6[_0x043c('0x35')][_0x043c('0x36')]?_0x45ffd6[_0x043c('0x35')]:_0x5c057a[_0x043c('0x30')];if(!_0x4a9dc2['query'][_0x043c('0x37')](_0x043c('0x38'))){_0x45ffd6[_0x043c('0x1e')]=qs[_0x043c('0x1e')](_0x4a9dc2['query'][_0x043c('0x1e')]);_0x45ffd6[_0x043c('0x20')]=qs[_0x043c('0x20')](_0x4a9dc2[_0x043c('0x31')][_0x043c('0x20')]);}_0x45ffd6[_0x043c('0x39')]=qs[_0x043c('0x3a')](_0x4a9dc2['query']['sort']);_0x45ffd6[_0x043c('0x3b')]=qs[_0x043c('0x32')](_[_0x043c('0x3c')](_0x4a9dc2[_0x043c('0x31')],_0x5c057a[_0x043c('0x32')]),_0x3e0a69);if(_0x4a9dc2[_0x043c('0x31')][_0x043c('0x3d')]){_0x45ffd6[_0x043c('0x3b')]=_[_0x043c('0x3e')](_0x45ffd6[_0x043c('0x3b')],{'$or':_['map'](_0x3e0a69,function(_0x3f3c1a){if(_0x3f3c1a['type']!==_0x043c('0x3f')){var _0xf464be={};_0xf464be[_0x3f3c1a[_0x043c('0x28')]]={'$like':'%'+_0x4a9dc2['query'][_0x043c('0x3d')]+'%'};return _0xf464be;}})});}_0x45ffd6=_[_0x043c('0x3e')]({},_0x45ffd6,_0x4a9dc2[_0x043c('0x40')]);var _0x1f57ec={'where':_0x45ffd6[_0x043c('0x3b')]};return db[_0x043c('0x41')][_0x043c('0x1f')](_0x1f57ec)[_0x043c('0x24')](function(_0x4aeed2){_0x1a442b[_0x043c('0x1f')]=_0x4aeed2;if(_0x4a9dc2[_0x043c('0x31')][_0x043c('0x42')]){_0x45ffd6[_0x043c('0x43')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x043c('0x44')](_0x45ffd6);})[_0x043c('0x24')](function(_0x5604c1){_0x1a442b[_0x043c('0x45')]=_0x5604c1;return _0x1a442b;})['then'](respondWithFilteredResult(_0x1a4f26,_0x45ffd6))['catch'](handleError(_0x1a4f26,null));};exports[_0x043c('0x46')]=function(_0x286060,_0x248171){var _0x3c5fc0={'raw':![],'where':{'id':_0x286060[_0x043c('0x47')]['id']}},_0x26633a={};_0x26633a[_0x043c('0x30')]=_[_0x043c('0x48')](db[_0x043c('0x41')][_0x043c('0x2c')]);_0x26633a[_0x043c('0x31')]=_['keys'](_0x286060['query']);_0x26633a[_0x043c('0x32')]=_['intersection'](_0x26633a[_0x043c('0x30')],_0x26633a[_0x043c('0x31')]);_0x3c5fc0[_0x043c('0x35')]=_[_0x043c('0x33')](_0x26633a['model'],qs[_0x043c('0x34')](_0x286060[_0x043c('0x31')][_0x043c('0x34')]));_0x3c5fc0[_0x043c('0x35')]=_0x3c5fc0[_0x043c('0x35')][_0x043c('0x36')]?_0x3c5fc0[_0x043c('0x35')]:_0x26633a[_0x043c('0x30')];if(_0x286060['query'][_0x043c('0x42')]){_0x3c5fc0[_0x043c('0x43')]=[{'all':!![]}];}_0x3c5fc0=_[_0x043c('0x3e')]({},_0x3c5fc0,_0x286060[_0x043c('0x40')]);return db[_0x043c('0x41')][_0x043c('0x49')](_0x3c5fc0)[_0x043c('0x24')](handleEntityNotFound(_0x248171,null))[_0x043c('0x24')](respondWithResult(_0x248171,null))[_0x043c('0x4a')](handleError(_0x248171,null));};exports[_0x043c('0x4b')]=function(_0x261c3,_0x25012c){return db[_0x043c('0x41')][_0x043c('0x4b')](_0x261c3['body'],{})['then'](respondWithResult(_0x25012c,0xc9))[_0x043c('0x4a')](handleError(_0x25012c,null));};exports[_0x043c('0x4c')]=function(_0x5deeb5,_0x2254a0){if(_0x5deeb5['body']['id']){delete _0x5deeb5[_0x043c('0x4d')]['id'];}return db[_0x043c('0x41')][_0x043c('0x49')]({'where':{'id':_0x5deeb5['params']['id']}})[_0x043c('0x24')](handleEntityNotFound(_0x2254a0,null))[_0x043c('0x24')](saveUpdates(_0x5deeb5[_0x043c('0x4d')],null))[_0x043c('0x24')](respondWithResult(_0x2254a0,null))['catch'](handleError(_0x2254a0,null));};exports[_0x043c('0x25')]=function(_0xd8a7ad,_0x4f5b8c){return db['FreshsalesAccount']['find']({'where':{'id':_0xd8a7ad[_0x043c('0x47')]['id']}})[_0x043c('0x24')](handleEntityNotFound(_0x4f5b8c,null))[_0x043c('0x24')](removeEntity(_0x4f5b8c,null))[_0x043c('0x4a')](handleError(_0x4f5b8c,null));};exports[_0x043c('0x4e')]=function(_0x36f518,_0xaf2788,_0x4357c8){var _0x248323={};var _0x5940fd={};var _0x33d7b5;var _0x115d1b;return db[_0x043c('0x41')][_0x043c('0x4f')]({'where':{'id':_0x36f518[_0x043c('0x47')]['id']}})['then'](handleEntityNotFound(_0xaf2788,null))[_0x043c('0x24')](function(_0x28d879){if(_0x28d879){_0x33d7b5=_0x28d879;_0x5940fd[_0x043c('0x30')]=_[_0x043c('0x48')](db[_0x043c('0x50')][_0x043c('0x2c')]);_0x5940fd[_0x043c('0x31')]=_[_0x043c('0x48')](_0x36f518[_0x043c('0x31')]);_0x5940fd['filters']=_[_0x043c('0x33')](_0x5940fd[_0x043c('0x30')],_0x5940fd['query']);_0x248323[_0x043c('0x35')]=_[_0x043c('0x33')](_0x5940fd[_0x043c('0x30')],qs[_0x043c('0x34')](_0x36f518[_0x043c('0x31')][_0x043c('0x34')]));_0x248323[_0x043c('0x35')]=_0x248323[_0x043c('0x35')][_0x043c('0x36')]?_0x248323[_0x043c('0x35')]:_0x5940fd[_0x043c('0x30')];_0x248323['order']=qs[_0x043c('0x3a')](_0x36f518[_0x043c('0x31')][_0x043c('0x3a')]);_0x248323[_0x043c('0x3b')]=qs[_0x043c('0x32')](_[_0x043c('0x3c')](_0x36f518[_0x043c('0x31')],_0x5940fd[_0x043c('0x32')]));if(_0x36f518[_0x043c('0x31')][_0x043c('0x3d')]){_0x248323[_0x043c('0x3b')]=_['merge'](_0x248323[_0x043c('0x3b')],{'$or':_[_0x043c('0x2b')](_0x248323[_0x043c('0x35')],function(_0x1d9a02){var _0x327642={};_0x327642[_0x1d9a02]={'$like':'%'+_0x36f518['query'][_0x043c('0x3d')]+'%'};return _0x327642;})});}_0x248323=_[_0x043c('0x3e')]({},_0x248323,_0x36f518[_0x043c('0x40')]);return _0x33d7b5[_0x043c('0x4e')](_0x248323);}})[_0x043c('0x24')](function(_0xeef344){if(_0xeef344){_0x115d1b=_0xeef344[_0x043c('0x36')];if(!_0x36f518[_0x043c('0x31')][_0x043c('0x37')](_0x043c('0x38'))){_0x248323[_0x043c('0x1e')]=qs[_0x043c('0x1e')](_0x36f518[_0x043c('0x31')][_0x043c('0x1e')]);_0x248323[_0x043c('0x20')]=qs[_0x043c('0x20')](_0x36f518[_0x043c('0x31')][_0x043c('0x20')]);}return _0x33d7b5[_0x043c('0x4e')](_0x248323);}})[_0x043c('0x24')](function(_0x2ccb4d){if(_0x2ccb4d){return _0x2ccb4d?{'count':_0x115d1b,'rows':_0x2ccb4d}:null;}})[_0x043c('0x24')](respondWithResult(_0xaf2788,null))['catch'](handleError(_0xaf2788,null));};exports['addConfiguration']=function(_0x2e8f7e,_0x222ded,_0x23e41d){if(_0x2e8f7e[_0x043c('0x4d')]['id']){delete _0x2e8f7e[_0x043c('0x4d')]['id'];}return db[_0x043c('0x41')]['findOne']({'where':{'id':_0x2e8f7e[_0x043c('0x47')]['id']}})[_0x043c('0x24')](handleEntityNotFound(_0x222ded,null))[_0x043c('0x24')](function(_0x59e47a){if(_0x59e47a){_0x2e8f7e['body']['AccountId']=_0x59e47a['id'];_0x2e8f7e[_0x043c('0x4d')][_0x043c('0x51')]=integrations[_0x043c('0x52')](_0x2e8f7e[_0x043c('0x4d')][_0x043c('0x53')],_0x2e8f7e[_0x043c('0x4d')]['type']);_0x2e8f7e['body'][_0x043c('0x54')]=integrations[_0x043c('0x55')](_0x2e8f7e[_0x043c('0x4d')][_0x043c('0x53')],_0x2e8f7e[_0x043c('0x4d')][_0x043c('0x2e')]);return db[_0x043c('0x50')]['create'](_0x2e8f7e[_0x043c('0x4d')],{'include':[{'model':db[_0x043c('0x56')],'as':_0x043c('0x51')},{'model':db[_0x043c('0x56')],'as':_0x043c('0x54')}]});}return null;})[_0x043c('0x24')](respondWithResult(_0x222ded,null))[_0x043c('0x4a')](handleError(_0x222ded,null));};exports[_0x043c('0x57')]=function(_0x4bdc93,_0x40099e,_0x4906c3){var _0x5f9d93='';var _0x303036='';return db['FreshsalesAccount'][_0x043c('0x4f')]({'where':{'id':_0x4bdc93[_0x043c('0x47')]['id']},'attributes':['id',_0x043c('0x58'),_0x043c('0x59'),'apiKey']})[_0x043c('0x24')](handleEntityNotFound(_0x40099e,null))[_0x043c('0x24')](function(_0x2e495a){if(_0x2e495a){_0x303036=_0x2e495a[_0x043c('0x58')];_0x5f9d93=_0x2e495a[_0x043c('0x59')];var _0x1304a5=_0x2e495a[_0x043c('0x59')][_0x043c('0x5a')](-0x1);if(_0x1304a5==='/'){_0x5f9d93=_0x5f9d93['substring'](0x0,_0x5f9d93['lastIndexOf'](_0x1304a5));}return rp({'method':_0x043c('0x5b'),'uri':util['format'](_0x043c('0x5c'),_0x5f9d93,'/api/selector/owners'),'headers':{'Authorization':_0x043c('0x5d')+_0x2e495a[_0x043c('0x5e')]},'json':!![]});}})['then'](function(_0x2baf0d){if(_0x2baf0d){var _0x426f85=_0x2baf0d[_0x043c('0x5f')];var _0x22f6f3=![];var _0x592bf4=null;for(_0x592bf4=0x0;_0x592bf4<_0x426f85['length'];_0x592bf4++){if(_0x426f85[_0x592bf4]['email']===_0x303036){_0x22f6f3=!![];}}if(_0x22f6f3){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x043c('0x60')});}}})[_0x043c('0x24')](respondWithResult(_0x40099e,null))['catch'](function(_0x17dd38){var _0x15322b=_0x4bdc93[_0x043c('0x31')][_0x043c('0x61')]?0x1f4:_0x17dd38[_0x043c('0x62')]||0x1f4;logger[_0x043c('0x27')](_0x043c('0x63'),'getFields',_0x15322b,JSON['stringify'](_0x17dd38));delete _0x17dd38[_0x043c('0x28')];if(_0x15322b===0x191){_0x15322b=0x190;}_0x40099e[_0x043c('0x1c')](_0x15322b)[_0x043c('0x29')](_0x4bdc93['query'][_0x043c('0x61')]?{'message':_0x043c('0x64'),'statusCode':_0x17dd38['statusCode']}:_0x17dd38);});};