Built motion from commit 355702c8.|2.5.41
[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 _0x0124=['ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','destroy','then','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','options','includeAll','include','findAll','rows','params','catch','create','body','find','getConfigurations','findOne','FreshsalesConfiguration','order','filter','merge','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','username','remoteUri','lastIndexOf','GET','format','/api/selector/owners','Token\x20token=','apiKey','users','email','Requested\x20Resource\x20not\x20Found','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring'];(function(_0x3403ae,_0x5eb577){var _0x23385c=function(_0x52c421){while(--_0x52c421){_0x3403ae['push'](_0x3403ae['shift']());}};_0x23385c(++_0x5eb577);}(_0x0124,0x1e6));var _0x4012=function(_0xfc9121,_0x38e193){_0xfc9121=_0xfc9121-0x0;var _0x4e9f47=_0x0124[_0xfc9121];return _0x4e9f47;};'use strict';var emlformat=require(_0x4012('0x0'));var rimraf=require(_0x4012('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4012('0x2'));var rp=require(_0x4012('0x3'));var moment=require(_0x4012('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4012('0x5'));var path=require('path');var sox=require(_0x4012('0x6'));var csv=require('to-csv');var ejs=require(_0x4012('0x7'));var fs=require('fs');var fs_extra=require(_0x4012('0x8'));var _=require(_0x4012('0x9'));var squel=require(_0x4012('0xa'));var crypto=require(_0x4012('0xb'));var jsforce=require(_0x4012('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x4012('0xd'));var Papa=require('papaparse');var Redis=require(_0x4012('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4012('0xf'));var logger=require(_0x4012('0x10'))(_0x4012('0x11'));var utils=require(_0x4012('0x12'));var config=require(_0x4012('0x13'));var licenseUtil=require(_0x4012('0x14'));var db=require(_0x4012('0x15'))['db'];var integrations=require(_0x4012('0x16'));function respondWithStatusCode(_0x4491af,_0x2c6754){_0x2c6754=_0x2c6754||0xcc;return function(_0x286fbb){if(_0x286fbb){return _0x4491af[_0x4012('0x17')](_0x2c6754);}return _0x4491af['status'](_0x2c6754)[_0x4012('0x18')]();};}function respondWithResult(_0x53548f,_0x31db84){_0x31db84=_0x31db84||0xc8;return function(_0x2c5869){if(_0x2c5869){return _0x53548f[_0x4012('0x19')](_0x31db84)['json'](_0x2c5869);}};}function respondWithFilteredResult(_0x4909b3,_0x1045b8){return function(_0x210f24){if(_0x210f24){var _0x2112a9=typeof _0x1045b8[_0x4012('0x1a')]===_0x4012('0x1b')&&typeof _0x1045b8[_0x4012('0x1c')]===_0x4012('0x1b');var _0x396aee=_0x210f24[_0x4012('0x1d')];var _0x516719=_0x2112a9?0x0:_0x1045b8[_0x4012('0x1a')];var _0x241dbc=_0x2112a9?_0x210f24[_0x4012('0x1d')]:_0x1045b8[_0x4012('0x1a')]+_0x1045b8[_0x4012('0x1c')];var _0x2006dd;if(_0x241dbc>=_0x396aee){_0x241dbc=_0x396aee;_0x2006dd=0xc8;}else{_0x2006dd=0xce;}_0x4909b3['status'](_0x2006dd);return _0x4909b3[_0x4012('0x1e')](_0x4012('0x1f'),_0x516719+'-'+_0x241dbc+'/'+_0x396aee)[_0x4012('0x20')](_0x210f24);}return null;};}function patchUpdates(_0x4ce082){return function(_0x35fa5d){try{jsonpatch[_0x4012('0x21')](_0x35fa5d,_0x4ce082,!![]);}catch(_0xf72e74){return BPromise['reject'](_0xf72e74);}return _0x35fa5d[_0x4012('0x22')]();};}function saveUpdates(_0x3ff111,_0xf8175c){return function(_0x5a7102){if(_0x5a7102){return _0x5a7102['update'](_0x3ff111)['then'](function(_0x4d389e){return _0x4d389e;});}return null;};}function removeEntity(_0x4014a5,_0xedef04){return function(_0x5fc2d){if(_0x5fc2d){return _0x5fc2d[_0x4012('0x23')]()[_0x4012('0x24')](function(){_0x4014a5['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1f02e1,_0x3895f7){return function(_0x103e32){if(!_0x103e32){_0x1f02e1[_0x4012('0x17')](0x194);}return _0x103e32;};}function handleError(_0x41e2fc,_0x4d8566){_0x4d8566=_0x4d8566||0x1f4;return function(_0x5ce32f){logger['error'](_0x5ce32f['stack']);if(_0x5ce32f[_0x4012('0x25')]){delete _0x5ce32f[_0x4012('0x25')];}_0x41e2fc[_0x4012('0x19')](_0x4d8566)[_0x4012('0x26')](_0x5ce32f);};}exports[_0x4012('0x27')]=function(_0x3b707c,_0x584da9){var _0x3b6c49={},_0x5cd7a2={},_0x12066e={'count':0x0,'rows':[]};var _0x392ce6=_[_0x4012('0x28')](db[_0x4012('0x29')][_0x4012('0x2a')],function(_0x49ef55){return{'name':_0x49ef55[_0x4012('0x2b')],'type':_0x49ef55[_0x4012('0x2c')][_0x4012('0x2d')]};});_0x5cd7a2[_0x4012('0x2e')]=_[_0x4012('0x28')](_0x392ce6,'name');_0x5cd7a2[_0x4012('0x2f')]=_[_0x4012('0x30')](_0x3b707c[_0x4012('0x2f')]);_0x5cd7a2[_0x4012('0x31')]=_[_0x4012('0x32')](_0x5cd7a2[_0x4012('0x2e')],_0x5cd7a2['query']);_0x3b6c49[_0x4012('0x33')]=_[_0x4012('0x32')](_0x5cd7a2['model'],qs[_0x4012('0x34')](_0x3b707c[_0x4012('0x2f')][_0x4012('0x34')]));_0x3b6c49['attributes']=_0x3b6c49[_0x4012('0x33')][_0x4012('0x35')]?_0x3b6c49[_0x4012('0x33')]:_0x5cd7a2[_0x4012('0x2e')];if(!_0x3b707c[_0x4012('0x2f')][_0x4012('0x36')](_0x4012('0x37'))){_0x3b6c49[_0x4012('0x1c')]=qs[_0x4012('0x1c')](_0x3b707c[_0x4012('0x2f')][_0x4012('0x1c')]);_0x3b6c49[_0x4012('0x1a')]=qs[_0x4012('0x1a')](_0x3b707c[_0x4012('0x2f')][_0x4012('0x1a')]);}_0x3b6c49['order']=qs[_0x4012('0x38')](_0x3b707c['query'][_0x4012('0x38')]);_0x3b6c49[_0x4012('0x39')]=qs['filters'](_[_0x4012('0x3a')](_0x3b707c['query'],_0x5cd7a2[_0x4012('0x31')]),_0x392ce6);if(_0x3b707c[_0x4012('0x2f')]['filter']){_0x3b6c49[_0x4012('0x39')]=_['merge'](_0x3b6c49['where'],{'$or':_[_0x4012('0x28')](_0x392ce6,function(_0x30d771){if(_0x30d771['type']!==_0x4012('0x3b')){var _0x1bafcd={};_0x1bafcd[_0x30d771[_0x4012('0x25')]]={'$like':'%'+_0x3b707c[_0x4012('0x2f')]['filter']+'%'};return _0x1bafcd;}})});}_0x3b6c49=_['merge']({},_0x3b6c49,_0x3b707c[_0x4012('0x3c')]);var _0x5622c3={'where':_0x3b6c49['where']};return db[_0x4012('0x29')][_0x4012('0x1d')](_0x5622c3)[_0x4012('0x24')](function(_0xd21f6e){_0x12066e[_0x4012('0x1d')]=_0xd21f6e;if(_0x3b707c[_0x4012('0x2f')][_0x4012('0x3d')]){_0x3b6c49[_0x4012('0x3e')]=[{'all':!![]}];}return db['FreshsalesAccount'][_0x4012('0x3f')](_0x3b6c49);})[_0x4012('0x24')](function(_0x491573){_0x12066e[_0x4012('0x40')]=_0x491573;return _0x12066e;})[_0x4012('0x24')](respondWithFilteredResult(_0x584da9,_0x3b6c49))['catch'](handleError(_0x584da9,null));};exports['show']=function(_0x46aad3,_0x25969b){var _0x238cf2={'raw':![],'where':{'id':_0x46aad3[_0x4012('0x41')]['id']}},_0x6c273f={};_0x6c273f[_0x4012('0x2e')]=_[_0x4012('0x30')](db['FreshsalesAccount']['rawAttributes']);_0x6c273f['query']=_[_0x4012('0x30')](_0x46aad3['query']);_0x6c273f['filters']=_[_0x4012('0x32')](_0x6c273f[_0x4012('0x2e')],_0x6c273f[_0x4012('0x2f')]);_0x238cf2[_0x4012('0x33')]=_[_0x4012('0x32')](_0x6c273f[_0x4012('0x2e')],qs['fields'](_0x46aad3[_0x4012('0x2f')][_0x4012('0x34')]));_0x238cf2[_0x4012('0x33')]=_0x238cf2[_0x4012('0x33')][_0x4012('0x35')]?_0x238cf2[_0x4012('0x33')]:_0x6c273f[_0x4012('0x2e')];if(_0x46aad3[_0x4012('0x2f')][_0x4012('0x3d')]){_0x238cf2[_0x4012('0x3e')]=[{'all':!![]}];}_0x238cf2=_['merge']({},_0x238cf2,_0x46aad3[_0x4012('0x3c')]);return db[_0x4012('0x29')]['find'](_0x238cf2)[_0x4012('0x24')](handleEntityNotFound(_0x25969b,null))[_0x4012('0x24')](respondWithResult(_0x25969b,null))[_0x4012('0x42')](handleError(_0x25969b,null));};exports[_0x4012('0x43')]=function(_0x22515e,_0x481a24){return db[_0x4012('0x29')][_0x4012('0x43')](_0x22515e[_0x4012('0x44')],{})[_0x4012('0x24')](respondWithResult(_0x481a24,0xc9))[_0x4012('0x42')](handleError(_0x481a24,null));};exports['update']=function(_0x5ee7c7,_0x57c325){if(_0x5ee7c7['body']['id']){delete _0x5ee7c7['body']['id'];}return db[_0x4012('0x29')][_0x4012('0x45')]({'where':{'id':_0x5ee7c7[_0x4012('0x41')]['id']}})[_0x4012('0x24')](handleEntityNotFound(_0x57c325,null))['then'](saveUpdates(_0x5ee7c7[_0x4012('0x44')],null))[_0x4012('0x24')](respondWithResult(_0x57c325,null))[_0x4012('0x42')](handleError(_0x57c325,null));};exports[_0x4012('0x23')]=function(_0x3e7f53,_0x11dad8){return db[_0x4012('0x29')][_0x4012('0x45')]({'where':{'id':_0x3e7f53[_0x4012('0x41')]['id']}})['then'](handleEntityNotFound(_0x11dad8,null))[_0x4012('0x24')](removeEntity(_0x11dad8,null))[_0x4012('0x42')](handleError(_0x11dad8,null));};exports[_0x4012('0x46')]=function(_0x4669a7,_0x7c2343,_0x23bb6e){var _0x32971d={};var _0x16d7f0={};var _0x552f71;var _0x5a9d36;return db[_0x4012('0x29')][_0x4012('0x47')]({'where':{'id':_0x4669a7['params']['id']}})[_0x4012('0x24')](handleEntityNotFound(_0x7c2343,null))[_0x4012('0x24')](function(_0x395eb6){if(_0x395eb6){_0x552f71=_0x395eb6;_0x16d7f0[_0x4012('0x2e')]=_[_0x4012('0x30')](db[_0x4012('0x48')][_0x4012('0x2a')]);_0x16d7f0[_0x4012('0x2f')]=_[_0x4012('0x30')](_0x4669a7[_0x4012('0x2f')]);_0x16d7f0[_0x4012('0x31')]=_[_0x4012('0x32')](_0x16d7f0[_0x4012('0x2e')],_0x16d7f0[_0x4012('0x2f')]);_0x32971d['attributes']=_[_0x4012('0x32')](_0x16d7f0[_0x4012('0x2e')],qs['fields'](_0x4669a7[_0x4012('0x2f')][_0x4012('0x34')]));_0x32971d[_0x4012('0x33')]=_0x32971d[_0x4012('0x33')][_0x4012('0x35')]?_0x32971d[_0x4012('0x33')]:_0x16d7f0['model'];_0x32971d[_0x4012('0x49')]=qs['sort'](_0x4669a7[_0x4012('0x2f')][_0x4012('0x38')]);_0x32971d[_0x4012('0x39')]=qs[_0x4012('0x31')](_['pick'](_0x4669a7[_0x4012('0x2f')],_0x16d7f0['filters']));if(_0x4669a7[_0x4012('0x2f')][_0x4012('0x4a')]){_0x32971d[_0x4012('0x39')]=_[_0x4012('0x4b')](_0x32971d[_0x4012('0x39')],{'$or':_[_0x4012('0x28')](_0x32971d['attributes'],function(_0x1d1eb4){var _0x4a310e={};_0x4a310e[_0x1d1eb4]={'$like':'%'+_0x4669a7[_0x4012('0x2f')][_0x4012('0x4a')]+'%'};return _0x4a310e;})});}_0x32971d=_[_0x4012('0x4b')]({},_0x32971d,_0x4669a7[_0x4012('0x3c')]);return _0x552f71[_0x4012('0x46')](_0x32971d);}})[_0x4012('0x24')](function(_0x1d1484){if(_0x1d1484){_0x5a9d36=_0x1d1484[_0x4012('0x35')];if(!_0x4669a7[_0x4012('0x2f')]['hasOwnProperty'](_0x4012('0x37'))){_0x32971d['limit']=qs['limit'](_0x4669a7[_0x4012('0x2f')][_0x4012('0x1c')]);_0x32971d['offset']=qs['offset'](_0x4669a7[_0x4012('0x2f')][_0x4012('0x1a')]);}return _0x552f71['getConfigurations'](_0x32971d);}})[_0x4012('0x24')](function(_0x6903eb){if(_0x6903eb){return _0x6903eb?{'count':_0x5a9d36,'rows':_0x6903eb}:null;}})[_0x4012('0x24')](respondWithResult(_0x7c2343,null))[_0x4012('0x42')](handleError(_0x7c2343,null));};exports[_0x4012('0x4c')]=function(_0x508e9a,_0x39e923,_0x17412c){if(_0x508e9a['body']['id']){delete _0x508e9a[_0x4012('0x44')]['id'];}return db[_0x4012('0x29')]['findOne']({'where':{'id':_0x508e9a[_0x4012('0x41')]['id']}})[_0x4012('0x24')](handleEntityNotFound(_0x39e923,null))['then'](function(_0x4942a6){if(_0x4942a6){_0x508e9a[_0x4012('0x44')]['AccountId']=_0x4942a6['id'];_0x508e9a[_0x4012('0x44')][_0x4012('0x4d')]=integrations[_0x4012('0x4e')](_0x508e9a['body'][_0x4012('0x4f')],_0x508e9a[_0x4012('0x44')][_0x4012('0x2c')]);_0x508e9a[_0x4012('0x44')][_0x4012('0x50')]=integrations[_0x4012('0x51')](_0x508e9a[_0x4012('0x44')]['channel'],_0x508e9a[_0x4012('0x44')][_0x4012('0x2c')]);return db[_0x4012('0x48')][_0x4012('0x43')](_0x508e9a[_0x4012('0x44')],{'include':[{'model':db[_0x4012('0x52')],'as':_0x4012('0x4d')},{'model':db[_0x4012('0x52')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x39e923,null))[_0x4012('0x42')](handleError(_0x39e923,null));};exports[_0x4012('0x53')]=function(_0x590f63,_0x30f1ae,_0x41016b){var _0x3489ac='';var _0x3a9d3d='';return db[_0x4012('0x29')][_0x4012('0x47')]({'where':{'id':_0x590f63[_0x4012('0x41')]['id']},'attributes':['id',_0x4012('0x54'),_0x4012('0x55'),'apiKey']})[_0x4012('0x24')](handleEntityNotFound(_0x30f1ae,null))[_0x4012('0x24')](function(_0x5256b4){if(_0x5256b4){_0x3a9d3d=_0x5256b4['username'];_0x3489ac=_0x5256b4[_0x4012('0x55')];var _0x197655=_0x5256b4[_0x4012('0x55')]['slice'](-0x1);if(_0x197655==='/'){_0x3489ac=_0x3489ac['substring'](0x0,_0x3489ac[_0x4012('0x56')](_0x197655));}return rp({'method':_0x4012('0x57'),'uri':util[_0x4012('0x58')]('%s%s',_0x3489ac,_0x4012('0x59')),'headers':{'Authorization':_0x4012('0x5a')+_0x5256b4[_0x4012('0x5b')]},'json':!![]});}})[_0x4012('0x24')](function(_0x133578){if(_0x133578){var _0x365130=_0x133578[_0x4012('0x5c')];var _0x33f753=![];var _0xe495a3=null;for(_0xe495a3=0x0;_0xe495a3<_0x365130[_0x4012('0x35')];_0xe495a3++){if(_0x365130[_0xe495a3][_0x4012('0x5d')]===_0x3a9d3d){_0x33f753=!![];}}if(_0x33f753){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x4012('0x5e')});}}})['then'](respondWithResult(_0x30f1ae,null))[_0x4012('0x42')](function(_0x57ade4){var _0x3096e4=_0x590f63[_0x4012('0x2f')][_0x4012('0x5f')]?0x1f4:_0x57ade4['statusCode']||0x1f4;logger[_0x4012('0x60')](_0x4012('0x61'),'getFields',_0x3096e4,JSON[_0x4012('0x62')](_0x57ade4));delete _0x57ade4[_0x4012('0x25')];if(_0x3096e4===0x191){_0x3096e4=0x190;}_0x30f1ae['status'](_0x3096e4)['send'](_0x590f63[_0x4012('0x2f')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x57ade4[_0x4012('0x63')]}:_0x57ade4);});};