f3e467ec3e151629a380679d042ef33282ed3123
[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 _0xc730=['../../mysqldb','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','reject','update','then','destroy','error','stack','name','send','index','map','FreshsalesAccount','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','rawAttributes','create','body','find','params','getConfigurations','FreshsalesConfiguration','findOne','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','remoteUri','apiKey','username','slice','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','Token\x20token=','users','email','Requested\x20Resource\x20not\x20Found','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util'];(function(_0x473463,_0x21da73){var _0x42f406=function(_0x34a5be){while(--_0x34a5be){_0x473463['push'](_0x473463['shift']());}};_0x42f406(++_0x21da73);}(_0xc730,0xba));var _0x0c73=function(_0x4f7da9,_0x2cb723){_0x4f7da9=_0x4f7da9-0x0;var _0x500d39=_0xc730[_0x4f7da9];return _0x500d39;};'use strict';var emlformat=require(_0x0c73('0x0'));var rimraf=require(_0x0c73('0x1'));var zipdir=require(_0x0c73('0x2'));var jsonpatch=require(_0x0c73('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0c73('0x4'));var Mustache=require(_0x0c73('0x5'));var util=require(_0x0c73('0x6'));var path=require('path');var sox=require(_0x0c73('0x7'));var csv=require(_0x0c73('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0c73('0x9'));var _=require(_0x0c73('0xa'));var squel=require(_0x0c73('0xb'));var crypto=require(_0x0c73('0xc'));var jsforce=require(_0x0c73('0xd'));var deskjs=require(_0x0c73('0xe'));var toCsv=require(_0x0c73('0x8'));var querystring=require(_0x0c73('0xf'));var Papa=require(_0x0c73('0x10'));var Redis=require(_0x0c73('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x0c73('0x12'));var as=require(_0x0c73('0x13'));var hardwareService=require(_0x0c73('0x14'));var logger=require(_0x0c73('0x15'))(_0x0c73('0x16'));var utils=require(_0x0c73('0x17'));var config=require(_0x0c73('0x18'));var licenseUtil=require(_0x0c73('0x19'));var db=require(_0x0c73('0x1a'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0xcb3e6f,_0x80ade1){_0x80ade1=_0x80ade1||0xcc;return function(_0x5c4935){if(_0x5c4935){return _0xcb3e6f[_0x0c73('0x1b')](_0x80ade1);}return _0xcb3e6f[_0x0c73('0x1c')](_0x80ade1)['end']();};}function respondWithResult(_0x4af531,_0x1e7b42){_0x1e7b42=_0x1e7b42||0xc8;return function(_0x2b16a7){if(_0x2b16a7){return _0x4af531[_0x0c73('0x1c')](_0x1e7b42)['json'](_0x2b16a7);}};}function respondWithFilteredResult(_0x737393,_0x30df45){return function(_0x2fa587){if(_0x2fa587){var _0xdfe643=typeof _0x30df45[_0x0c73('0x1d')]===_0x0c73('0x1e')&&typeof _0x30df45[_0x0c73('0x1f')]===_0x0c73('0x1e');var _0x37a73e=_0x2fa587[_0x0c73('0x20')];var _0x2de653=_0xdfe643?0x0:_0x30df45[_0x0c73('0x1d')];var _0x115896=_0xdfe643?_0x2fa587[_0x0c73('0x20')]:_0x30df45[_0x0c73('0x1d')]+_0x30df45['limit'];var _0x5af00e;if(_0x115896>=_0x37a73e){_0x115896=_0x37a73e;_0x5af00e=0xc8;}else{_0x5af00e=0xce;}_0x737393['status'](_0x5af00e);return _0x737393[_0x0c73('0x21')](_0x0c73('0x22'),_0x2de653+'-'+_0x115896+'/'+_0x37a73e)[_0x0c73('0x23')](_0x2fa587);}return null;};}function patchUpdates(_0x51c51c){return function(_0x1742e3){try{jsonpatch['apply'](_0x1742e3,_0x51c51c,!![]);}catch(_0x182c5b){return BPromise[_0x0c73('0x24')](_0x182c5b);}return _0x1742e3['save']();};}function saveUpdates(_0x2c480d,_0x2f2f54){return function(_0x3fbf1c){if(_0x3fbf1c){return _0x3fbf1c[_0x0c73('0x25')](_0x2c480d)[_0x0c73('0x26')](function(_0x13a618){return _0x13a618;});}return null;};}function removeEntity(_0x4373b2,_0x1a8865){return function(_0x3d992f){if(_0x3d992f){return _0x3d992f[_0x0c73('0x27')]()[_0x0c73('0x26')](function(){_0x4373b2[_0x0c73('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x9ecd78,_0x4c6767){return function(_0x18b661){if(!_0x18b661){_0x9ecd78[_0x0c73('0x1b')](0x194);}return _0x18b661;};}function handleError(_0x5d758e,_0xf33445){_0xf33445=_0xf33445||0x1f4;return function(_0x69406c){logger[_0x0c73('0x28')](_0x69406c[_0x0c73('0x29')]);if(_0x69406c['name']){delete _0x69406c[_0x0c73('0x2a')];}_0x5d758e['status'](_0xf33445)[_0x0c73('0x2b')](_0x69406c);};}exports[_0x0c73('0x2c')]=function(_0x400ac2,_0x32d7cf){var _0x4e8351={},_0x4a4432={},_0x3dda35={'count':0x0,'rows':[]};var _0x5b9f03=_[_0x0c73('0x2d')](db[_0x0c73('0x2e')]['rawAttributes'],function(_0x56996f){return{'name':_0x56996f[_0x0c73('0x2f')],'type':_0x56996f[_0x0c73('0x30')][_0x0c73('0x31')]};});_0x4a4432['model']=_[_0x0c73('0x2d')](_0x5b9f03,_0x0c73('0x2a'));_0x4a4432['query']=_[_0x0c73('0x32')](_0x400ac2[_0x0c73('0x33')]);_0x4a4432[_0x0c73('0x34')]=_[_0x0c73('0x35')](_0x4a4432[_0x0c73('0x36')],_0x4a4432[_0x0c73('0x33')]);_0x4e8351[_0x0c73('0x37')]=_[_0x0c73('0x35')](_0x4a4432[_0x0c73('0x36')],qs[_0x0c73('0x38')](_0x400ac2[_0x0c73('0x33')][_0x0c73('0x38')]));_0x4e8351[_0x0c73('0x37')]=_0x4e8351[_0x0c73('0x37')][_0x0c73('0x39')]?_0x4e8351[_0x0c73('0x37')]:_0x4a4432[_0x0c73('0x36')];if(!_0x400ac2[_0x0c73('0x33')][_0x0c73('0x3a')](_0x0c73('0x3b'))){_0x4e8351['limit']=qs['limit'](_0x400ac2[_0x0c73('0x33')][_0x0c73('0x1f')]);_0x4e8351[_0x0c73('0x1d')]=qs[_0x0c73('0x1d')](_0x400ac2[_0x0c73('0x33')][_0x0c73('0x1d')]);}_0x4e8351[_0x0c73('0x3c')]=qs[_0x0c73('0x3d')](_0x400ac2[_0x0c73('0x33')][_0x0c73('0x3d')]);_0x4e8351['where']=qs[_0x0c73('0x34')](_[_0x0c73('0x3e')](_0x400ac2['query'],_0x4a4432[_0x0c73('0x34')]),_0x5b9f03);if(_0x400ac2[_0x0c73('0x33')][_0x0c73('0x3f')]){_0x4e8351[_0x0c73('0x40')]=_[_0x0c73('0x41')](_0x4e8351[_0x0c73('0x40')],{'$or':_[_0x0c73('0x2d')](_0x5b9f03,function(_0x58d117){if(_0x58d117['type']!==_0x0c73('0x42')){var _0x17f43b={};_0x17f43b[_0x58d117['name']]={'$like':'%'+_0x400ac2[_0x0c73('0x33')]['filter']+'%'};return _0x17f43b;}})});}_0x4e8351=_[_0x0c73('0x41')]({},_0x4e8351,_0x400ac2[_0x0c73('0x43')]);var _0x3c4c47={'where':_0x4e8351[_0x0c73('0x40')]};return db['FreshsalesAccount'][_0x0c73('0x20')](_0x3c4c47)[_0x0c73('0x26')](function(_0x31134a){_0x3dda35['count']=_0x31134a;if(_0x400ac2[_0x0c73('0x33')][_0x0c73('0x44')]){_0x4e8351[_0x0c73('0x45')]=[{'all':!![]}];}return db[_0x0c73('0x2e')][_0x0c73('0x46')](_0x4e8351);})[_0x0c73('0x26')](function(_0x1b43ab){_0x3dda35[_0x0c73('0x47')]=_0x1b43ab;return _0x3dda35;})[_0x0c73('0x26')](respondWithFilteredResult(_0x32d7cf,_0x4e8351))[_0x0c73('0x48')](handleError(_0x32d7cf,null));};exports[_0x0c73('0x49')]=function(_0x5032e1,_0x52bfd8){var _0x31a4d9={'raw':![],'where':{'id':_0x5032e1['params']['id']}},_0x4da9ef={};_0x4da9ef[_0x0c73('0x36')]=_[_0x0c73('0x32')](db['FreshsalesAccount'][_0x0c73('0x4a')]);_0x4da9ef[_0x0c73('0x33')]=_[_0x0c73('0x32')](_0x5032e1[_0x0c73('0x33')]);_0x4da9ef[_0x0c73('0x34')]=_[_0x0c73('0x35')](_0x4da9ef[_0x0c73('0x36')],_0x4da9ef[_0x0c73('0x33')]);_0x31a4d9[_0x0c73('0x37')]=_[_0x0c73('0x35')](_0x4da9ef['model'],qs['fields'](_0x5032e1[_0x0c73('0x33')][_0x0c73('0x38')]));_0x31a4d9[_0x0c73('0x37')]=_0x31a4d9['attributes'][_0x0c73('0x39')]?_0x31a4d9[_0x0c73('0x37')]:_0x4da9ef['model'];if(_0x5032e1[_0x0c73('0x33')]['includeAll']){_0x31a4d9[_0x0c73('0x45')]=[{'all':!![]}];}_0x31a4d9=_['merge']({},_0x31a4d9,_0x5032e1[_0x0c73('0x43')]);return db[_0x0c73('0x2e')]['find'](_0x31a4d9)[_0x0c73('0x26')](handleEntityNotFound(_0x52bfd8,null))[_0x0c73('0x26')](respondWithResult(_0x52bfd8,null))[_0x0c73('0x48')](handleError(_0x52bfd8,null));};exports[_0x0c73('0x4b')]=function(_0x5bb765,_0xbdf0ee){return db['FreshsalesAccount'][_0x0c73('0x4b')](_0x5bb765['body'],{})['then'](respondWithResult(_0xbdf0ee,0xc9))['catch'](handleError(_0xbdf0ee,null));};exports[_0x0c73('0x25')]=function(_0x439016,_0x1653fa){if(_0x439016['body']['id']){delete _0x439016[_0x0c73('0x4c')]['id'];}return db[_0x0c73('0x2e')][_0x0c73('0x4d')]({'where':{'id':_0x439016['params']['id']}})[_0x0c73('0x26')](handleEntityNotFound(_0x1653fa,null))['then'](saveUpdates(_0x439016['body'],null))[_0x0c73('0x26')](respondWithResult(_0x1653fa,null))['catch'](handleError(_0x1653fa,null));};exports[_0x0c73('0x27')]=function(_0x13afb7,_0x3839d9){return db[_0x0c73('0x2e')][_0x0c73('0x4d')]({'where':{'id':_0x13afb7[_0x0c73('0x4e')]['id']}})[_0x0c73('0x26')](handleEntityNotFound(_0x3839d9,null))[_0x0c73('0x26')](removeEntity(_0x3839d9,null))[_0x0c73('0x48')](handleError(_0x3839d9,null));};exports[_0x0c73('0x4f')]=function(_0x4f4187,_0x530780,_0x5a5927){var _0x9d1149={};var _0x57464e={};var _0x3a68d1;var _0xfb509b;return db[_0x0c73('0x2e')]['findOne']({'where':{'id':_0x4f4187[_0x0c73('0x4e')]['id']}})[_0x0c73('0x26')](handleEntityNotFound(_0x530780,null))[_0x0c73('0x26')](function(_0x5d890f){if(_0x5d890f){_0x3a68d1=_0x5d890f;_0x57464e[_0x0c73('0x36')]=_[_0x0c73('0x32')](db[_0x0c73('0x50')][_0x0c73('0x4a')]);_0x57464e[_0x0c73('0x33')]=_[_0x0c73('0x32')](_0x4f4187['query']);_0x57464e['filters']=_[_0x0c73('0x35')](_0x57464e['model'],_0x57464e[_0x0c73('0x33')]);_0x9d1149[_0x0c73('0x37')]=_[_0x0c73('0x35')](_0x57464e[_0x0c73('0x36')],qs['fields'](_0x4f4187[_0x0c73('0x33')]['fields']));_0x9d1149[_0x0c73('0x37')]=_0x9d1149[_0x0c73('0x37')]['length']?_0x9d1149[_0x0c73('0x37')]:_0x57464e['model'];_0x9d1149['order']=qs['sort'](_0x4f4187[_0x0c73('0x33')]['sort']);_0x9d1149[_0x0c73('0x40')]=qs[_0x0c73('0x34')](_[_0x0c73('0x3e')](_0x4f4187['query'],_0x57464e['filters']));if(_0x4f4187[_0x0c73('0x33')][_0x0c73('0x3f')]){_0x9d1149[_0x0c73('0x40')]=_[_0x0c73('0x41')](_0x9d1149[_0x0c73('0x40')],{'$or':_[_0x0c73('0x2d')](_0x9d1149['attributes'],function(_0xcca2fb){var _0x4a5e12={};_0x4a5e12[_0xcca2fb]={'$like':'%'+_0x4f4187[_0x0c73('0x33')][_0x0c73('0x3f')]+'%'};return _0x4a5e12;})});}_0x9d1149=_[_0x0c73('0x41')]({},_0x9d1149,_0x4f4187[_0x0c73('0x43')]);return _0x3a68d1['getConfigurations'](_0x9d1149);}})[_0x0c73('0x26')](function(_0x19bbd1){if(_0x19bbd1){_0xfb509b=_0x19bbd1[_0x0c73('0x39')];if(!_0x4f4187[_0x0c73('0x33')][_0x0c73('0x3a')](_0x0c73('0x3b'))){_0x9d1149['limit']=qs['limit'](_0x4f4187[_0x0c73('0x33')][_0x0c73('0x1f')]);_0x9d1149['offset']=qs[_0x0c73('0x1d')](_0x4f4187[_0x0c73('0x33')][_0x0c73('0x1d')]);}return _0x3a68d1['getConfigurations'](_0x9d1149);}})[_0x0c73('0x26')](function(_0x499e28){if(_0x499e28){return _0x499e28?{'count':_0xfb509b,'rows':_0x499e28}:null;}})[_0x0c73('0x26')](respondWithResult(_0x530780,null))['catch'](handleError(_0x530780,null));};exports['addConfiguration']=function(_0x265c18,_0xc5566f,_0x2cef53){if(_0x265c18[_0x0c73('0x4c')]['id']){delete _0x265c18[_0x0c73('0x4c')]['id'];}return db[_0x0c73('0x2e')][_0x0c73('0x51')]({'where':{'id':_0x265c18['params']['id']}})[_0x0c73('0x26')](handleEntityNotFound(_0xc5566f,null))[_0x0c73('0x26')](function(_0xd55883){if(_0xd55883){_0x265c18[_0x0c73('0x4c')][_0x0c73('0x52')]=_0xd55883['id'];_0x265c18[_0x0c73('0x4c')][_0x0c73('0x53')]=integrations['getSubjects'](_0x265c18[_0x0c73('0x4c')][_0x0c73('0x54')],_0x265c18[_0x0c73('0x4c')][_0x0c73('0x30')]);_0x265c18[_0x0c73('0x4c')][_0x0c73('0x55')]=integrations[_0x0c73('0x56')](_0x265c18[_0x0c73('0x4c')][_0x0c73('0x54')],_0x265c18[_0x0c73('0x4c')][_0x0c73('0x30')]);return db[_0x0c73('0x50')][_0x0c73('0x4b')](_0x265c18[_0x0c73('0x4c')],{'include':[{'model':db[_0x0c73('0x57')],'as':_0x0c73('0x53')},{'model':db[_0x0c73('0x57')],'as':_0x0c73('0x55')}]});}return null;})['then'](respondWithResult(_0xc5566f,null))[_0x0c73('0x48')](handleError(_0xc5566f,null));};exports[_0x0c73('0x58')]=function(_0x23c6de,_0x91a092,_0x1e67ce){var _0x35b9d3='';var _0x2f9c2d='';return db[_0x0c73('0x2e')][_0x0c73('0x51')]({'where':{'id':_0x23c6de[_0x0c73('0x4e')]['id']},'attributes':['id','username',_0x0c73('0x59'),_0x0c73('0x5a')]})[_0x0c73('0x26')](handleEntityNotFound(_0x91a092,null))[_0x0c73('0x26')](function(_0x2f0e4d){if(_0x2f0e4d){_0x2f9c2d=_0x2f0e4d[_0x0c73('0x5b')];_0x35b9d3=_0x2f0e4d[_0x0c73('0x59')];var _0x307eb1=_0x2f0e4d[_0x0c73('0x59')][_0x0c73('0x5c')](-0x1);if(_0x307eb1==='/'){_0x35b9d3=_0x35b9d3[_0x0c73('0x5d')](0x0,_0x35b9d3[_0x0c73('0x5e')](_0x307eb1));}return rp({'method':_0x0c73('0x5f'),'uri':util[_0x0c73('0x60')](_0x0c73('0x61'),_0x35b9d3,_0x0c73('0x62')),'headers':{'Authorization':_0x0c73('0x63')+_0x2f0e4d[_0x0c73('0x5a')]},'json':!![]});}})['then'](function(_0x2deffa){if(_0x2deffa){var _0x467e53=_0x2deffa[_0x0c73('0x64')];var _0x15f489=![];var _0x1d4c6d=null;for(_0x1d4c6d=0x0;_0x1d4c6d<_0x467e53[_0x0c73('0x39')];_0x1d4c6d++){if(_0x467e53[_0x1d4c6d][_0x0c73('0x65')]===_0x2f9c2d){_0x15f489=!![];}}if(_0x15f489){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x0c73('0x66')});}}})[_0x0c73('0x26')](respondWithResult(_0x91a092,null))[_0x0c73('0x48')](function(_0x52688e){var _0x14412e=_0x23c6de['query']['test']?0x1f4:_0x52688e[_0x0c73('0x67')]||0x1f4;logger['error'](_0x0c73('0x68'),_0x0c73('0x58'),_0x14412e,JSON['stringify'](_0x52688e));delete _0x52688e['name'];if(_0x14412e===0x191){_0x14412e=0x190;}_0x91a092[_0x0c73('0x1c')](_0x14412e)[_0x0c73('0x2b')](_0x23c6de[_0x0c73('0x33')]['test']?{'message':_0x0c73('0x69'),'statusCode':_0x52688e[_0x0c73('0x67')]}:_0x52688e);});};