6121c6b2b9f3c16aaeba9bda1c56956370a5b144
[motion2.git] / server / api / intFreshdeskAccount / intFreshdeskAccount.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 _0xfa12=['../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','FreshdeskAccount','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','rawAttributes','filters','find','create','body','params','getConfigurations','findOne','nolimit','AccountId','Subjects','getSubjects','channel','FreshdeskField','Descriptions','getFields','remoteUri','slice','GET','%s/%s','api/v2/ticket_fields','Basic\x20%s','format','%s:X','apiKey','toString','base64','requester','subject','agent','priority','group','source','ticket_type','remove','includes','custom_text','custom_dropdown','default','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x144db7,_0x592719){var _0x3efe6a=function(_0x4ed8da){while(--_0x4ed8da){_0x144db7['push'](_0x144db7['shift']());}};_0x3efe6a(++_0x592719);}(_0xfa12,0x1b2));var _0x2fa1=function(_0x302a7f,_0x231e67){_0x302a7f=_0x302a7f-0x0;var _0x103ba8=_0xfa12[_0x302a7f];return _0x103ba8;};'use strict';var emlformat=require(_0x2fa1('0x0'));var rimraf=require(_0x2fa1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2fa1('0x2'));var rp=require(_0x2fa1('0x3'));var moment=require(_0x2fa1('0x4'));var BPromise=require(_0x2fa1('0x5'));var Mustache=require('mustache');var util=require(_0x2fa1('0x6'));var path=require(_0x2fa1('0x7'));var sox=require(_0x2fa1('0x8'));var csv=require(_0x2fa1('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2fa1('0xa'));var _=require(_0x2fa1('0xb'));var squel=require('squel');var crypto=require(_0x2fa1('0xc'));var jsforce=require(_0x2fa1('0xd'));var deskjs=require(_0x2fa1('0xe'));var toCsv=require(_0x2fa1('0x9'));var querystring=require('querystring');var Papa=require(_0x2fa1('0xf'));var Redis=require(_0x2fa1('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x2fa1('0x11'));var as=require(_0x2fa1('0x12'));var hardwareService=require(_0x2fa1('0x13'));var logger=require(_0x2fa1('0x14'))(_0x2fa1('0x15'));var utils=require(_0x2fa1('0x16'));var config=require(_0x2fa1('0x17'));var licenseUtil=require(_0x2fa1('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x2fa1('0x19'));function respondWithStatusCode(_0x4198e1,_0x311441){_0x311441=_0x311441||0xcc;return function(_0x3ccc0e){if(_0x3ccc0e){return _0x4198e1[_0x2fa1('0x1a')](_0x311441);}return _0x4198e1[_0x2fa1('0x1b')](_0x311441)['end']();};}function respondWithResult(_0xf81957,_0x409ea0){_0x409ea0=_0x409ea0||0xc8;return function(_0x39f334){if(_0x39f334){return _0xf81957[_0x2fa1('0x1b')](_0x409ea0)['json'](_0x39f334);}};}function respondWithFilteredResult(_0x3c79b6,_0x3d6647){return function(_0x59aa4d){if(_0x59aa4d){var _0x3f41f3=typeof _0x3d6647[_0x2fa1('0x1c')]===_0x2fa1('0x1d')&&typeof _0x3d6647[_0x2fa1('0x1e')]===_0x2fa1('0x1d');var _0x1307f8=_0x59aa4d[_0x2fa1('0x1f')];var _0x3722db=_0x3f41f3?0x0:_0x3d6647['offset'];var _0x31b4ab=_0x3f41f3?_0x59aa4d['count']:_0x3d6647['offset']+_0x3d6647[_0x2fa1('0x1e')];var _0x454595;if(_0x31b4ab>=_0x1307f8){_0x31b4ab=_0x1307f8;_0x454595=0xc8;}else{_0x454595=0xce;}_0x3c79b6[_0x2fa1('0x1b')](_0x454595);return _0x3c79b6[_0x2fa1('0x20')](_0x2fa1('0x21'),_0x3722db+'-'+_0x31b4ab+'/'+_0x1307f8)['json'](_0x59aa4d);}return null;};}function patchUpdates(_0x23f0d2){return function(_0x591d32){try{jsonpatch[_0x2fa1('0x22')](_0x591d32,_0x23f0d2,!![]);}catch(_0xdc3ed9){return BPromise[_0x2fa1('0x23')](_0xdc3ed9);}return _0x591d32[_0x2fa1('0x24')]();};}function saveUpdates(_0x24fe15,_0x3fa70d){return function(_0x1b3434){if(_0x1b3434){return _0x1b3434[_0x2fa1('0x25')](_0x24fe15)[_0x2fa1('0x26')](function(_0x15037c){return _0x15037c;});}return null;};}function removeEntity(_0x5021fb,_0x1eaa57){return function(_0x4e82b1){if(_0x4e82b1){return _0x4e82b1['destroy']()['then'](function(){_0x5021fb[_0x2fa1('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a152c,_0x16a2b0){return function(_0x4627de){if(!_0x4627de){_0x4a152c[_0x2fa1('0x1a')](0x194);}return _0x4627de;};}function handleError(_0x398c53,_0x42cc71){_0x42cc71=_0x42cc71||0x1f4;return function(_0x21c57d){logger[_0x2fa1('0x27')](_0x21c57d[_0x2fa1('0x28')]);if(_0x21c57d[_0x2fa1('0x29')]){delete _0x21c57d[_0x2fa1('0x29')];}_0x398c53[_0x2fa1('0x1b')](_0x42cc71)[_0x2fa1('0x2a')](_0x21c57d);};}exports[_0x2fa1('0x2b')]=function(_0x44856f,_0x2a5dda){var _0xdb4308={},_0xd53b8={},_0x300970={'count':0x0,'rows':[]};var _0x5f41d1=_[_0x2fa1('0x2c')](db[_0x2fa1('0x2d')]['rawAttributes'],function(_0x1bf81b){return{'name':_0x1bf81b[_0x2fa1('0x2e')],'type':_0x1bf81b[_0x2fa1('0x2f')][_0x2fa1('0x30')]};});_0xd53b8[_0x2fa1('0x31')]=_['map'](_0x5f41d1,_0x2fa1('0x29'));_0xd53b8[_0x2fa1('0x32')]=_[_0x2fa1('0x33')](_0x44856f[_0x2fa1('0x32')]);_0xd53b8['filters']=_[_0x2fa1('0x34')](_0xd53b8[_0x2fa1('0x31')],_0xd53b8['query']);_0xdb4308[_0x2fa1('0x35')]=_['intersection'](_0xd53b8[_0x2fa1('0x31')],qs[_0x2fa1('0x36')](_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x36')]));_0xdb4308[_0x2fa1('0x35')]=_0xdb4308[_0x2fa1('0x35')][_0x2fa1('0x37')]?_0xdb4308[_0x2fa1('0x35')]:_0xd53b8['model'];if(!_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x38')]('nolimit')){_0xdb4308[_0x2fa1('0x1e')]=qs[_0x2fa1('0x1e')](_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x1e')]);_0xdb4308[_0x2fa1('0x1c')]=qs[_0x2fa1('0x1c')](_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x1c')]);}_0xdb4308['order']=qs['sort'](_0x44856f['query'][_0x2fa1('0x39')]);_0xdb4308[_0x2fa1('0x3a')]=qs['filters'](_['pick'](_0x44856f[_0x2fa1('0x32')],_0xd53b8['filters']),_0x5f41d1);if(_0x44856f[_0x2fa1('0x32')]['filter']){_0xdb4308[_0x2fa1('0x3a')]=_[_0x2fa1('0x3b')](_0xdb4308[_0x2fa1('0x3a')],{'$or':_[_0x2fa1('0x2c')](_0x5f41d1,function(_0x49deeb){if(_0x49deeb['type']!==_0x2fa1('0x3c')){var _0x7e4c5e={};_0x7e4c5e[_0x49deeb[_0x2fa1('0x29')]]={'$like':'%'+_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x3d')]+'%'};return _0x7e4c5e;}})});}_0xdb4308=_[_0x2fa1('0x3b')]({},_0xdb4308,_0x44856f[_0x2fa1('0x3e')]);var _0x22d523={'where':_0xdb4308['where']};return db[_0x2fa1('0x2d')][_0x2fa1('0x1f')](_0x22d523)['then'](function(_0x27aaa3){_0x300970[_0x2fa1('0x1f')]=_0x27aaa3;if(_0x44856f[_0x2fa1('0x32')][_0x2fa1('0x3f')]){_0xdb4308[_0x2fa1('0x40')]=[{'all':!![]}];}return db[_0x2fa1('0x2d')][_0x2fa1('0x41')](_0xdb4308);})['then'](function(_0x1e600b){_0x300970[_0x2fa1('0x42')]=_0x1e600b;return _0x300970;})[_0x2fa1('0x26')](respondWithFilteredResult(_0x2a5dda,_0xdb4308))[_0x2fa1('0x43')](handleError(_0x2a5dda,null));};exports['show']=function(_0x2f4a0d,_0x229026){var _0x1180eb={'raw':![],'where':{'id':_0x2f4a0d['params']['id']}},_0x39577c={};_0x39577c[_0x2fa1('0x31')]=_[_0x2fa1('0x33')](db[_0x2fa1('0x2d')][_0x2fa1('0x44')]);_0x39577c[_0x2fa1('0x32')]=_[_0x2fa1('0x33')](_0x2f4a0d[_0x2fa1('0x32')]);_0x39577c[_0x2fa1('0x45')]=_[_0x2fa1('0x34')](_0x39577c[_0x2fa1('0x31')],_0x39577c['query']);_0x1180eb['attributes']=_['intersection'](_0x39577c[_0x2fa1('0x31')],qs['fields'](_0x2f4a0d['query']['fields']));_0x1180eb[_0x2fa1('0x35')]=_0x1180eb[_0x2fa1('0x35')][_0x2fa1('0x37')]?_0x1180eb[_0x2fa1('0x35')]:_0x39577c['model'];if(_0x2f4a0d[_0x2fa1('0x32')][_0x2fa1('0x3f')]){_0x1180eb[_0x2fa1('0x40')]=[{'all':!![]}];}_0x1180eb=_[_0x2fa1('0x3b')]({},_0x1180eb,_0x2f4a0d[_0x2fa1('0x3e')]);return db[_0x2fa1('0x2d')][_0x2fa1('0x46')](_0x1180eb)[_0x2fa1('0x26')](handleEntityNotFound(_0x229026,null))[_0x2fa1('0x26')](respondWithResult(_0x229026,null))[_0x2fa1('0x43')](handleError(_0x229026,null));};exports['create']=function(_0x34460a,_0x84798f){return db[_0x2fa1('0x2d')][_0x2fa1('0x47')](_0x34460a[_0x2fa1('0x48')],{})['then'](respondWithResult(_0x84798f,0xc9))[_0x2fa1('0x43')](handleError(_0x84798f,null));};exports[_0x2fa1('0x25')]=function(_0x1b8556,_0x19aff5){if(_0x1b8556['body']['id']){delete _0x1b8556['body']['id'];}return db[_0x2fa1('0x2d')]['find']({'where':{'id':_0x1b8556[_0x2fa1('0x49')]['id']}})[_0x2fa1('0x26')](handleEntityNotFound(_0x19aff5,null))[_0x2fa1('0x26')](saveUpdates(_0x1b8556[_0x2fa1('0x48')],null))[_0x2fa1('0x26')](respondWithResult(_0x19aff5,null))[_0x2fa1('0x43')](handleError(_0x19aff5,null));};exports['destroy']=function(_0x4d522f,_0x4ca733){return db['FreshdeskAccount']['find']({'where':{'id':_0x4d522f[_0x2fa1('0x49')]['id']}})[_0x2fa1('0x26')](handleEntityNotFound(_0x4ca733,null))[_0x2fa1('0x26')](removeEntity(_0x4ca733,null))[_0x2fa1('0x43')](handleError(_0x4ca733,null));};exports[_0x2fa1('0x4a')]=function(_0x557cde,_0x487990,_0x577197){var _0x3ccdc8={};var _0x105f26={};var _0x4b78b6;var _0x129b9b;return db[_0x2fa1('0x2d')][_0x2fa1('0x4b')]({'where':{'id':_0x557cde[_0x2fa1('0x49')]['id']}})[_0x2fa1('0x26')](handleEntityNotFound(_0x487990,null))['then'](function(_0x3b1923){if(_0x3b1923){_0x4b78b6=_0x3b1923;_0x105f26[_0x2fa1('0x31')]=_['keys'](db['FreshdeskConfiguration'][_0x2fa1('0x44')]);_0x105f26[_0x2fa1('0x32')]=_[_0x2fa1('0x33')](_0x557cde['query']);_0x105f26[_0x2fa1('0x45')]=_[_0x2fa1('0x34')](_0x105f26[_0x2fa1('0x31')],_0x105f26[_0x2fa1('0x32')]);_0x3ccdc8[_0x2fa1('0x35')]=_['intersection'](_0x105f26[_0x2fa1('0x31')],qs[_0x2fa1('0x36')](_0x557cde['query'][_0x2fa1('0x36')]));_0x3ccdc8[_0x2fa1('0x35')]=_0x3ccdc8[_0x2fa1('0x35')][_0x2fa1('0x37')]?_0x3ccdc8[_0x2fa1('0x35')]:_0x105f26[_0x2fa1('0x31')];_0x3ccdc8['order']=qs[_0x2fa1('0x39')](_0x557cde['query']['sort']);_0x3ccdc8['where']=qs[_0x2fa1('0x45')](_['pick'](_0x557cde['query'],_0x105f26[_0x2fa1('0x45')]));if(_0x557cde[_0x2fa1('0x32')][_0x2fa1('0x3d')]){_0x3ccdc8[_0x2fa1('0x3a')]=_[_0x2fa1('0x3b')](_0x3ccdc8[_0x2fa1('0x3a')],{'$or':_['map'](_0x3ccdc8['attributes'],function(_0x4c48b8){var _0x2ebcec={};_0x2ebcec[_0x4c48b8]={'$like':'%'+_0x557cde['query'][_0x2fa1('0x3d')]+'%'};return _0x2ebcec;})});}_0x3ccdc8=_[_0x2fa1('0x3b')]({},_0x3ccdc8,_0x557cde[_0x2fa1('0x3e')]);return _0x4b78b6[_0x2fa1('0x4a')](_0x3ccdc8);}})['then'](function(_0x31bfe1){if(_0x31bfe1){_0x129b9b=_0x31bfe1[_0x2fa1('0x37')];if(!_0x557cde['query'][_0x2fa1('0x38')](_0x2fa1('0x4c'))){_0x3ccdc8[_0x2fa1('0x1e')]=qs[_0x2fa1('0x1e')](_0x557cde['query'][_0x2fa1('0x1e')]);_0x3ccdc8['offset']=qs['offset'](_0x557cde[_0x2fa1('0x32')][_0x2fa1('0x1c')]);}return _0x4b78b6['getConfigurations'](_0x3ccdc8);}})['then'](function(_0x59d74f){if(_0x59d74f){return _0x59d74f?{'count':_0x129b9b,'rows':_0x59d74f}:null;}})[_0x2fa1('0x26')](respondWithResult(_0x487990,null))['catch'](handleError(_0x487990,null));};exports['addConfiguration']=function(_0x1c0b09,_0x3dc580,_0x2a54ba){if(_0x1c0b09[_0x2fa1('0x48')]['id']){delete _0x1c0b09[_0x2fa1('0x48')]['id'];}return db['FreshdeskAccount'][_0x2fa1('0x4b')]({'where':{'id':_0x1c0b09[_0x2fa1('0x49')]['id']}})[_0x2fa1('0x26')](handleEntityNotFound(_0x3dc580,null))[_0x2fa1('0x26')](function(_0x4e8d81){if(_0x4e8d81){_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x4d')]=_0x4e8d81['id'];_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x4e')]=integrations[_0x2fa1('0x4f')](_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x50')],_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x2f')]);_0x1c0b09[_0x2fa1('0x48')]['Descriptions']=integrations['getDescriptions'](_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x50')],_0x1c0b09[_0x2fa1('0x48')][_0x2fa1('0x2f')]);return db['FreshdeskConfiguration'][_0x2fa1('0x47')](_0x1c0b09[_0x2fa1('0x48')],{'include':[{'model':db[_0x2fa1('0x51')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':_0x2fa1('0x52')}]});}return null;})['then'](respondWithResult(_0x3dc580,null))['catch'](handleError(_0x3dc580,null));};exports[_0x2fa1('0x53')]=function(_0x424ebc,_0x2b4088,_0x295a28){var _0x4f6ded='';return db[_0x2fa1('0x2d')]['findOne']({'where':{'id':_0x424ebc['params']['id']},'attributes':['id',_0x2fa1('0x54'),'apiKey']})[_0x2fa1('0x26')](handleEntityNotFound(_0x2b4088,null))[_0x2fa1('0x26')](function(_0x4f3bfb){if(_0x4f3bfb){_0x4f6ded=_0x4f3bfb[_0x2fa1('0x54')];var _0x2f206d=_0x4f6ded[_0x2fa1('0x55')](-0x1);if(_0x2f206d==='/'){_0x4f6ded=_0x4f6ded['substring'](0x0,_0x4f6ded['lastIndexOf'](_0x2f206d));}return rp({'method':_0x2fa1('0x56'),'uri':util['format'](_0x2fa1('0x57'),_0x4f6ded,_0x2fa1('0x58')),'headers':{'Authorization':util['format'](_0x2fa1('0x59'),new Buffer(util[_0x2fa1('0x5a')](_0x2fa1('0x5b'),_0x4f3bfb[_0x2fa1('0x5c')]))[_0x2fa1('0x5d')](_0x2fa1('0x5e')))},'json':!![]});}})[_0x2fa1('0x26')](function(_0x50441f){if(_0x50441f){var _0x456cd2=[_0x2fa1('0x5f'),_0x2fa1('0x60'),_0x2fa1('0x61'),'description',_0x2fa1('0x1b'),_0x2fa1('0x62'),_0x2fa1('0x63'),_0x2fa1('0x64'),_0x2fa1('0x65'),_0x2fa1('0x63'),'company'];_[_0x2fa1('0x66')](_0x50441f,function(_0x524cc0){return _0x456cd2[_0x2fa1('0x67')](_0x524cc0[_0x2fa1('0x29')])||!_0x524cc0['default']&&_0x524cc0[_0x2fa1('0x2f')]!==_0x2fa1('0x68')&&_0x524cc0[_0x2fa1('0x2f')]!==_0x2fa1('0x69');});return{'count':_0x50441f[_0x2fa1('0x37')],'rows':_[_0x2fa1('0x2c')](_0x50441f,function(_0x183172){return{'id':_0x183172[_0x2fa1('0x29')],'name':_0x183172['label'],'custom':!_0x183172[_0x2fa1('0x6a')],'options':_0x183172[_0x2fa1('0x6b')]?_['map'](_0x183172[_0x2fa1('0x6b')],function(_0x25fefb){return{'name':_[_0x2fa1('0x6c')](_0x25fefb),'value':_0x25fefb};}):[]};})};}})[_0x2fa1('0x26')](respondWithResult(_0x2b4088,null))[_0x2fa1('0x43')](function(_0x52bc68){var _0x27c496=_0x424ebc['query'][_0x2fa1('0x6d')]?0x1f4:_0x52bc68[_0x2fa1('0x6e')]||0x1f4;logger[_0x2fa1('0x27')](_0x2fa1('0x6f'),_0x2fa1('0x53'),_0x27c496,JSON[_0x2fa1('0x70')](_0x52bc68));delete _0x52bc68['name'];if(_0x27c496===0x191){_0x27c496=0x190;}_0x2b4088[_0x2fa1('0x1b')](_0x27c496)[_0x2fa1('0x2a')](_0x424ebc[_0x2fa1('0x32')]['test']?{'message':_0x2fa1('0x71'),'statusCode':_0x52bc68[_0x2fa1('0x6e')]}:_0x52bc68);});};