9925fb60cec3b6eb7a9a8d7776beaaf71dbe7f43
[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 _0x75d0=['send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','filters','length','includeAll','include','find','create','body','destroy','findOne','FreshsalesConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshsalesField','Descriptions','remoteUri','slice','lastIndexOf','format','/api/selector/owners','Token\x20token=','apiKey','users','email','Requested\x20Resource\x20not\x20Found','test','statusCode','getFields','stringify','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','update','then','error','stack','name'];(function(_0x53abf3,_0x17402b){var _0xd1b8db=function(_0x22b0f2){while(--_0x22b0f2){_0x53abf3['push'](_0x53abf3['shift']());}};_0xd1b8db(++_0x17402b);}(_0x75d0,0xa4));var _0x075d=function(_0x71cd05,_0x36ac11){_0x71cd05=_0x71cd05-0x0;var _0x59c9e7=_0x75d0[_0x71cd05];return _0x59c9e7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x075d('0x0'));var zipdir=require(_0x075d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x075d('0x2'));var moment=require(_0x075d('0x3'));var BPromise=require(_0x075d('0x4'));var Mustache=require(_0x075d('0x5'));var util=require(_0x075d('0x6'));var path=require(_0x075d('0x7'));var sox=require('sox');var csv=require(_0x075d('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x075d('0x9'));var _=require(_0x075d('0xa'));var squel=require(_0x075d('0xb'));var crypto=require(_0x075d('0xc'));var jsforce=require(_0x075d('0xd'));var deskjs=require(_0x075d('0xe'));var toCsv=require(_0x075d('0x8'));var querystring=require(_0x075d('0xf'));var Papa=require(_0x075d('0x10'));var Redis=require(_0x075d('0x11'));var authService=require(_0x075d('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x075d('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x075d('0x14'));var config=require(_0x075d('0x15'));var licenseUtil=require(_0x075d('0x16'));var db=require(_0x075d('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3e8084,_0x1d107f){_0x1d107f=_0x1d107f||0xcc;return function(_0xb99e76){if(_0xb99e76){return _0x3e8084[_0x075d('0x18')](_0x1d107f);}return _0x3e8084['status'](_0x1d107f)[_0x075d('0x19')]();};}function respondWithResult(_0x422774,_0x5fc1ce){_0x5fc1ce=_0x5fc1ce||0xc8;return function(_0x3f47a4){if(_0x3f47a4){return _0x422774[_0x075d('0x1a')](_0x5fc1ce)[_0x075d('0x1b')](_0x3f47a4);}};}function respondWithFilteredResult(_0x5f5048,_0x1ad38e){return function(_0x529410){if(_0x529410){var _0x2b50a1=typeof _0x1ad38e[_0x075d('0x1c')]===_0x075d('0x1d')&&typeof _0x1ad38e['limit']===_0x075d('0x1d');var _0x25ce52=_0x529410['count'];var _0x48c32b=_0x2b50a1?0x0:_0x1ad38e[_0x075d('0x1c')];var _0x374272=_0x2b50a1?_0x529410[_0x075d('0x1e')]:_0x1ad38e[_0x075d('0x1c')]+_0x1ad38e[_0x075d('0x1f')];var _0x57f11c;if(_0x374272>=_0x25ce52){_0x374272=_0x25ce52;_0x57f11c=0xc8;}else{_0x57f11c=0xce;}_0x5f5048['status'](_0x57f11c);return _0x5f5048[_0x075d('0x20')](_0x075d('0x21'),_0x48c32b+'-'+_0x374272+'/'+_0x25ce52)['json'](_0x529410);}return null;};}function patchUpdates(_0xf8ef04){return function(_0x297efe){try{jsonpatch[_0x075d('0x22')](_0x297efe,_0xf8ef04,!![]);}catch(_0x58dc61){return BPromise['reject'](_0x58dc61);}return _0x297efe['save']();};}function saveUpdates(_0xf1b72f,_0x3309d6){return function(_0x4d2808){if(_0x4d2808){return _0x4d2808[_0x075d('0x23')](_0xf1b72f)[_0x075d('0x24')](function(_0x307b47){return _0x307b47;});}return null;};}function removeEntity(_0x1d3f2e,_0x21d031){return function(_0x3930de){if(_0x3930de){return _0x3930de['destroy']()[_0x075d('0x24')](function(){_0x1d3f2e[_0x075d('0x1a')](0xcc)[_0x075d('0x19')]();});}};}function handleEntityNotFound(_0x5ac6f3,_0x476230){return function(_0xd7ff6e){if(!_0xd7ff6e){_0x5ac6f3[_0x075d('0x18')](0x194);}return _0xd7ff6e;};}function handleError(_0x4fe1b0,_0x1b929b){_0x1b929b=_0x1b929b||0x1f4;return function(_0x89c642){logger[_0x075d('0x25')](_0x89c642[_0x075d('0x26')]);if(_0x89c642[_0x075d('0x27')]){delete _0x89c642[_0x075d('0x27')];}_0x4fe1b0['status'](_0x1b929b)[_0x075d('0x28')](_0x89c642);};}exports[_0x075d('0x29')]=function(_0x319496,_0x40c454){var _0x1379cb={},_0x3301f6={},_0x395f36={'count':0x0,'rows':[]};var _0x241e7b=_[_0x075d('0x2a')](db[_0x075d('0x2b')][_0x075d('0x2c')],function(_0x2f6d11){return{'name':_0x2f6d11[_0x075d('0x2d')],'type':_0x2f6d11[_0x075d('0x2e')][_0x075d('0x2f')]};});_0x3301f6[_0x075d('0x30')]=_[_0x075d('0x2a')](_0x241e7b,_0x075d('0x27'));_0x3301f6[_0x075d('0x31')]=_[_0x075d('0x32')](_0x319496[_0x075d('0x31')]);_0x3301f6['filters']=_['intersection'](_0x3301f6[_0x075d('0x30')],_0x3301f6['query']);_0x1379cb[_0x075d('0x33')]=_[_0x075d('0x34')](_0x3301f6['model'],qs[_0x075d('0x35')](_0x319496[_0x075d('0x31')][_0x075d('0x35')]));_0x1379cb[_0x075d('0x33')]=_0x1379cb['attributes']['length']?_0x1379cb['attributes']:_0x3301f6[_0x075d('0x30')];if(!_0x319496[_0x075d('0x31')][_0x075d('0x36')](_0x075d('0x37'))){_0x1379cb[_0x075d('0x1f')]=qs[_0x075d('0x1f')](_0x319496[_0x075d('0x31')]['limit']);_0x1379cb[_0x075d('0x1c')]=qs[_0x075d('0x1c')](_0x319496['query'][_0x075d('0x1c')]);}_0x1379cb[_0x075d('0x38')]=qs[_0x075d('0x39')](_0x319496['query'][_0x075d('0x39')]);_0x1379cb[_0x075d('0x3a')]=qs['filters'](_[_0x075d('0x3b')](_0x319496[_0x075d('0x31')],_0x3301f6['filters']),_0x241e7b);if(_0x319496[_0x075d('0x31')][_0x075d('0x3c')]){_0x1379cb['where']=_[_0x075d('0x3d')](_0x1379cb[_0x075d('0x3a')],{'$or':_[_0x075d('0x2a')](_0x241e7b,function(_0xe2cfd4){if(_0xe2cfd4['type']!==_0x075d('0x3e')){var _0xe7efb1={};_0xe7efb1[_0xe2cfd4[_0x075d('0x27')]]={'$like':'%'+_0x319496['query']['filter']+'%'};return _0xe7efb1;}})});}_0x1379cb=_[_0x075d('0x3d')]({},_0x1379cb,_0x319496[_0x075d('0x3f')]);var _0x2b6048={'where':_0x1379cb['where']};return db['FreshsalesAccount'][_0x075d('0x1e')](_0x2b6048)[_0x075d('0x24')](function(_0x2ad70f){_0x395f36[_0x075d('0x1e')]=_0x2ad70f;if(_0x319496[_0x075d('0x31')]['includeAll']){_0x1379cb['include']=[{'all':!![]}];}return db['FreshsalesAccount'][_0x075d('0x40')](_0x1379cb);})[_0x075d('0x24')](function(_0x1777e0){_0x395f36[_0x075d('0x41')]=_0x1777e0;return _0x395f36;})['then'](respondWithFilteredResult(_0x40c454,_0x1379cb))[_0x075d('0x42')](handleError(_0x40c454,null));};exports[_0x075d('0x43')]=function(_0x29a2b5,_0x197be0){var _0x346a0d={'raw':![],'where':{'id':_0x29a2b5[_0x075d('0x44')]['id']}},_0x3cd291={};_0x3cd291[_0x075d('0x30')]=_['keys'](db[_0x075d('0x2b')][_0x075d('0x2c')]);_0x3cd291[_0x075d('0x31')]=_['keys'](_0x29a2b5[_0x075d('0x31')]);_0x3cd291[_0x075d('0x45')]=_[_0x075d('0x34')](_0x3cd291[_0x075d('0x30')],_0x3cd291[_0x075d('0x31')]);_0x346a0d[_0x075d('0x33')]=_[_0x075d('0x34')](_0x3cd291['model'],qs[_0x075d('0x35')](_0x29a2b5[_0x075d('0x31')]['fields']));_0x346a0d[_0x075d('0x33')]=_0x346a0d[_0x075d('0x33')][_0x075d('0x46')]?_0x346a0d[_0x075d('0x33')]:_0x3cd291[_0x075d('0x30')];if(_0x29a2b5[_0x075d('0x31')][_0x075d('0x47')]){_0x346a0d[_0x075d('0x48')]=[{'all':!![]}];}_0x346a0d=_[_0x075d('0x3d')]({},_0x346a0d,_0x29a2b5['options']);return db[_0x075d('0x2b')][_0x075d('0x49')](_0x346a0d)[_0x075d('0x24')](handleEntityNotFound(_0x197be0,null))['then'](respondWithResult(_0x197be0,null))[_0x075d('0x42')](handleError(_0x197be0,null));};exports['create']=function(_0x3f4740,_0x1fccfc){return db[_0x075d('0x2b')][_0x075d('0x4a')](_0x3f4740[_0x075d('0x4b')],{})[_0x075d('0x24')](respondWithResult(_0x1fccfc,0xc9))['catch'](handleError(_0x1fccfc,null));};exports['update']=function(_0x247918,_0x541c48){if(_0x247918[_0x075d('0x4b')]['id']){delete _0x247918['body']['id'];}return db[_0x075d('0x2b')][_0x075d('0x49')]({'where':{'id':_0x247918['params']['id']}})[_0x075d('0x24')](handleEntityNotFound(_0x541c48,null))['then'](saveUpdates(_0x247918[_0x075d('0x4b')],null))['then'](respondWithResult(_0x541c48,null))[_0x075d('0x42')](handleError(_0x541c48,null));};exports[_0x075d('0x4c')]=function(_0x258472,_0x30dc8c){return db[_0x075d('0x2b')][_0x075d('0x49')]({'where':{'id':_0x258472[_0x075d('0x44')]['id']}})[_0x075d('0x24')](handleEntityNotFound(_0x30dc8c,null))[_0x075d('0x24')](removeEntity(_0x30dc8c,null))[_0x075d('0x42')](handleError(_0x30dc8c,null));};exports['getConfigurations']=function(_0x13d944,_0xc09c72,_0x38c52c){var _0x303179={};var _0x1ee7d2={};var _0x31371c;var _0xf39ef0;return db[_0x075d('0x2b')][_0x075d('0x4d')]({'where':{'id':_0x13d944['params']['id']}})[_0x075d('0x24')](handleEntityNotFound(_0xc09c72,null))[_0x075d('0x24')](function(_0x3716f0){if(_0x3716f0){_0x31371c=_0x3716f0;_0x1ee7d2[_0x075d('0x30')]=_[_0x075d('0x32')](db[_0x075d('0x4e')]['rawAttributes']);_0x1ee7d2[_0x075d('0x31')]=_[_0x075d('0x32')](_0x13d944[_0x075d('0x31')]);_0x1ee7d2[_0x075d('0x45')]=_[_0x075d('0x34')](_0x1ee7d2[_0x075d('0x30')],_0x1ee7d2[_0x075d('0x31')]);_0x303179['attributes']=_['intersection'](_0x1ee7d2[_0x075d('0x30')],qs[_0x075d('0x35')](_0x13d944[_0x075d('0x31')][_0x075d('0x35')]));_0x303179[_0x075d('0x33')]=_0x303179[_0x075d('0x33')][_0x075d('0x46')]?_0x303179[_0x075d('0x33')]:_0x1ee7d2['model'];_0x303179['order']=qs[_0x075d('0x39')](_0x13d944['query'][_0x075d('0x39')]);_0x303179[_0x075d('0x3a')]=qs[_0x075d('0x45')](_['pick'](_0x13d944['query'],_0x1ee7d2[_0x075d('0x45')]));if(_0x13d944[_0x075d('0x31')][_0x075d('0x3c')]){_0x303179[_0x075d('0x3a')]=_[_0x075d('0x3d')](_0x303179[_0x075d('0x3a')],{'$or':_['map'](_0x303179[_0x075d('0x33')],function(_0x23a0ce){var _0x178bb9={};_0x178bb9[_0x23a0ce]={'$like':'%'+_0x13d944[_0x075d('0x31')][_0x075d('0x3c')]+'%'};return _0x178bb9;})});}_0x303179=_['merge']({},_0x303179,_0x13d944[_0x075d('0x3f')]);return _0x31371c[_0x075d('0x4f')](_0x303179);}})[_0x075d('0x24')](function(_0x78c299){if(_0x78c299){_0xf39ef0=_0x78c299[_0x075d('0x46')];if(!_0x13d944['query'][_0x075d('0x36')]('nolimit')){_0x303179[_0x075d('0x1f')]=qs[_0x075d('0x1f')](_0x13d944['query'][_0x075d('0x1f')]);_0x303179[_0x075d('0x1c')]=qs[_0x075d('0x1c')](_0x13d944[_0x075d('0x31')]['offset']);}return _0x31371c[_0x075d('0x4f')](_0x303179);}})['then'](function(_0x478250){if(_0x478250){return _0x478250?{'count':_0xf39ef0,'rows':_0x478250}:null;}})[_0x075d('0x24')](respondWithResult(_0xc09c72,null))['catch'](handleError(_0xc09c72,null));};exports[_0x075d('0x50')]=function(_0x2f2eb4,_0x34c4fa,_0x3bfefc){if(_0x2f2eb4[_0x075d('0x4b')]['id']){delete _0x2f2eb4[_0x075d('0x4b')]['id'];}return db[_0x075d('0x2b')][_0x075d('0x4d')]({'where':{'id':_0x2f2eb4[_0x075d('0x44')]['id']}})[_0x075d('0x24')](handleEntityNotFound(_0x34c4fa,null))['then'](function(_0x2021b4){if(_0x2021b4){_0x2f2eb4[_0x075d('0x4b')][_0x075d('0x51')]=_0x2021b4['id'];_0x2f2eb4[_0x075d('0x4b')][_0x075d('0x52')]=integrations[_0x075d('0x53')](_0x2f2eb4['body'][_0x075d('0x54')],_0x2f2eb4['body']['type']);_0x2f2eb4[_0x075d('0x4b')]['Descriptions']=integrations[_0x075d('0x55')](_0x2f2eb4['body'][_0x075d('0x54')],_0x2f2eb4[_0x075d('0x4b')][_0x075d('0x2e')]);return db[_0x075d('0x4e')][_0x075d('0x4a')](_0x2f2eb4[_0x075d('0x4b')],{'include':[{'model':db[_0x075d('0x56')],'as':_0x075d('0x52')},{'model':db['FreshsalesField'],'as':_0x075d('0x57')}]});}return null;})['then'](respondWithResult(_0x34c4fa,null))[_0x075d('0x42')](handleError(_0x34c4fa,null));};exports['getFields']=function(_0x10baab,_0x376c08,_0xac2698){var _0x42164b='';var _0x1e9cd8='';return db[_0x075d('0x2b')][_0x075d('0x4d')]({'where':{'id':_0x10baab[_0x075d('0x44')]['id']},'attributes':['id','username',_0x075d('0x58'),'apiKey']})[_0x075d('0x24')](handleEntityNotFound(_0x376c08,null))[_0x075d('0x24')](function(_0x1395e6){if(_0x1395e6){_0x1e9cd8=_0x1395e6['username'];_0x42164b=_0x1395e6[_0x075d('0x58')];var _0x22b4f5=_0x1395e6[_0x075d('0x58')][_0x075d('0x59')](-0x1);if(_0x22b4f5==='/'){_0x42164b=_0x42164b['substring'](0x0,_0x42164b[_0x075d('0x5a')](_0x22b4f5));}return rp({'method':'GET','uri':util[_0x075d('0x5b')]('%s%s',_0x42164b,_0x075d('0x5c')),'headers':{'Authorization':_0x075d('0x5d')+_0x1395e6[_0x075d('0x5e')]},'json':!![]});}})[_0x075d('0x24')](function(_0x4f8cfa){if(_0x4f8cfa){var _0xbd4eb7=_0x4f8cfa[_0x075d('0x5f')];var _0x51b085=![];var _0x13e3e8=null;for(_0x13e3e8=0x0;_0x13e3e8<_0xbd4eb7['length'];_0x13e3e8++){if(_0xbd4eb7[_0x13e3e8][_0x075d('0x60')]===_0x1e9cd8){_0x51b085=!![];}}if(_0x51b085){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x075d('0x61')});}}})[_0x075d('0x24')](respondWithResult(_0x376c08,null))[_0x075d('0x42')](function(_0xe1d06c){var _0x2a73d4=_0x10baab[_0x075d('0x31')][_0x075d('0x62')]?0x1f4:_0xe1d06c[_0x075d('0x63')]||0x1f4;logger[_0x075d('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0x075d('0x64'),_0x2a73d4,JSON[_0x075d('0x65')](_0xe1d06c));delete _0xe1d06c[_0x075d('0x27')];if(_0x2a73d4===0x191){_0x2a73d4=0x190;}_0x376c08['status'](_0x2a73d4)[_0x075d('0x28')](_0x10baab[_0x075d('0x31')]['test']?{'message':'Wrong\x20credentials','statusCode':_0xe1d06c[_0x075d('0x63')]}:_0xe1d06c);});};