8f0353b83e35f8c750fedd6e589866de70a4b16c
[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 _0xd5b6=['bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','count','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','map','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','options','FreshdeskAccount','includeAll','include','findAll','rows','catch','params','keys','find','create','body','destroy','getConfigurations','findOne','FreshdeskConfiguration','rawAttributes','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','toString','base64','requester','agent','description','priority','group','source','ticket_type','company','remove','includes','default','custom_dropdown','label','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x5cb97e,_0x132a39){var _0x1714b4=function(_0x384210){while(--_0x384210){_0x5cb97e['push'](_0x5cb97e['shift']());}};_0x1714b4(++_0x132a39);}(_0xd5b6,0x73));var _0x6d5b=function(_0x306803,_0x34a407){_0x306803=_0x306803-0x0;var _0x111228=_0xd5b6[_0x306803];return _0x111228;};'use strict';var emlformat=require(_0x6d5b('0x0'));var rimraf=require(_0x6d5b('0x1'));var zipdir=require(_0x6d5b('0x2'));var jsonpatch=require(_0x6d5b('0x3'));var rp=require(_0x6d5b('0x4'));var moment=require(_0x6d5b('0x5'));var BPromise=require(_0x6d5b('0x6'));var Mustache=require(_0x6d5b('0x7'));var util=require('util');var path=require(_0x6d5b('0x8'));var sox=require(_0x6d5b('0x9'));var csv=require(_0x6d5b('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6d5b('0xb'));var _=require(_0x6d5b('0xc'));var squel=require(_0x6d5b('0xd'));var crypto=require(_0x6d5b('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6d5b('0xa'));var querystring=require(_0x6d5b('0xf'));var Papa=require(_0x6d5b('0x10'));var Redis=require(_0x6d5b('0x11'));var authService=require(_0x6d5b('0x12'));var qs=require(_0x6d5b('0x13'));var as=require(_0x6d5b('0x14'));var hardwareService=require(_0x6d5b('0x15'));var logger=require(_0x6d5b('0x16'))(_0x6d5b('0x17'));var utils=require(_0x6d5b('0x18'));var config=require(_0x6d5b('0x19'));var licenseUtil=require(_0x6d5b('0x1a'));var db=require(_0x6d5b('0x1b'))['db'];var integrations=require(_0x6d5b('0x1c'));function respondWithStatusCode(_0x1e3c2b,_0x3c09bb){_0x3c09bb=_0x3c09bb||0xcc;return function(_0x132fe2){if(_0x132fe2){return _0x1e3c2b['sendStatus'](_0x3c09bb);}return _0x1e3c2b[_0x6d5b('0x1d')](_0x3c09bb)[_0x6d5b('0x1e')]();};}function respondWithResult(_0xe6fa49,_0x3a4ca5){_0x3a4ca5=_0x3a4ca5||0xc8;return function(_0x12b0dc){if(_0x12b0dc){return _0xe6fa49['status'](_0x3a4ca5)[_0x6d5b('0x1f')](_0x12b0dc);}};}function respondWithFilteredResult(_0x1e6814,_0x51eb25){return function(_0x2baf47){if(_0x2baf47){var _0x5debab=typeof _0x51eb25[_0x6d5b('0x20')]==='undefined'&&typeof _0x51eb25['limit']==='undefined';var _0x12bc62=_0x2baf47[_0x6d5b('0x21')];var _0x448cc3=_0x5debab?0x0:_0x51eb25['offset'];var _0xb12444=_0x5debab?_0x2baf47[_0x6d5b('0x21')]:_0x51eb25[_0x6d5b('0x20')]+_0x51eb25['limit'];var _0x407f2f;if(_0xb12444>=_0x12bc62){_0xb12444=_0x12bc62;_0x407f2f=0xc8;}else{_0x407f2f=0xce;}_0x1e6814['status'](_0x407f2f);return _0x1e6814[_0x6d5b('0x22')](_0x6d5b('0x23'),_0x448cc3+'-'+_0xb12444+'/'+_0x12bc62)[_0x6d5b('0x1f')](_0x2baf47);}return null;};}function patchUpdates(_0x4b67ca){return function(_0x885c41){try{jsonpatch[_0x6d5b('0x24')](_0x885c41,_0x4b67ca,!![]);}catch(_0xf59341){return BPromise[_0x6d5b('0x25')](_0xf59341);}return _0x885c41[_0x6d5b('0x26')]();};}function saveUpdates(_0x36d8da,_0x19148d){return function(_0x186631){if(_0x186631){return _0x186631[_0x6d5b('0x27')](_0x36d8da)[_0x6d5b('0x28')](function(_0x1b5261){return _0x1b5261;});}return null;};}function removeEntity(_0xc1087e,_0x2e3192){return function(_0xc0d36c){if(_0xc0d36c){return _0xc0d36c['destroy']()[_0x6d5b('0x28')](function(){_0xc1087e['status'](0xcc)[_0x6d5b('0x1e')]();});}};}function handleEntityNotFound(_0x6a398a,_0x322c57){return function(_0x127e27){if(!_0x127e27){_0x6a398a[_0x6d5b('0x29')](0x194);}return _0x127e27;};}function handleError(_0x161c12,_0x1be755){_0x1be755=_0x1be755||0x1f4;return function(_0x33ae72){logger[_0x6d5b('0x2a')](_0x33ae72[_0x6d5b('0x2b')]);if(_0x33ae72[_0x6d5b('0x2c')]){delete _0x33ae72[_0x6d5b('0x2c')];}_0x161c12[_0x6d5b('0x1d')](_0x1be755)['send'](_0x33ae72);};}exports['index']=function(_0x5a9f13,_0x32c57b){var _0x1acc3a={},_0x2d0da5={},_0x4c9875={'count':0x0,'rows':[]};var _0x27151a=_[_0x6d5b('0x2d')](db['FreshdeskAccount']['rawAttributes'],function(_0x4fce9f){return{'name':_0x4fce9f[_0x6d5b('0x2e')],'type':_0x4fce9f[_0x6d5b('0x2f')][_0x6d5b('0x30')]};});_0x2d0da5[_0x6d5b('0x31')]=_['map'](_0x27151a,'name');_0x2d0da5[_0x6d5b('0x32')]=_['keys'](_0x5a9f13[_0x6d5b('0x32')]);_0x2d0da5[_0x6d5b('0x33')]=_[_0x6d5b('0x34')](_0x2d0da5[_0x6d5b('0x31')],_0x2d0da5[_0x6d5b('0x32')]);_0x1acc3a[_0x6d5b('0x35')]=_[_0x6d5b('0x34')](_0x2d0da5[_0x6d5b('0x31')],qs['fields'](_0x5a9f13[_0x6d5b('0x32')][_0x6d5b('0x36')]));_0x1acc3a[_0x6d5b('0x35')]=_0x1acc3a[_0x6d5b('0x35')][_0x6d5b('0x37')]?_0x1acc3a[_0x6d5b('0x35')]:_0x2d0da5[_0x6d5b('0x31')];if(!_0x5a9f13[_0x6d5b('0x32')]['hasOwnProperty'](_0x6d5b('0x38'))){_0x1acc3a[_0x6d5b('0x39')]=qs[_0x6d5b('0x39')](_0x5a9f13[_0x6d5b('0x32')][_0x6d5b('0x39')]);_0x1acc3a[_0x6d5b('0x20')]=qs['offset'](_0x5a9f13['query'][_0x6d5b('0x20')]);}_0x1acc3a[_0x6d5b('0x3a')]=qs[_0x6d5b('0x3b')](_0x5a9f13[_0x6d5b('0x32')][_0x6d5b('0x3b')]);_0x1acc3a[_0x6d5b('0x3c')]=qs[_0x6d5b('0x33')](_[_0x6d5b('0x3d')](_0x5a9f13[_0x6d5b('0x32')],_0x2d0da5[_0x6d5b('0x33')]),_0x27151a);if(_0x5a9f13[_0x6d5b('0x32')]['filter']){_0x1acc3a['where']=_[_0x6d5b('0x3e')](_0x1acc3a[_0x6d5b('0x3c')],{'$or':_[_0x6d5b('0x2d')](_0x27151a,function(_0x2bd66d){if(_0x2bd66d['type']!==_0x6d5b('0x3f')){var _0xc55711={};_0xc55711[_0x2bd66d[_0x6d5b('0x2c')]]={'$like':'%'+_0x5a9f13[_0x6d5b('0x32')][_0x6d5b('0x40')]+'%'};return _0xc55711;}})});}_0x1acc3a=_[_0x6d5b('0x3e')]({},_0x1acc3a,_0x5a9f13[_0x6d5b('0x41')]);var _0x1e989d={'where':_0x1acc3a[_0x6d5b('0x3c')]};return db[_0x6d5b('0x42')][_0x6d5b('0x21')](_0x1e989d)[_0x6d5b('0x28')](function(_0x192d14){_0x4c9875['count']=_0x192d14;if(_0x5a9f13['query'][_0x6d5b('0x43')]){_0x1acc3a[_0x6d5b('0x44')]=[{'all':!![]}];}return db[_0x6d5b('0x42')][_0x6d5b('0x45')](_0x1acc3a);})[_0x6d5b('0x28')](function(_0x40b7e7){_0x4c9875[_0x6d5b('0x46')]=_0x40b7e7;return _0x4c9875;})[_0x6d5b('0x28')](respondWithFilteredResult(_0x32c57b,_0x1acc3a))[_0x6d5b('0x47')](handleError(_0x32c57b,null));};exports['show']=function(_0x452d5b,_0x594733){var _0x10fc3c={'raw':![],'where':{'id':_0x452d5b[_0x6d5b('0x48')]['id']}},_0x51b9f9={};_0x51b9f9[_0x6d5b('0x31')]=_[_0x6d5b('0x49')](db['FreshdeskAccount']['rawAttributes']);_0x51b9f9[_0x6d5b('0x32')]=_['keys'](_0x452d5b[_0x6d5b('0x32')]);_0x51b9f9[_0x6d5b('0x33')]=_[_0x6d5b('0x34')](_0x51b9f9['model'],_0x51b9f9[_0x6d5b('0x32')]);_0x10fc3c['attributes']=_[_0x6d5b('0x34')](_0x51b9f9[_0x6d5b('0x31')],qs[_0x6d5b('0x36')](_0x452d5b['query']['fields']));_0x10fc3c['attributes']=_0x10fc3c['attributes']['length']?_0x10fc3c[_0x6d5b('0x35')]:_0x51b9f9[_0x6d5b('0x31')];if(_0x452d5b['query'][_0x6d5b('0x43')]){_0x10fc3c[_0x6d5b('0x44')]=[{'all':!![]}];}_0x10fc3c=_[_0x6d5b('0x3e')]({},_0x10fc3c,_0x452d5b[_0x6d5b('0x41')]);return db[_0x6d5b('0x42')][_0x6d5b('0x4a')](_0x10fc3c)[_0x6d5b('0x28')](handleEntityNotFound(_0x594733,null))[_0x6d5b('0x28')](respondWithResult(_0x594733,null))[_0x6d5b('0x47')](handleError(_0x594733,null));};exports['create']=function(_0xa031cc,_0x405621){return db[_0x6d5b('0x42')][_0x6d5b('0x4b')](_0xa031cc[_0x6d5b('0x4c')],{})[_0x6d5b('0x28')](respondWithResult(_0x405621,0xc9))[_0x6d5b('0x47')](handleError(_0x405621,null));};exports[_0x6d5b('0x27')]=function(_0x72479c,_0x3dd4fc){if(_0x72479c[_0x6d5b('0x4c')]['id']){delete _0x72479c['body']['id'];}return db['FreshdeskAccount'][_0x6d5b('0x4a')]({'where':{'id':_0x72479c[_0x6d5b('0x48')]['id']}})[_0x6d5b('0x28')](handleEntityNotFound(_0x3dd4fc,null))[_0x6d5b('0x28')](saveUpdates(_0x72479c[_0x6d5b('0x4c')],null))[_0x6d5b('0x28')](respondWithResult(_0x3dd4fc,null))[_0x6d5b('0x47')](handleError(_0x3dd4fc,null));};exports[_0x6d5b('0x4d')]=function(_0x2a5fb3,_0x36569a){return db[_0x6d5b('0x42')][_0x6d5b('0x4a')]({'where':{'id':_0x2a5fb3['params']['id']}})[_0x6d5b('0x28')](handleEntityNotFound(_0x36569a,null))[_0x6d5b('0x28')](removeEntity(_0x36569a,null))['catch'](handleError(_0x36569a,null));};exports[_0x6d5b('0x4e')]=function(_0x523f0e,_0x260499,_0x58bf66){var _0x3a474f={};var _0x25d530={};var _0x5697f9;var _0x29544f;return db['FreshdeskAccount'][_0x6d5b('0x4f')]({'where':{'id':_0x523f0e[_0x6d5b('0x48')]['id']}})[_0x6d5b('0x28')](handleEntityNotFound(_0x260499,null))[_0x6d5b('0x28')](function(_0x1a52de){if(_0x1a52de){_0x5697f9=_0x1a52de;_0x25d530['model']=_[_0x6d5b('0x49')](db[_0x6d5b('0x50')][_0x6d5b('0x51')]);_0x25d530[_0x6d5b('0x32')]=_[_0x6d5b('0x49')](_0x523f0e[_0x6d5b('0x32')]);_0x25d530[_0x6d5b('0x33')]=_[_0x6d5b('0x34')](_0x25d530[_0x6d5b('0x31')],_0x25d530['query']);_0x3a474f[_0x6d5b('0x35')]=_[_0x6d5b('0x34')](_0x25d530[_0x6d5b('0x31')],qs['fields'](_0x523f0e['query'][_0x6d5b('0x36')]));_0x3a474f[_0x6d5b('0x35')]=_0x3a474f[_0x6d5b('0x35')][_0x6d5b('0x37')]?_0x3a474f['attributes']:_0x25d530['model'];_0x3a474f['order']=qs['sort'](_0x523f0e[_0x6d5b('0x32')][_0x6d5b('0x3b')]);_0x3a474f[_0x6d5b('0x3c')]=qs[_0x6d5b('0x33')](_['pick'](_0x523f0e[_0x6d5b('0x32')],_0x25d530[_0x6d5b('0x33')]));if(_0x523f0e[_0x6d5b('0x32')]['filter']){_0x3a474f['where']=_[_0x6d5b('0x3e')](_0x3a474f[_0x6d5b('0x3c')],{'$or':_[_0x6d5b('0x2d')](_0x3a474f[_0x6d5b('0x35')],function(_0x3e22be){var _0x53ee51={};_0x53ee51[_0x3e22be]={'$like':'%'+_0x523f0e[_0x6d5b('0x32')][_0x6d5b('0x40')]+'%'};return _0x53ee51;})});}_0x3a474f=_[_0x6d5b('0x3e')]({},_0x3a474f,_0x523f0e[_0x6d5b('0x41')]);return _0x5697f9[_0x6d5b('0x4e')](_0x3a474f);}})['then'](function(_0x119105){if(_0x119105){_0x29544f=_0x119105['length'];if(!_0x523f0e[_0x6d5b('0x32')]['hasOwnProperty'](_0x6d5b('0x38'))){_0x3a474f[_0x6d5b('0x39')]=qs[_0x6d5b('0x39')](_0x523f0e['query'][_0x6d5b('0x39')]);_0x3a474f['offset']=qs[_0x6d5b('0x20')](_0x523f0e[_0x6d5b('0x32')]['offset']);}return _0x5697f9[_0x6d5b('0x4e')](_0x3a474f);}})['then'](function(_0x519a55){if(_0x519a55){return _0x519a55?{'count':_0x29544f,'rows':_0x519a55}:null;}})[_0x6d5b('0x28')](respondWithResult(_0x260499,null))['catch'](handleError(_0x260499,null));};exports[_0x6d5b('0x52')]=function(_0x1fddb4,_0x2fc45c,_0x2ac5a1){if(_0x1fddb4['body']['id']){delete _0x1fddb4[_0x6d5b('0x4c')]['id'];}return db[_0x6d5b('0x42')][_0x6d5b('0x4f')]({'where':{'id':_0x1fddb4['params']['id']}})[_0x6d5b('0x28')](handleEntityNotFound(_0x2fc45c,null))[_0x6d5b('0x28')](function(_0x5195c8){if(_0x5195c8){_0x1fddb4['body'][_0x6d5b('0x53')]=_0x5195c8['id'];_0x1fddb4['body'][_0x6d5b('0x54')]=integrations[_0x6d5b('0x55')](_0x1fddb4[_0x6d5b('0x4c')][_0x6d5b('0x56')],_0x1fddb4[_0x6d5b('0x4c')][_0x6d5b('0x2f')]);_0x1fddb4[_0x6d5b('0x4c')]['Descriptions']=integrations[_0x6d5b('0x57')](_0x1fddb4[_0x6d5b('0x4c')][_0x6d5b('0x56')],_0x1fddb4['body']['type']);return db['FreshdeskConfiguration'][_0x6d5b('0x4b')](_0x1fddb4[_0x6d5b('0x4c')],{'include':[{'model':db[_0x6d5b('0x58')],'as':_0x6d5b('0x54')},{'model':db['FreshdeskField'],'as':_0x6d5b('0x59')}]});}return null;})[_0x6d5b('0x28')](respondWithResult(_0x2fc45c,null))['catch'](handleError(_0x2fc45c,null));};exports[_0x6d5b('0x5a')]=function(_0x518e56,_0xfc32cb,_0x2fb18e){var _0x49f05e='';return db[_0x6d5b('0x42')][_0x6d5b('0x4f')]({'where':{'id':_0x518e56[_0x6d5b('0x48')]['id']},'attributes':['id',_0x6d5b('0x5b'),_0x6d5b('0x5c')]})[_0x6d5b('0x28')](handleEntityNotFound(_0xfc32cb,null))[_0x6d5b('0x28')](function(_0x4b5b1e){if(_0x4b5b1e){_0x49f05e=_0x4b5b1e[_0x6d5b('0x5b')];var _0xade321=_0x49f05e[_0x6d5b('0x5d')](-0x1);if(_0xade321==='/'){_0x49f05e=_0x49f05e['substring'](0x0,_0x49f05e[_0x6d5b('0x5e')](_0xade321));}return rp({'method':_0x6d5b('0x5f'),'uri':util[_0x6d5b('0x60')](_0x6d5b('0x61'),_0x49f05e,_0x6d5b('0x62')),'headers':{'Authorization':util['format'](_0x6d5b('0x63'),new Buffer(util[_0x6d5b('0x60')]('%s:X',_0x4b5b1e[_0x6d5b('0x5c')]))[_0x6d5b('0x64')](_0x6d5b('0x65')))},'json':!![]});}})['then'](function(_0x39b75b){if(_0x39b75b){var _0x188cfa=[_0x6d5b('0x66'),'subject',_0x6d5b('0x67'),_0x6d5b('0x68'),_0x6d5b('0x1d'),_0x6d5b('0x69'),_0x6d5b('0x6a'),_0x6d5b('0x6b'),_0x6d5b('0x6c'),'group',_0x6d5b('0x6d')];_[_0x6d5b('0x6e')](_0x39b75b,function(_0x3ec508){return _0x188cfa[_0x6d5b('0x6f')](_0x3ec508[_0x6d5b('0x2c')])||!_0x3ec508[_0x6d5b('0x70')]&&_0x3ec508['type']!=='custom_text'&&_0x3ec508[_0x6d5b('0x2f')]!==_0x6d5b('0x71');});return{'count':_0x39b75b['length'],'rows':_[_0x6d5b('0x2d')](_0x39b75b,function(_0x30c98a){return{'id':_0x30c98a[_0x6d5b('0x2c')],'name':_0x30c98a[_0x6d5b('0x72')],'custom':!_0x30c98a['default'],'options':_0x30c98a[_0x6d5b('0x73')]?_[_0x6d5b('0x2d')](_0x30c98a[_0x6d5b('0x73')],function(_0x25352f){return{'name':_['capitalize'](_0x25352f),'value':_0x25352f};}):[]};})};}})[_0x6d5b('0x28')](respondWithResult(_0xfc32cb,null))['catch'](function(_0x124300){var _0x585588=_0x518e56[_0x6d5b('0x32')][_0x6d5b('0x74')]?0x1f4:_0x124300[_0x6d5b('0x75')]||0x1f4;logger[_0x6d5b('0x2a')](_0x6d5b('0x76'),_0x6d5b('0x5a'),_0x585588,JSON[_0x6d5b('0x77')](_0x124300));delete _0x124300['name'];if(_0x585588===0x191){_0x585588=0x190;}_0xfc32cb['status'](_0x585588)['send'](_0x518e56[_0x6d5b('0x32')][_0x6d5b('0x74')]?{'message':_0x6d5b('0x78'),'statusCode':_0x124300['statusCode']}:_0x124300);});};