fcb3a38b4c6dd7366429d9563c3ce59519130c46
[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 _0xdd00=['sox','ejs','fs-extra','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','status','json','undefined','limit','offset','set','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','merge','options','where','FreshsalesAccount','count','findAll','rows','catch','show','includeAll','include','find','create','body','params','destroy','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','getFields','username','remoteUri','slice','substring','GET','format','/api/selector/owners','apiKey','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xdd00,0x19d));var _0x0dd0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdd00[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0dd0('0x0'));var jsonpatch=require(_0x0dd0('0x1'));var rp=require(_0x0dd0('0x2'));var moment=require(_0x0dd0('0x3'));var BPromise=require(_0x0dd0('0x4'));var Mustache=require('mustache');var util=require(_0x0dd0('0x5'));var path=require(_0x0dd0('0x6'));var sox=require(_0x0dd0('0x7'));var csv=require('to-csv');var ejs=require(_0x0dd0('0x8'));var fs=require('fs');var fs_extra=require(_0x0dd0('0x9'));var _=require('lodash');var squel=require(_0x0dd0('0xa'));var crypto=require('crypto');var jsforce=require(_0x0dd0('0xb'));var deskjs=require(_0x0dd0('0xc'));var toCsv=require(_0x0dd0('0xd'));var querystring=require(_0x0dd0('0xe'));var Papa=require(_0x0dd0('0xf'));var Redis=require(_0x0dd0('0x10'));var authService=require(_0x0dd0('0x11'));var qs=require(_0x0dd0('0x12'));var as=require(_0x0dd0('0x13'));var hardwareService=require(_0x0dd0('0x14'));var logger=require('../../config/logger')(_0x0dd0('0x15'));var utils=require(_0x0dd0('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0dd0('0x17'));var db=require(_0x0dd0('0x18'))['db'];var integrations=require(_0x0dd0('0x19'));function respondWithStatusCode(_0x4e668b,_0x3a446c){_0x3a446c=_0x3a446c||0xcc;return function(_0x46b442){if(_0x46b442){return _0x4e668b['sendStatus'](_0x3a446c);}return _0x4e668b['status'](_0x3a446c)[_0x0dd0('0x1a')]();};}function respondWithResult(_0x893503,_0x2892f6){_0x2892f6=_0x2892f6||0xc8;return function(_0x52cf62){if(_0x52cf62){return _0x893503[_0x0dd0('0x1b')](_0x2892f6)[_0x0dd0('0x1c')](_0x52cf62);}};}function respondWithFilteredResult(_0x52ce36,_0xcfeb95){return function(_0x63d317){if(_0x63d317){var _0x43533b=typeof _0xcfeb95['offset']===_0x0dd0('0x1d')&&typeof _0xcfeb95[_0x0dd0('0x1e')]===_0x0dd0('0x1d');var _0x2e2dab=_0x63d317['count'];var _0x1435e9=_0x43533b?0x0:_0xcfeb95[_0x0dd0('0x1f')];var _0x510405=_0x43533b?_0x63d317['count']:_0xcfeb95[_0x0dd0('0x1f')]+_0xcfeb95['limit'];var _0x347cca;if(_0x510405>=_0x2e2dab){_0x510405=_0x2e2dab;_0x347cca=0xc8;}else{_0x347cca=0xce;}_0x52ce36[_0x0dd0('0x1b')](_0x347cca);return _0x52ce36[_0x0dd0('0x20')]('Content-Range',_0x1435e9+'-'+_0x510405+'/'+_0x2e2dab)[_0x0dd0('0x1c')](_0x63d317);}return null;};}function patchUpdates(_0x3cf5d2){return function(_0x308a5b){try{jsonpatch[_0x0dd0('0x21')](_0x308a5b,_0x3cf5d2,!![]);}catch(_0x21d23c){return BPromise[_0x0dd0('0x22')](_0x21d23c);}return _0x308a5b[_0x0dd0('0x23')]();};}function saveUpdates(_0x181480,_0x434b85){return function(_0x49910c){if(_0x49910c){return _0x49910c[_0x0dd0('0x24')](_0x181480)[_0x0dd0('0x25')](function(_0x1ac32b){return _0x1ac32b;});}return null;};}function removeEntity(_0x1bd2fd,_0x4679b3){return function(_0x1689e2){if(_0x1689e2){return _0x1689e2['destroy']()[_0x0dd0('0x25')](function(){_0x1bd2fd['status'](0xcc)[_0x0dd0('0x1a')]();});}};}function handleEntityNotFound(_0x449af9,_0x4d4f01){return function(_0x25aebe){if(!_0x25aebe){_0x449af9[_0x0dd0('0x26')](0x194);}return _0x25aebe;};}function handleError(_0x563a73,_0x5174d5){_0x5174d5=_0x5174d5||0x1f4;return function(_0x3ba7cf){logger[_0x0dd0('0x27')](_0x3ba7cf[_0x0dd0('0x28')]);if(_0x3ba7cf[_0x0dd0('0x29')]){delete _0x3ba7cf[_0x0dd0('0x29')];}_0x563a73['status'](_0x5174d5)[_0x0dd0('0x2a')](_0x3ba7cf);};}exports[_0x0dd0('0x2b')]=function(_0x2495cf,_0x2a1b73){var _0x5eefbd={},_0x4959cb={},_0x5df5c5={'count':0x0,'rows':[]};var _0x305d70=_[_0x0dd0('0x2c')](db['FreshsalesAccount'][_0x0dd0('0x2d')],function(_0x463bfc){return{'name':_0x463bfc[_0x0dd0('0x2e')],'type':_0x463bfc[_0x0dd0('0x2f')][_0x0dd0('0x30')]};});_0x4959cb[_0x0dd0('0x31')]=_[_0x0dd0('0x2c')](_0x305d70,_0x0dd0('0x29'));_0x4959cb[_0x0dd0('0x32')]=_[_0x0dd0('0x33')](_0x2495cf[_0x0dd0('0x32')]);_0x4959cb[_0x0dd0('0x34')]=_[_0x0dd0('0x35')](_0x4959cb[_0x0dd0('0x31')],_0x4959cb[_0x0dd0('0x32')]);_0x5eefbd[_0x0dd0('0x36')]=_[_0x0dd0('0x35')](_0x4959cb[_0x0dd0('0x31')],qs[_0x0dd0('0x37')](_0x2495cf[_0x0dd0('0x32')][_0x0dd0('0x37')]));_0x5eefbd[_0x0dd0('0x36')]=_0x5eefbd[_0x0dd0('0x36')][_0x0dd0('0x38')]?_0x5eefbd[_0x0dd0('0x36')]:_0x4959cb[_0x0dd0('0x31')];if(!_0x2495cf[_0x0dd0('0x32')][_0x0dd0('0x39')](_0x0dd0('0x3a'))){_0x5eefbd['limit']=qs['limit'](_0x2495cf['query'][_0x0dd0('0x1e')]);_0x5eefbd[_0x0dd0('0x1f')]=qs[_0x0dd0('0x1f')](_0x2495cf[_0x0dd0('0x32')][_0x0dd0('0x1f')]);}_0x5eefbd['order']=qs[_0x0dd0('0x3b')](_0x2495cf['query'][_0x0dd0('0x3b')]);_0x5eefbd['where']=qs['filters'](_[_0x0dd0('0x3c')](_0x2495cf[_0x0dd0('0x32')],_0x4959cb['filters']),_0x305d70);if(_0x2495cf[_0x0dd0('0x32')][_0x0dd0('0x3d')]){_0x5eefbd['where']=_[_0x0dd0('0x3e')](_0x5eefbd['where'],{'$or':_[_0x0dd0('0x2c')](_0x305d70,function(_0xe38247){if(_0xe38247[_0x0dd0('0x2f')]!=='VIRTUAL'){var _0x5c13a6={};_0x5c13a6[_0xe38247[_0x0dd0('0x29')]]={'$like':'%'+_0x2495cf[_0x0dd0('0x32')][_0x0dd0('0x3d')]+'%'};return _0x5c13a6;}})});}_0x5eefbd=_[_0x0dd0('0x3e')]({},_0x5eefbd,_0x2495cf[_0x0dd0('0x3f')]);var _0x53b9bc={'where':_0x5eefbd[_0x0dd0('0x40')]};return db[_0x0dd0('0x41')][_0x0dd0('0x42')](_0x53b9bc)[_0x0dd0('0x25')](function(_0x43ac5a){_0x5df5c5[_0x0dd0('0x42')]=_0x43ac5a;if(_0x2495cf[_0x0dd0('0x32')]['includeAll']){_0x5eefbd['include']=[{'all':!![]}];}return db[_0x0dd0('0x41')][_0x0dd0('0x43')](_0x5eefbd);})[_0x0dd0('0x25')](function(_0x117b82){_0x5df5c5[_0x0dd0('0x44')]=_0x117b82;return _0x5df5c5;})[_0x0dd0('0x25')](respondWithFilteredResult(_0x2a1b73,_0x5eefbd))[_0x0dd0('0x45')](handleError(_0x2a1b73,null));};exports[_0x0dd0('0x46')]=function(_0x32a2ac,_0x55945d){var _0x327cfa={'raw':![],'where':{'id':_0x32a2ac['params']['id']}},_0x56326b={};_0x56326b[_0x0dd0('0x31')]=_[_0x0dd0('0x33')](db[_0x0dd0('0x41')]['rawAttributes']);_0x56326b['query']=_['keys'](_0x32a2ac[_0x0dd0('0x32')]);_0x56326b[_0x0dd0('0x34')]=_[_0x0dd0('0x35')](_0x56326b['model'],_0x56326b[_0x0dd0('0x32')]);_0x327cfa[_0x0dd0('0x36')]=_[_0x0dd0('0x35')](_0x56326b[_0x0dd0('0x31')],qs[_0x0dd0('0x37')](_0x32a2ac[_0x0dd0('0x32')][_0x0dd0('0x37')]));_0x327cfa['attributes']=_0x327cfa[_0x0dd0('0x36')][_0x0dd0('0x38')]?_0x327cfa[_0x0dd0('0x36')]:_0x56326b['model'];if(_0x32a2ac[_0x0dd0('0x32')][_0x0dd0('0x47')]){_0x327cfa[_0x0dd0('0x48')]=[{'all':!![]}];}_0x327cfa=_[_0x0dd0('0x3e')]({},_0x327cfa,_0x32a2ac[_0x0dd0('0x3f')]);return db[_0x0dd0('0x41')][_0x0dd0('0x49')](_0x327cfa)[_0x0dd0('0x25')](handleEntityNotFound(_0x55945d,null))['then'](respondWithResult(_0x55945d,null))['catch'](handleError(_0x55945d,null));};exports['create']=function(_0x1a6921,_0x423532){return db[_0x0dd0('0x41')][_0x0dd0('0x4a')](_0x1a6921[_0x0dd0('0x4b')],{})[_0x0dd0('0x25')](respondWithResult(_0x423532,0xc9))[_0x0dd0('0x45')](handleError(_0x423532,null));};exports['update']=function(_0x5556e8,_0x27ce6e){if(_0x5556e8['body']['id']){delete _0x5556e8['body']['id'];}return db[_0x0dd0('0x41')][_0x0dd0('0x49')]({'where':{'id':_0x5556e8[_0x0dd0('0x4c')]['id']}})[_0x0dd0('0x25')](handleEntityNotFound(_0x27ce6e,null))[_0x0dd0('0x25')](saveUpdates(_0x5556e8[_0x0dd0('0x4b')],null))[_0x0dd0('0x25')](respondWithResult(_0x27ce6e,null))[_0x0dd0('0x45')](handleError(_0x27ce6e,null));};exports[_0x0dd0('0x4d')]=function(_0x5961e4,_0x125ea4){return db[_0x0dd0('0x41')][_0x0dd0('0x49')]({'where':{'id':_0x5961e4[_0x0dd0('0x4c')]['id']}})[_0x0dd0('0x25')](handleEntityNotFound(_0x125ea4,null))[_0x0dd0('0x25')](removeEntity(_0x125ea4,null))[_0x0dd0('0x45')](handleError(_0x125ea4,null));};exports[_0x0dd0('0x4e')]=function(_0x1122d3,_0x49c5d3,_0x228aab){var _0x3cb136={};var _0x5433b6={};var _0x2db552;var _0x13b714;return db[_0x0dd0('0x41')][_0x0dd0('0x4f')]({'where':{'id':_0x1122d3[_0x0dd0('0x4c')]['id']}})[_0x0dd0('0x25')](handleEntityNotFound(_0x49c5d3,null))[_0x0dd0('0x25')](function(_0x3778cf){if(_0x3778cf){_0x2db552=_0x3778cf;_0x5433b6['model']=_['keys'](db[_0x0dd0('0x50')]['rawAttributes']);_0x5433b6['query']=_[_0x0dd0('0x33')](_0x1122d3['query']);_0x5433b6['filters']=_[_0x0dd0('0x35')](_0x5433b6[_0x0dd0('0x31')],_0x5433b6[_0x0dd0('0x32')]);_0x3cb136[_0x0dd0('0x36')]=_['intersection'](_0x5433b6[_0x0dd0('0x31')],qs[_0x0dd0('0x37')](_0x1122d3['query']['fields']));_0x3cb136['attributes']=_0x3cb136[_0x0dd0('0x36')][_0x0dd0('0x38')]?_0x3cb136[_0x0dd0('0x36')]:_0x5433b6[_0x0dd0('0x31')];_0x3cb136['order']=qs[_0x0dd0('0x3b')](_0x1122d3[_0x0dd0('0x32')]['sort']);_0x3cb136[_0x0dd0('0x40')]=qs['filters'](_[_0x0dd0('0x3c')](_0x1122d3['query'],_0x5433b6['filters']));if(_0x1122d3[_0x0dd0('0x32')][_0x0dd0('0x3d')]){_0x3cb136[_0x0dd0('0x40')]=_[_0x0dd0('0x3e')](_0x3cb136['where'],{'$or':_[_0x0dd0('0x2c')](_0x3cb136[_0x0dd0('0x36')],function(_0x53e179){var _0x32beac={};_0x32beac[_0x53e179]={'$like':'%'+_0x1122d3[_0x0dd0('0x32')][_0x0dd0('0x3d')]+'%'};return _0x32beac;})});}_0x3cb136=_[_0x0dd0('0x3e')]({},_0x3cb136,_0x1122d3[_0x0dd0('0x3f')]);return _0x2db552['getConfigurations'](_0x3cb136);}})[_0x0dd0('0x25')](function(_0x2b1021){if(_0x2b1021){_0x13b714=_0x2b1021[_0x0dd0('0x38')];if(!_0x1122d3['query'][_0x0dd0('0x39')](_0x0dd0('0x3a'))){_0x3cb136[_0x0dd0('0x1e')]=qs['limit'](_0x1122d3[_0x0dd0('0x32')][_0x0dd0('0x1e')]);_0x3cb136['offset']=qs['offset'](_0x1122d3['query']['offset']);}return _0x2db552[_0x0dd0('0x4e')](_0x3cb136);}})[_0x0dd0('0x25')](function(_0x52036e){if(_0x52036e){return _0x52036e?{'count':_0x13b714,'rows':_0x52036e}:null;}})[_0x0dd0('0x25')](respondWithResult(_0x49c5d3,null))[_0x0dd0('0x45')](handleError(_0x49c5d3,null));};exports[_0x0dd0('0x51')]=function(_0x1c6843,_0x4aef33,_0x12267a){if(_0x1c6843['body']['id']){delete _0x1c6843[_0x0dd0('0x4b')]['id'];}return db[_0x0dd0('0x41')][_0x0dd0('0x4f')]({'where':{'id':_0x1c6843['params']['id']}})[_0x0dd0('0x25')](handleEntityNotFound(_0x4aef33,null))['then'](function(_0x459718){if(_0x459718){_0x1c6843[_0x0dd0('0x4b')][_0x0dd0('0x52')]=_0x459718['id'];_0x1c6843[_0x0dd0('0x4b')][_0x0dd0('0x53')]=integrations[_0x0dd0('0x54')](_0x1c6843[_0x0dd0('0x4b')][_0x0dd0('0x55')],_0x1c6843[_0x0dd0('0x4b')][_0x0dd0('0x2f')]);_0x1c6843[_0x0dd0('0x4b')]['Descriptions']=integrations[_0x0dd0('0x56')](_0x1c6843[_0x0dd0('0x4b')]['channel'],_0x1c6843[_0x0dd0('0x4b')][_0x0dd0('0x2f')]);return db['FreshsalesConfiguration'][_0x0dd0('0x4a')](_0x1c6843[_0x0dd0('0x4b')],{'include':[{'model':db[_0x0dd0('0x57')],'as':_0x0dd0('0x53')},{'model':db['FreshsalesField'],'as':_0x0dd0('0x58')}]});}return null;})[_0x0dd0('0x25')](respondWithResult(_0x4aef33,null))[_0x0dd0('0x45')](handleError(_0x4aef33,null));};exports[_0x0dd0('0x59')]=function(_0x311710,_0x369c34,_0x33ad47){var _0xde44f2='';var _0x78e064='';return db['FreshsalesAccount'][_0x0dd0('0x4f')]({'where':{'id':_0x311710[_0x0dd0('0x4c')]['id']},'attributes':['id',_0x0dd0('0x5a'),'remoteUri','apiKey']})[_0x0dd0('0x25')](handleEntityNotFound(_0x369c34,null))[_0x0dd0('0x25')](function(_0x24d970){if(_0x24d970){_0x78e064=_0x24d970[_0x0dd0('0x5a')];_0xde44f2=_0x24d970['remoteUri'];var _0x4b0378=_0x24d970[_0x0dd0('0x5b')][_0x0dd0('0x5c')](-0x1);if(_0x4b0378==='/'){_0xde44f2=_0xde44f2[_0x0dd0('0x5d')](0x0,_0xde44f2['lastIndexOf'](_0x4b0378));}return rp({'method':_0x0dd0('0x5e'),'uri':util[_0x0dd0('0x5f')]('%s%s',_0xde44f2,_0x0dd0('0x60')),'headers':{'Authorization':'Token\x20token='+_0x24d970[_0x0dd0('0x61')]},'json':!![]});}})[_0x0dd0('0x25')](function(_0x20d967){if(_0x20d967){var _0x448061=_0x20d967[_0x0dd0('0x62')];var _0x2e56fb=![];var _0x18c519=null;for(_0x18c519=0x0;_0x18c519<_0x448061[_0x0dd0('0x38')];_0x18c519++){if(_0x448061[_0x18c519][_0x0dd0('0x63')]===_0x78e064){_0x2e56fb=!![];}}if(_0x2e56fb){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x0dd0('0x64')});}}})['then'](respondWithResult(_0x369c34,null))[_0x0dd0('0x45')](function(_0x1681aa){var _0x4b6991=_0x311710[_0x0dd0('0x32')][_0x0dd0('0x65')]?0x1f4:_0x1681aa[_0x0dd0('0x66')]||0x1f4;logger[_0x0dd0('0x27')](_0x0dd0('0x67'),'getFields',_0x4b6991,JSON[_0x0dd0('0x68')](_0x1681aa));delete _0x1681aa['name'];if(_0x4b6991===0x191){_0x4b6991=0x190;}_0x369c34['status'](_0x4b6991)[_0x0dd0('0x2a')](_0x311710[_0x0dd0('0x32')][_0x0dd0('0x65')]?{'message':'Wrong\x20credentials','statusCode':_0x1681aa[_0x0dd0('0x66')]}:_0x1681aa);});};