1ed18bd1f99724532f0ad2f2fada32562deb78ad
[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 _0x2c8f=['filters','pick','filter','merge','include','findAll','rows','params','options','find','catch','create','body','destroy','findOne','FreshsalesConfiguration','length','nolimit','getConfigurations','addConfiguration','Subjects','getSubjects','type','Descriptions','getDescriptions','channel','FreshsalesField','getFields','username','remoteUri','apiKey','slice','lastIndexOf','%s%s','/api/selector/owners','Token\x20token=','users','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','fs-extra','crypto','jsforce','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','then','sendStatus','error','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','model','query','keys','intersection','attributes','fields','hasOwnProperty','sort','where'];(function(_0x499f76,_0x32d064){var _0x378a23=function(_0x30ab96){while(--_0x30ab96){_0x499f76['push'](_0x499f76['shift']());}};_0x378a23(++_0x32d064);}(_0x2c8f,0x8a));var _0xf2c8=function(_0x19a79e,_0x46fc2b){_0x19a79e=_0x19a79e-0x0;var _0x229678=_0x2c8f[_0x19a79e];return _0x229678;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf2c8('0x0'));var zipdir=require(_0xf2c8('0x1'));var jsonpatch=require(_0xf2c8('0x2'));var rp=require(_0xf2c8('0x3'));var moment=require(_0xf2c8('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf2c8('0x5'));var util=require(_0xf2c8('0x6'));var path=require('path');var sox=require(_0xf2c8('0x7'));var csv=require('to-csv');var ejs=require(_0xf2c8('0x8'));var fs=require('fs');var fs_extra=require(_0xf2c8('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xf2c8('0xa'));var jsforce=require(_0xf2c8('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xf2c8('0xc'));var querystring=require(_0xf2c8('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf2c8('0xe'));var qs=require(_0xf2c8('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf2c8('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xf2c8('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xf2c8('0x12'))['db'];var integrations=require(_0xf2c8('0x13'));function respondWithStatusCode(_0x82786e,_0x4dace6){_0x4dace6=_0x4dace6||0xcc;return function(_0x4cd76f){if(_0x4cd76f){return _0x82786e['sendStatus'](_0x4dace6);}return _0x82786e[_0xf2c8('0x14')](_0x4dace6)[_0xf2c8('0x15')]();};}function respondWithResult(_0x2a2bbf,_0x5f0fdf){_0x5f0fdf=_0x5f0fdf||0xc8;return function(_0x1b7d35){if(_0x1b7d35){return _0x2a2bbf[_0xf2c8('0x14')](_0x5f0fdf)[_0xf2c8('0x16')](_0x1b7d35);}};}function respondWithFilteredResult(_0x426610,_0x36591c){return function(_0x3b8dc6){if(_0x3b8dc6){var _0x347842=typeof _0x36591c[_0xf2c8('0x17')]==='undefined'&&typeof _0x36591c[_0xf2c8('0x18')]===_0xf2c8('0x19');var _0x1103af=_0x3b8dc6[_0xf2c8('0x1a')];var _0x586867=_0x347842?0x0:_0x36591c[_0xf2c8('0x17')];var _0x52ce21=_0x347842?_0x3b8dc6[_0xf2c8('0x1a')]:_0x36591c[_0xf2c8('0x17')]+_0x36591c['limit'];var _0x3c2743;if(_0x52ce21>=_0x1103af){_0x52ce21=_0x1103af;_0x3c2743=0xc8;}else{_0x3c2743=0xce;}_0x426610['status'](_0x3c2743);return _0x426610[_0xf2c8('0x1b')](_0xf2c8('0x1c'),_0x586867+'-'+_0x52ce21+'/'+_0x1103af)[_0xf2c8('0x16')](_0x3b8dc6);}return null;};}function patchUpdates(_0x275c8e){return function(_0x32b184){try{jsonpatch[_0xf2c8('0x1d')](_0x32b184,_0x275c8e,!![]);}catch(_0x7f8a6e){return BPromise[_0xf2c8('0x1e')](_0x7f8a6e);}return _0x32b184['save']();};}function saveUpdates(_0x3e9244,_0x1bebef){return function(_0x40f5e9){if(_0x40f5e9){return _0x40f5e9[_0xf2c8('0x1f')](_0x3e9244)[_0xf2c8('0x20')](function(_0x10c03e){return _0x10c03e;});}return null;};}function removeEntity(_0x32a967,_0x44f8fb){return function(_0x4fc058){if(_0x4fc058){return _0x4fc058['destroy']()[_0xf2c8('0x20')](function(){_0x32a967[_0xf2c8('0x14')](0xcc)[_0xf2c8('0x15')]();});}};}function handleEntityNotFound(_0x4c6ae8,_0x2e7f1d){return function(_0x389c09){if(!_0x389c09){_0x4c6ae8[_0xf2c8('0x21')](0x194);}return _0x389c09;};}function handleError(_0x4d97e9,_0x5eda0e){_0x5eda0e=_0x5eda0e||0x1f4;return function(_0x409830){logger[_0xf2c8('0x22')](_0x409830[_0xf2c8('0x23')]);if(_0x409830['name']){delete _0x409830[_0xf2c8('0x24')];}_0x4d97e9['status'](_0x5eda0e)[_0xf2c8('0x25')](_0x409830);};}exports[_0xf2c8('0x26')]=function(_0x2713f6,_0x2fb36e){var _0x3027ed={},_0x27c28d={},_0x2d652c={'count':0x0,'rows':[]};var _0x305f6c=_[_0xf2c8('0x27')](db[_0xf2c8('0x28')][_0xf2c8('0x29')],function(_0xe0a3a5){return{'name':_0xe0a3a5[_0xf2c8('0x2a')],'type':_0xe0a3a5['type']['key']};});_0x27c28d[_0xf2c8('0x2b')]=_[_0xf2c8('0x27')](_0x305f6c,'name');_0x27c28d[_0xf2c8('0x2c')]=_[_0xf2c8('0x2d')](_0x2713f6[_0xf2c8('0x2c')]);_0x27c28d['filters']=_[_0xf2c8('0x2e')](_0x27c28d[_0xf2c8('0x2b')],_0x27c28d[_0xf2c8('0x2c')]);_0x3027ed[_0xf2c8('0x2f')]=_['intersection'](_0x27c28d[_0xf2c8('0x2b')],qs[_0xf2c8('0x30')](_0x2713f6[_0xf2c8('0x2c')][_0xf2c8('0x30')]));_0x3027ed[_0xf2c8('0x2f')]=_0x3027ed[_0xf2c8('0x2f')]['length']?_0x3027ed[_0xf2c8('0x2f')]:_0x27c28d[_0xf2c8('0x2b')];if(!_0x2713f6[_0xf2c8('0x2c')][_0xf2c8('0x31')]('nolimit')){_0x3027ed[_0xf2c8('0x18')]=qs['limit'](_0x2713f6[_0xf2c8('0x2c')][_0xf2c8('0x18')]);_0x3027ed['offset']=qs['offset'](_0x2713f6['query'][_0xf2c8('0x17')]);}_0x3027ed['order']=qs[_0xf2c8('0x32')](_0x2713f6[_0xf2c8('0x2c')][_0xf2c8('0x32')]);_0x3027ed[_0xf2c8('0x33')]=qs[_0xf2c8('0x34')](_[_0xf2c8('0x35')](_0x2713f6[_0xf2c8('0x2c')],_0x27c28d[_0xf2c8('0x34')]),_0x305f6c);if(_0x2713f6['query'][_0xf2c8('0x36')]){_0x3027ed[_0xf2c8('0x33')]=_[_0xf2c8('0x37')](_0x3027ed[_0xf2c8('0x33')],{'$or':_[_0xf2c8('0x27')](_0x305f6c,function(_0xb6105c){if(_0xb6105c['type']!=='VIRTUAL'){var _0x160076={};_0x160076[_0xb6105c[_0xf2c8('0x24')]]={'$like':'%'+_0x2713f6[_0xf2c8('0x2c')][_0xf2c8('0x36')]+'%'};return _0x160076;}})});}_0x3027ed=_[_0xf2c8('0x37')]({},_0x3027ed,_0x2713f6['options']);var _0x36de78={'where':_0x3027ed[_0xf2c8('0x33')]};return db[_0xf2c8('0x28')]['count'](_0x36de78)[_0xf2c8('0x20')](function(_0x3c3b53){_0x2d652c[_0xf2c8('0x1a')]=_0x3c3b53;if(_0x2713f6[_0xf2c8('0x2c')]['includeAll']){_0x3027ed[_0xf2c8('0x38')]=[{'all':!![]}];}return db[_0xf2c8('0x28')][_0xf2c8('0x39')](_0x3027ed);})[_0xf2c8('0x20')](function(_0x40e3cc){_0x2d652c[_0xf2c8('0x3a')]=_0x40e3cc;return _0x2d652c;})[_0xf2c8('0x20')](respondWithFilteredResult(_0x2fb36e,_0x3027ed))['catch'](handleError(_0x2fb36e,null));};exports['show']=function(_0x89dd66,_0x3268d7){var _0x45823e={'raw':![],'where':{'id':_0x89dd66[_0xf2c8('0x3b')]['id']}},_0x58e890={};_0x58e890[_0xf2c8('0x2b')]=_['keys'](db[_0xf2c8('0x28')][_0xf2c8('0x29')]);_0x58e890[_0xf2c8('0x2c')]=_[_0xf2c8('0x2d')](_0x89dd66['query']);_0x58e890[_0xf2c8('0x34')]=_[_0xf2c8('0x2e')](_0x58e890[_0xf2c8('0x2b')],_0x58e890[_0xf2c8('0x2c')]);_0x45823e[_0xf2c8('0x2f')]=_['intersection'](_0x58e890[_0xf2c8('0x2b')],qs['fields'](_0x89dd66[_0xf2c8('0x2c')][_0xf2c8('0x30')]));_0x45823e[_0xf2c8('0x2f')]=_0x45823e[_0xf2c8('0x2f')]['length']?_0x45823e[_0xf2c8('0x2f')]:_0x58e890[_0xf2c8('0x2b')];if(_0x89dd66[_0xf2c8('0x2c')]['includeAll']){_0x45823e[_0xf2c8('0x38')]=[{'all':!![]}];}_0x45823e=_[_0xf2c8('0x37')]({},_0x45823e,_0x89dd66[_0xf2c8('0x3c')]);return db['FreshsalesAccount'][_0xf2c8('0x3d')](_0x45823e)[_0xf2c8('0x20')](handleEntityNotFound(_0x3268d7,null))[_0xf2c8('0x20')](respondWithResult(_0x3268d7,null))[_0xf2c8('0x3e')](handleError(_0x3268d7,null));};exports[_0xf2c8('0x3f')]=function(_0x1ef6ce,_0x5990cc){return db[_0xf2c8('0x28')][_0xf2c8('0x3f')](_0x1ef6ce['body'],{})['then'](respondWithResult(_0x5990cc,0xc9))[_0xf2c8('0x3e')](handleError(_0x5990cc,null));};exports[_0xf2c8('0x1f')]=function(_0x378ee7,_0x16577f){if(_0x378ee7[_0xf2c8('0x40')]['id']){delete _0x378ee7[_0xf2c8('0x40')]['id'];}return db[_0xf2c8('0x28')][_0xf2c8('0x3d')]({'where':{'id':_0x378ee7['params']['id']}})[_0xf2c8('0x20')](handleEntityNotFound(_0x16577f,null))['then'](saveUpdates(_0x378ee7[_0xf2c8('0x40')],null))[_0xf2c8('0x20')](respondWithResult(_0x16577f,null))[_0xf2c8('0x3e')](handleError(_0x16577f,null));};exports[_0xf2c8('0x41')]=function(_0x54120c,_0x5e0b81){return db[_0xf2c8('0x28')][_0xf2c8('0x3d')]({'where':{'id':_0x54120c[_0xf2c8('0x3b')]['id']}})[_0xf2c8('0x20')](handleEntityNotFound(_0x5e0b81,null))[_0xf2c8('0x20')](removeEntity(_0x5e0b81,null))['catch'](handleError(_0x5e0b81,null));};exports['getConfigurations']=function(_0x57341b,_0x340fb7,_0x1e8004){var _0x338bb9={};var _0x2db08a={};var _0x41e4d0;var _0x588b01;return db[_0xf2c8('0x28')][_0xf2c8('0x42')]({'where':{'id':_0x57341b['params']['id']}})[_0xf2c8('0x20')](handleEntityNotFound(_0x340fb7,null))[_0xf2c8('0x20')](function(_0x2d81cc){if(_0x2d81cc){_0x41e4d0=_0x2d81cc;_0x2db08a[_0xf2c8('0x2b')]=_[_0xf2c8('0x2d')](db[_0xf2c8('0x43')][_0xf2c8('0x29')]);_0x2db08a[_0xf2c8('0x2c')]=_['keys'](_0x57341b[_0xf2c8('0x2c')]);_0x2db08a['filters']=_[_0xf2c8('0x2e')](_0x2db08a['model'],_0x2db08a[_0xf2c8('0x2c')]);_0x338bb9['attributes']=_[_0xf2c8('0x2e')](_0x2db08a['model'],qs[_0xf2c8('0x30')](_0x57341b[_0xf2c8('0x2c')][_0xf2c8('0x30')]));_0x338bb9[_0xf2c8('0x2f')]=_0x338bb9[_0xf2c8('0x2f')][_0xf2c8('0x44')]?_0x338bb9[_0xf2c8('0x2f')]:_0x2db08a[_0xf2c8('0x2b')];_0x338bb9['order']=qs[_0xf2c8('0x32')](_0x57341b['query'][_0xf2c8('0x32')]);_0x338bb9[_0xf2c8('0x33')]=qs['filters'](_['pick'](_0x57341b[_0xf2c8('0x2c')],_0x2db08a[_0xf2c8('0x34')]));if(_0x57341b[_0xf2c8('0x2c')]['filter']){_0x338bb9[_0xf2c8('0x33')]=_['merge'](_0x338bb9[_0xf2c8('0x33')],{'$or':_['map'](_0x338bb9[_0xf2c8('0x2f')],function(_0x373438){var _0x52e5bc={};_0x52e5bc[_0x373438]={'$like':'%'+_0x57341b[_0xf2c8('0x2c')][_0xf2c8('0x36')]+'%'};return _0x52e5bc;})});}_0x338bb9=_['merge']({},_0x338bb9,_0x57341b[_0xf2c8('0x3c')]);return _0x41e4d0['getConfigurations'](_0x338bb9);}})[_0xf2c8('0x20')](function(_0x23562e){if(_0x23562e){_0x588b01=_0x23562e[_0xf2c8('0x44')];if(!_0x57341b[_0xf2c8('0x2c')][_0xf2c8('0x31')](_0xf2c8('0x45'))){_0x338bb9[_0xf2c8('0x18')]=qs[_0xf2c8('0x18')](_0x57341b[_0xf2c8('0x2c')][_0xf2c8('0x18')]);_0x338bb9[_0xf2c8('0x17')]=qs[_0xf2c8('0x17')](_0x57341b[_0xf2c8('0x2c')][_0xf2c8('0x17')]);}return _0x41e4d0[_0xf2c8('0x46')](_0x338bb9);}})[_0xf2c8('0x20')](function(_0x21478e){if(_0x21478e){return _0x21478e?{'count':_0x588b01,'rows':_0x21478e}:null;}})[_0xf2c8('0x20')](respondWithResult(_0x340fb7,null))[_0xf2c8('0x3e')](handleError(_0x340fb7,null));};exports[_0xf2c8('0x47')]=function(_0x358ae7,_0x317da3,_0x1ca538){if(_0x358ae7[_0xf2c8('0x40')]['id']){delete _0x358ae7[_0xf2c8('0x40')]['id'];}return db[_0xf2c8('0x28')][_0xf2c8('0x42')]({'where':{'id':_0x358ae7['params']['id']}})['then'](handleEntityNotFound(_0x317da3,null))[_0xf2c8('0x20')](function(_0x5eedc2){if(_0x5eedc2){_0x358ae7[_0xf2c8('0x40')]['AccountId']=_0x5eedc2['id'];_0x358ae7[_0xf2c8('0x40')][_0xf2c8('0x48')]=integrations[_0xf2c8('0x49')](_0x358ae7[_0xf2c8('0x40')]['channel'],_0x358ae7[_0xf2c8('0x40')][_0xf2c8('0x4a')]);_0x358ae7['body'][_0xf2c8('0x4b')]=integrations[_0xf2c8('0x4c')](_0x358ae7[_0xf2c8('0x40')][_0xf2c8('0x4d')],_0x358ae7['body'][_0xf2c8('0x4a')]);return db['FreshsalesConfiguration'][_0xf2c8('0x3f')](_0x358ae7[_0xf2c8('0x40')],{'include':[{'model':db['FreshsalesField'],'as':_0xf2c8('0x48')},{'model':db[_0xf2c8('0x4e')],'as':_0xf2c8('0x4b')}]});}return null;})['then'](respondWithResult(_0x317da3,null))[_0xf2c8('0x3e')](handleError(_0x317da3,null));};exports[_0xf2c8('0x4f')]=function(_0x1b1e6b,_0x567045,_0xbb5d60){var _0x55f410='';var _0x5bb542='';return db[_0xf2c8('0x28')][_0xf2c8('0x42')]({'where':{'id':_0x1b1e6b[_0xf2c8('0x3b')]['id']},'attributes':['id',_0xf2c8('0x50'),_0xf2c8('0x51'),_0xf2c8('0x52')]})[_0xf2c8('0x20')](handleEntityNotFound(_0x567045,null))[_0xf2c8('0x20')](function(_0x353fb9){if(_0x353fb9){_0x5bb542=_0x353fb9[_0xf2c8('0x50')];_0x55f410=_0x353fb9[_0xf2c8('0x51')];var _0x34e1d2=_0x353fb9[_0xf2c8('0x51')][_0xf2c8('0x53')](-0x1);if(_0x34e1d2==='/'){_0x55f410=_0x55f410['substring'](0x0,_0x55f410[_0xf2c8('0x54')](_0x34e1d2));}return rp({'method':'GET','uri':util['format'](_0xf2c8('0x55'),_0x55f410,_0xf2c8('0x56')),'headers':{'Authorization':_0xf2c8('0x57')+_0x353fb9[_0xf2c8('0x52')]},'json':!![]});}})[_0xf2c8('0x20')](function(_0x274001){if(_0x274001){var _0x4306ff=_0x274001[_0xf2c8('0x58')];var _0x22e466=![];var _0x13da30=null;for(_0x13da30=0x0;_0x13da30<_0x4306ff[_0xf2c8('0x44')];_0x13da30++){if(_0x4306ff[_0x13da30]['email']===_0x5bb542){_0x22e466=!![];}}if(_0x22e466){return!![];}else{throw new Error({'statusCode':0x194,'message':_0xf2c8('0x59')});}}})[_0xf2c8('0x20')](respondWithResult(_0x567045,null))[_0xf2c8('0x3e')](function(_0x357ea2){var _0x58c407=_0x1b1e6b[_0xf2c8('0x2c')][_0xf2c8('0x5a')]?0x1f4:_0x357ea2[_0xf2c8('0x5b')]||0x1f4;logger[_0xf2c8('0x22')](_0xf2c8('0x5c'),'getFields',_0x58c407,JSON[_0xf2c8('0x5d')](_0x357ea2));delete _0x357ea2['name'];if(_0x58c407===0x191){_0x58c407=0x190;}_0x567045[_0xf2c8('0x14')](_0x58c407)[_0xf2c8('0x25')](_0x1b1e6b[_0xf2c8('0x2c')][_0xf2c8('0x5a')]?{'message':_0xf2c8('0x5e'),'statusCode':_0x357ea2['statusCode']}:_0x357ea2);});};