a40277e518b8de755145e098baff845932d25453
[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 _0xbc8b=['base64','requester','subject','agent','group','remove','includes','custom_text','custom_dropdown','default','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','test','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','error','name','index','map','FreshdeskAccount','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','merge','options','includeAll','findAll','rows','catch','params','include','create','body','find','FreshdeskConfiguration','pick','getConfigurations','findOne','AccountId','Subjects','getSubjects','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString'];(function(_0x391d9e,_0x1650f9){var _0x2f1c0c=function(_0xb4f387){while(--_0xb4f387){_0x391d9e['push'](_0x391d9e['shift']());}};_0x2f1c0c(++_0x1650f9);}(_0xbc8b,0x16b));var _0xbbc8=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xbc8b[_0xbb091];return _0x467a04;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbbc8('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbbc8('0x1'));var rp=require(_0xbbc8('0x2'));var moment=require(_0xbbc8('0x3'));var BPromise=require(_0xbbc8('0x4'));var Mustache=require(_0xbbc8('0x5'));var util=require(_0xbbc8('0x6'));var path=require('path');var sox=require(_0xbbc8('0x7'));var csv=require(_0xbbc8('0x8'));var ejs=require(_0xbbc8('0x9'));var fs=require('fs');var fs_extra=require(_0xbbc8('0xa'));var _=require(_0xbbc8('0xb'));var squel=require('squel');var crypto=require(_0xbbc8('0xc'));var jsforce=require(_0xbbc8('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xbbc8('0x8'));var querystring=require(_0xbbc8('0xe'));var Papa=require(_0xbbc8('0xf'));var Redis=require(_0xbbc8('0x10'));var authService=require(_0xbbc8('0x11'));var qs=require(_0xbbc8('0x12'));var as=require(_0xbbc8('0x13'));var hardwareService=require(_0xbbc8('0x14'));var logger=require(_0xbbc8('0x15'))(_0xbbc8('0x16'));var utils=require(_0xbbc8('0x17'));var config=require(_0xbbc8('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xbbc8('0x19'))['db'];var integrations=require(_0xbbc8('0x1a'));function respondWithStatusCode(_0x1c4b00,_0x55b386){_0x55b386=_0x55b386||0xcc;return function(_0x5b4b1b){if(_0x5b4b1b){return _0x1c4b00[_0xbbc8('0x1b')](_0x55b386);}return _0x1c4b00['status'](_0x55b386)[_0xbbc8('0x1c')]();};}function respondWithResult(_0x2add43,_0x1c76df){_0x1c76df=_0x1c76df||0xc8;return function(_0x1126c7){if(_0x1126c7){return _0x2add43[_0xbbc8('0x1d')](_0x1c76df)[_0xbbc8('0x1e')](_0x1126c7);}};}function respondWithFilteredResult(_0x292cc2,_0x1cd58e){return function(_0x38bf2f){if(_0x38bf2f){var _0x20e656=typeof _0x1cd58e[_0xbbc8('0x1f')]===_0xbbc8('0x20')&&typeof _0x1cd58e[_0xbbc8('0x21')]===_0xbbc8('0x20');var _0x5b070e=_0x38bf2f[_0xbbc8('0x22')];var _0x218cae=_0x20e656?0x0:_0x1cd58e[_0xbbc8('0x1f')];var _0x291abf=_0x20e656?_0x38bf2f['count']:_0x1cd58e[_0xbbc8('0x1f')]+_0x1cd58e['limit'];var _0xc5ea1e;if(_0x291abf>=_0x5b070e){_0x291abf=_0x5b070e;_0xc5ea1e=0xc8;}else{_0xc5ea1e=0xce;}_0x292cc2[_0xbbc8('0x1d')](_0xc5ea1e);return _0x292cc2['set'](_0xbbc8('0x23'),_0x218cae+'-'+_0x291abf+'/'+_0x5b070e)[_0xbbc8('0x1e')](_0x38bf2f);}return null;};}function patchUpdates(_0x14b069){return function(_0x283526){try{jsonpatch[_0xbbc8('0x24')](_0x283526,_0x14b069,!![]);}catch(_0x35391d){return BPromise[_0xbbc8('0x25')](_0x35391d);}return _0x283526['save']();};}function saveUpdates(_0x14af5b,_0x5a1e00){return function(_0x80fb90){if(_0x80fb90){return _0x80fb90[_0xbbc8('0x26')](_0x14af5b)[_0xbbc8('0x27')](function(_0x37acb1){return _0x37acb1;});}return null;};}function removeEntity(_0x354312,_0x521c11){return function(_0xd3200c){if(_0xd3200c){return _0xd3200c[_0xbbc8('0x28')]()['then'](function(){_0x354312['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ee2dd,_0x31fc9b){return function(_0xe6be9d){if(!_0xe6be9d){_0x2ee2dd[_0xbbc8('0x1b')](0x194);}return _0xe6be9d;};}function handleError(_0x1a0129,_0x15fd05){_0x15fd05=_0x15fd05||0x1f4;return function(_0x407acd){logger[_0xbbc8('0x29')](_0x407acd['stack']);if(_0x407acd[_0xbbc8('0x2a')]){delete _0x407acd[_0xbbc8('0x2a')];}_0x1a0129[_0xbbc8('0x1d')](_0x15fd05)['send'](_0x407acd);};}exports[_0xbbc8('0x2b')]=function(_0x239e64,_0x4b0e0c){var _0x130758={},_0x56ce6b={},_0x57cc7e={'count':0x0,'rows':[]};var _0x2939f8=_[_0xbbc8('0x2c')](db[_0xbbc8('0x2d')][_0xbbc8('0x2e')],function(_0x24ec93){return{'name':_0x24ec93[_0xbbc8('0x2f')],'type':_0x24ec93['type']['key']};});_0x56ce6b[_0xbbc8('0x30')]=_[_0xbbc8('0x2c')](_0x2939f8,_0xbbc8('0x2a'));_0x56ce6b['query']=_[_0xbbc8('0x31')](_0x239e64[_0xbbc8('0x32')]);_0x56ce6b[_0xbbc8('0x33')]=_[_0xbbc8('0x34')](_0x56ce6b[_0xbbc8('0x30')],_0x56ce6b[_0xbbc8('0x32')]);_0x130758[_0xbbc8('0x35')]=_[_0xbbc8('0x34')](_0x56ce6b[_0xbbc8('0x30')],qs[_0xbbc8('0x36')](_0x239e64[_0xbbc8('0x32')]['fields']));_0x130758[_0xbbc8('0x35')]=_0x130758[_0xbbc8('0x35')][_0xbbc8('0x37')]?_0x130758[_0xbbc8('0x35')]:_0x56ce6b[_0xbbc8('0x30')];if(!_0x239e64[_0xbbc8('0x32')][_0xbbc8('0x38')](_0xbbc8('0x39'))){_0x130758[_0xbbc8('0x21')]=qs[_0xbbc8('0x21')](_0x239e64['query'][_0xbbc8('0x21')]);_0x130758[_0xbbc8('0x1f')]=qs[_0xbbc8('0x1f')](_0x239e64[_0xbbc8('0x32')][_0xbbc8('0x1f')]);}_0x130758[_0xbbc8('0x3a')]=qs['sort'](_0x239e64[_0xbbc8('0x32')][_0xbbc8('0x3b')]);_0x130758[_0xbbc8('0x3c')]=qs[_0xbbc8('0x33')](_['pick'](_0x239e64[_0xbbc8('0x32')],_0x56ce6b[_0xbbc8('0x33')]),_0x2939f8);if(_0x239e64[_0xbbc8('0x32')][_0xbbc8('0x3d')]){_0x130758[_0xbbc8('0x3c')]=_['merge'](_0x130758[_0xbbc8('0x3c')],{'$or':_[_0xbbc8('0x2c')](_0x2939f8,function(_0x2a2d68){if(_0x2a2d68[_0xbbc8('0x3e')]!=='VIRTUAL'){var _0x545bc3={};_0x545bc3[_0x2a2d68[_0xbbc8('0x2a')]]={'$like':'%'+_0x239e64['query'][_0xbbc8('0x3d')]+'%'};return _0x545bc3;}})});}_0x130758=_[_0xbbc8('0x3f')]({},_0x130758,_0x239e64[_0xbbc8('0x40')]);var _0x5ed5d2={'where':_0x130758[_0xbbc8('0x3c')]};return db['FreshdeskAccount']['count'](_0x5ed5d2)[_0xbbc8('0x27')](function(_0x37e803){_0x57cc7e['count']=_0x37e803;if(_0x239e64[_0xbbc8('0x32')][_0xbbc8('0x41')]){_0x130758['include']=[{'all':!![]}];}return db[_0xbbc8('0x2d')][_0xbbc8('0x42')](_0x130758);})[_0xbbc8('0x27')](function(_0x52c836){_0x57cc7e[_0xbbc8('0x43')]=_0x52c836;return _0x57cc7e;})[_0xbbc8('0x27')](respondWithFilteredResult(_0x4b0e0c,_0x130758))[_0xbbc8('0x44')](handleError(_0x4b0e0c,null));};exports['show']=function(_0x3e7e54,_0x1dfbce){var _0x3dd5f6={'raw':![],'where':{'id':_0x3e7e54[_0xbbc8('0x45')]['id']}},_0x3d6405={};_0x3d6405[_0xbbc8('0x30')]=_['keys'](db[_0xbbc8('0x2d')][_0xbbc8('0x2e')]);_0x3d6405['query']=_[_0xbbc8('0x31')](_0x3e7e54[_0xbbc8('0x32')]);_0x3d6405[_0xbbc8('0x33')]=_['intersection'](_0x3d6405[_0xbbc8('0x30')],_0x3d6405[_0xbbc8('0x32')]);_0x3dd5f6[_0xbbc8('0x35')]=_['intersection'](_0x3d6405[_0xbbc8('0x30')],qs['fields'](_0x3e7e54[_0xbbc8('0x32')][_0xbbc8('0x36')]));_0x3dd5f6[_0xbbc8('0x35')]=_0x3dd5f6['attributes'][_0xbbc8('0x37')]?_0x3dd5f6[_0xbbc8('0x35')]:_0x3d6405[_0xbbc8('0x30')];if(_0x3e7e54['query'][_0xbbc8('0x41')]){_0x3dd5f6[_0xbbc8('0x46')]=[{'all':!![]}];}_0x3dd5f6=_[_0xbbc8('0x3f')]({},_0x3dd5f6,_0x3e7e54[_0xbbc8('0x40')]);return db[_0xbbc8('0x2d')]['find'](_0x3dd5f6)[_0xbbc8('0x27')](handleEntityNotFound(_0x1dfbce,null))['then'](respondWithResult(_0x1dfbce,null))[_0xbbc8('0x44')](handleError(_0x1dfbce,null));};exports[_0xbbc8('0x47')]=function(_0x528b53,_0x4f3133){return db[_0xbbc8('0x2d')]['create'](_0x528b53[_0xbbc8('0x48')],{})[_0xbbc8('0x27')](respondWithResult(_0x4f3133,0xc9))[_0xbbc8('0x44')](handleError(_0x4f3133,null));};exports[_0xbbc8('0x26')]=function(_0x387dbf,_0x3d3a3a){if(_0x387dbf[_0xbbc8('0x48')]['id']){delete _0x387dbf['body']['id'];}return db[_0xbbc8('0x2d')][_0xbbc8('0x49')]({'where':{'id':_0x387dbf['params']['id']}})['then'](handleEntityNotFound(_0x3d3a3a,null))[_0xbbc8('0x27')](saveUpdates(_0x387dbf['body'],null))[_0xbbc8('0x27')](respondWithResult(_0x3d3a3a,null))[_0xbbc8('0x44')](handleError(_0x3d3a3a,null));};exports[_0xbbc8('0x28')]=function(_0x45262e,_0x228502){return db[_0xbbc8('0x2d')][_0xbbc8('0x49')]({'where':{'id':_0x45262e[_0xbbc8('0x45')]['id']}})[_0xbbc8('0x27')](handleEntityNotFound(_0x228502,null))[_0xbbc8('0x27')](removeEntity(_0x228502,null))[_0xbbc8('0x44')](handleError(_0x228502,null));};exports['getConfigurations']=function(_0x44510b,_0x46fa8d,_0x241b89){var _0x11414f={};var _0x40ac43={};var _0x219e4d;var _0x8fa10a;return db[_0xbbc8('0x2d')]['findOne']({'where':{'id':_0x44510b[_0xbbc8('0x45')]['id']}})[_0xbbc8('0x27')](handleEntityNotFound(_0x46fa8d,null))[_0xbbc8('0x27')](function(_0x2ebdf9){if(_0x2ebdf9){_0x219e4d=_0x2ebdf9;_0x40ac43[_0xbbc8('0x30')]=_['keys'](db[_0xbbc8('0x4a')]['rawAttributes']);_0x40ac43[_0xbbc8('0x32')]=_[_0xbbc8('0x31')](_0x44510b[_0xbbc8('0x32')]);_0x40ac43['filters']=_[_0xbbc8('0x34')](_0x40ac43['model'],_0x40ac43[_0xbbc8('0x32')]);_0x11414f['attributes']=_[_0xbbc8('0x34')](_0x40ac43[_0xbbc8('0x30')],qs[_0xbbc8('0x36')](_0x44510b[_0xbbc8('0x32')][_0xbbc8('0x36')]));_0x11414f[_0xbbc8('0x35')]=_0x11414f[_0xbbc8('0x35')][_0xbbc8('0x37')]?_0x11414f[_0xbbc8('0x35')]:_0x40ac43[_0xbbc8('0x30')];_0x11414f['order']=qs[_0xbbc8('0x3b')](_0x44510b['query']['sort']);_0x11414f[_0xbbc8('0x3c')]=qs[_0xbbc8('0x33')](_[_0xbbc8('0x4b')](_0x44510b[_0xbbc8('0x32')],_0x40ac43[_0xbbc8('0x33')]));if(_0x44510b[_0xbbc8('0x32')]['filter']){_0x11414f[_0xbbc8('0x3c')]=_[_0xbbc8('0x3f')](_0x11414f['where'],{'$or':_[_0xbbc8('0x2c')](_0x11414f['attributes'],function(_0x45066b){var _0x20485c={};_0x20485c[_0x45066b]={'$like':'%'+_0x44510b[_0xbbc8('0x32')]['filter']+'%'};return _0x20485c;})});}_0x11414f=_['merge']({},_0x11414f,_0x44510b[_0xbbc8('0x40')]);return _0x219e4d[_0xbbc8('0x4c')](_0x11414f);}})[_0xbbc8('0x27')](function(_0x1419ba){if(_0x1419ba){_0x8fa10a=_0x1419ba[_0xbbc8('0x37')];if(!_0x44510b[_0xbbc8('0x32')][_0xbbc8('0x38')]('nolimit')){_0x11414f[_0xbbc8('0x21')]=qs[_0xbbc8('0x21')](_0x44510b[_0xbbc8('0x32')][_0xbbc8('0x21')]);_0x11414f['offset']=qs[_0xbbc8('0x1f')](_0x44510b['query']['offset']);}return _0x219e4d[_0xbbc8('0x4c')](_0x11414f);}})[_0xbbc8('0x27')](function(_0x107727){if(_0x107727){return _0x107727?{'count':_0x8fa10a,'rows':_0x107727}:null;}})[_0xbbc8('0x27')](respondWithResult(_0x46fa8d,null))[_0xbbc8('0x44')](handleError(_0x46fa8d,null));};exports['addConfiguration']=function(_0x113a4a,_0xd1b4af,_0x392184){if(_0x113a4a[_0xbbc8('0x48')]['id']){delete _0x113a4a['body']['id'];}return db[_0xbbc8('0x2d')][_0xbbc8('0x4d')]({'where':{'id':_0x113a4a[_0xbbc8('0x45')]['id']}})[_0xbbc8('0x27')](handleEntityNotFound(_0xd1b4af,null))[_0xbbc8('0x27')](function(_0xabda07){if(_0xabda07){_0x113a4a[_0xbbc8('0x48')][_0xbbc8('0x4e')]=_0xabda07['id'];_0x113a4a[_0xbbc8('0x48')][_0xbbc8('0x4f')]=integrations[_0xbbc8('0x50')](_0x113a4a[_0xbbc8('0x48')]['channel'],_0x113a4a[_0xbbc8('0x48')][_0xbbc8('0x3e')]);_0x113a4a['body']['Descriptions']=integrations[_0xbbc8('0x51')](_0x113a4a[_0xbbc8('0x48')]['channel'],_0x113a4a[_0xbbc8('0x48')][_0xbbc8('0x3e')]);return db[_0xbbc8('0x4a')][_0xbbc8('0x47')](_0x113a4a[_0xbbc8('0x48')],{'include':[{'model':db[_0xbbc8('0x52')],'as':_0xbbc8('0x4f')},{'model':db[_0xbbc8('0x52')],'as':_0xbbc8('0x53')}]});}return null;})[_0xbbc8('0x27')](respondWithResult(_0xd1b4af,null))['catch'](handleError(_0xd1b4af,null));};exports[_0xbbc8('0x54')]=function(_0x2a7747,_0x295393,_0x393039){var _0x3a2c0e='';return db[_0xbbc8('0x2d')][_0xbbc8('0x4d')]({'where':{'id':_0x2a7747['params']['id']},'attributes':['id',_0xbbc8('0x55'),_0xbbc8('0x56')]})['then'](handleEntityNotFound(_0x295393,null))[_0xbbc8('0x27')](function(_0x350007){if(_0x350007){_0x3a2c0e=_0x350007[_0xbbc8('0x55')];var _0x4184a0=_0x3a2c0e[_0xbbc8('0x57')](-0x1);if(_0x4184a0==='/'){_0x3a2c0e=_0x3a2c0e[_0xbbc8('0x58')](0x0,_0x3a2c0e[_0xbbc8('0x59')](_0x4184a0));}return rp({'method':_0xbbc8('0x5a'),'uri':util[_0xbbc8('0x5b')](_0xbbc8('0x5c'),_0x3a2c0e,_0xbbc8('0x5d')),'headers':{'Authorization':util[_0xbbc8('0x5b')](_0xbbc8('0x5e'),new Buffer(util[_0xbbc8('0x5b')](_0xbbc8('0x5f'),_0x350007['apiKey']))[_0xbbc8('0x60')](_0xbbc8('0x61')))},'json':!![]});}})[_0xbbc8('0x27')](function(_0x7e96db){if(_0x7e96db){var _0x42b954=[_0xbbc8('0x62'),_0xbbc8('0x63'),_0xbbc8('0x64'),'description',_0xbbc8('0x1d'),'priority','group','source','ticket_type',_0xbbc8('0x65'),'company'];_[_0xbbc8('0x66')](_0x7e96db,function(_0x35d6a6){return _0x42b954[_0xbbc8('0x67')](_0x35d6a6[_0xbbc8('0x2a')])||!_0x35d6a6['default']&&_0x35d6a6['type']!==_0xbbc8('0x68')&&_0x35d6a6[_0xbbc8('0x3e')]!==_0xbbc8('0x69');});return{'count':_0x7e96db[_0xbbc8('0x37')],'rows':_['map'](_0x7e96db,function(_0x596c70){return{'id':_0x596c70[_0xbbc8('0x2a')],'name':_0x596c70['label'],'custom':!_0x596c70[_0xbbc8('0x6a')],'options':_0x596c70[_0xbbc8('0x6b')]?_['map'](_0x596c70['choices'],function(_0x33ad43){return{'name':_[_0xbbc8('0x6c')](_0x33ad43),'value':_0x33ad43};}):[]};})};}})[_0xbbc8('0x27')](respondWithResult(_0x295393,null))[_0xbbc8('0x44')](function(_0x284d81){var _0x1014cc=_0x2a7747['query']['test']?0x1f4:_0x284d81[_0xbbc8('0x6d')]||0x1f4;logger[_0xbbc8('0x29')](_0xbbc8('0x6e'),'getFields',_0x1014cc,JSON[_0xbbc8('0x6f')](_0x284d81));delete _0x284d81[_0xbbc8('0x2a')];if(_0x1014cc===0x191){_0x1014cc=0x190;}_0x295393['status'](_0x1014cc)[_0xbbc8('0x70')](_0x2a7747[_0xbbc8('0x32')][_0xbbc8('0x71')]?{'message':_0xbbc8('0x72'),'statusCode':_0x284d81['statusCode']}:_0x284d81);});};