Built motion from commit 616d3211.|2.6.4
[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 _0x1db3=['source','company','remove','includes','default','custom_text','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','fieldName','type','model','query','keys','attributes','intersection','fields','hasOwnProperty','order','sort','filters','pick','where','merge','VIRTUAL','filter','options','FreshdeskAccount','then','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','findOne','FreshdeskConfiguration','length','nolimit','AccountId','getSubjects','Descriptions','getDescriptions','channel','Subjects','FreshdeskField','getFields','remoteUri','slice','GET','format','%s/%s','Basic\x20%s','%s:X','apiKey','toString','requester','agent','description','priority','group'];(function(_0x26c740,_0x258988){var _0x3e61b2=function(_0x34a543){while(--_0x34a543){_0x26c740['push'](_0x26c740['shift']());}};_0x3e61b2(++_0x258988);}(_0x1db3,0x1e5));var _0x31db=function(_0x348743,_0x43c48a){_0x348743=_0x348743-0x0;var _0xc1c5aa=_0x1db3[_0x348743];return _0xc1c5aa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x31db('0x0'));var zipdir=require(_0x31db('0x1'));var jsonpatch=require(_0x31db('0x2'));var rp=require(_0x31db('0x3'));var moment=require(_0x31db('0x4'));var BPromise=require(_0x31db('0x5'));var Mustache=require(_0x31db('0x6'));var util=require(_0x31db('0x7'));var path=require(_0x31db('0x8'));var sox=require(_0x31db('0x9'));var csv=require(_0x31db('0xa'));var ejs=require(_0x31db('0xb'));var fs=require('fs');var fs_extra=require(_0x31db('0xc'));var _=require(_0x31db('0xd'));var squel=require(_0x31db('0xe'));var crypto=require(_0x31db('0xf'));var jsforce=require(_0x31db('0x10'));var deskjs=require(_0x31db('0x11'));var toCsv=require(_0x31db('0xa'));var querystring=require('querystring');var Papa=require(_0x31db('0x12'));var Redis=require(_0x31db('0x13'));var authService=require(_0x31db('0x14'));var qs=require(_0x31db('0x15'));var as=require(_0x31db('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x31db('0x17'))(_0x31db('0x18'));var utils=require(_0x31db('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x31db('0x1a'));var db=require(_0x31db('0x1b'))['db'];var integrations=require(_0x31db('0x1c'));function respondWithStatusCode(_0x1ca88f,_0x298707){_0x298707=_0x298707||0xcc;return function(_0x98c3d0){if(_0x98c3d0){return _0x1ca88f['sendStatus'](_0x298707);}return _0x1ca88f['status'](_0x298707)[_0x31db('0x1d')]();};}function respondWithResult(_0x5706dc,_0x1ccc17){_0x1ccc17=_0x1ccc17||0xc8;return function(_0x14dc43){if(_0x14dc43){return _0x5706dc[_0x31db('0x1e')](_0x1ccc17)[_0x31db('0x1f')](_0x14dc43);}};}function respondWithFilteredResult(_0x29f691,_0x4ccb3d){return function(_0x557907){if(_0x557907){var _0x509ea3=typeof _0x4ccb3d[_0x31db('0x20')]===_0x31db('0x21')&&typeof _0x4ccb3d[_0x31db('0x22')]===_0x31db('0x21');var _0xb54695=_0x557907[_0x31db('0x23')];var _0x9f2780=_0x509ea3?0x0:_0x4ccb3d[_0x31db('0x20')];var _0x2d9dd7=_0x509ea3?_0x557907[_0x31db('0x23')]:_0x4ccb3d[_0x31db('0x20')]+_0x4ccb3d['limit'];var _0x2182c7;if(_0x2d9dd7>=_0xb54695){_0x2d9dd7=_0xb54695;_0x2182c7=0xc8;}else{_0x2182c7=0xce;}_0x29f691['status'](_0x2182c7);return _0x29f691['set'](_0x31db('0x24'),_0x9f2780+'-'+_0x2d9dd7+'/'+_0xb54695)[_0x31db('0x1f')](_0x557907);}return null;};}function patchUpdates(_0x168002){return function(_0x2d11b2){try{jsonpatch[_0x31db('0x25')](_0x2d11b2,_0x168002,!![]);}catch(_0x20264f){return BPromise[_0x31db('0x26')](_0x20264f);}return _0x2d11b2[_0x31db('0x27')]();};}function saveUpdates(_0x204781,_0x1f00f7){return function(_0xfa19ca){if(_0xfa19ca){return _0xfa19ca[_0x31db('0x28')](_0x204781)['then'](function(_0x358d1d){return _0x358d1d;});}return null;};}function removeEntity(_0x335cc9,_0x303cf4){return function(_0x5e44b8){if(_0x5e44b8){return _0x5e44b8[_0x31db('0x29')]()['then'](function(){_0x335cc9['status'](0xcc)[_0x31db('0x1d')]();});}};}function handleEntityNotFound(_0x28d247,_0x47e34b){return function(_0x4a2dbc){if(!_0x4a2dbc){_0x28d247['sendStatus'](0x194);}return _0x4a2dbc;};}function handleError(_0x313917,_0x48668b){_0x48668b=_0x48668b||0x1f4;return function(_0x2d06de){logger[_0x31db('0x2a')](_0x2d06de[_0x31db('0x2b')]);if(_0x2d06de[_0x31db('0x2c')]){delete _0x2d06de[_0x31db('0x2c')];}_0x313917[_0x31db('0x1e')](_0x48668b)[_0x31db('0x2d')](_0x2d06de);};}exports[_0x31db('0x2e')]=function(_0x4275fb,_0x4df070){var _0x1a1124={},_0x3a7386={},_0x5e9952={'count':0x0,'rows':[]};var _0x57f5a9=_[_0x31db('0x2f')](db['FreshdeskAccount']['rawAttributes'],function(_0x5a6368){return{'name':_0x5a6368[_0x31db('0x30')],'type':_0x5a6368[_0x31db('0x31')]['key']};});_0x3a7386[_0x31db('0x32')]=_['map'](_0x57f5a9,'name');_0x3a7386[_0x31db('0x33')]=_[_0x31db('0x34')](_0x4275fb[_0x31db('0x33')]);_0x3a7386['filters']=_['intersection'](_0x3a7386[_0x31db('0x32')],_0x3a7386[_0x31db('0x33')]);_0x1a1124[_0x31db('0x35')]=_[_0x31db('0x36')](_0x3a7386[_0x31db('0x32')],qs['fields'](_0x4275fb['query'][_0x31db('0x37')]));_0x1a1124['attributes']=_0x1a1124[_0x31db('0x35')]['length']?_0x1a1124[_0x31db('0x35')]:_0x3a7386[_0x31db('0x32')];if(!_0x4275fb[_0x31db('0x33')][_0x31db('0x38')]('nolimit')){_0x1a1124[_0x31db('0x22')]=qs[_0x31db('0x22')](_0x4275fb['query']['limit']);_0x1a1124[_0x31db('0x20')]=qs[_0x31db('0x20')](_0x4275fb['query']['offset']);}_0x1a1124[_0x31db('0x39')]=qs[_0x31db('0x3a')](_0x4275fb[_0x31db('0x33')][_0x31db('0x3a')]);_0x1a1124['where']=qs[_0x31db('0x3b')](_[_0x31db('0x3c')](_0x4275fb[_0x31db('0x33')],_0x3a7386['filters']),_0x57f5a9);if(_0x4275fb[_0x31db('0x33')]['filter']){_0x1a1124[_0x31db('0x3d')]=_[_0x31db('0x3e')](_0x1a1124[_0x31db('0x3d')],{'$or':_[_0x31db('0x2f')](_0x57f5a9,function(_0x593638){if(_0x593638[_0x31db('0x31')]!==_0x31db('0x3f')){var _0x22254a={};_0x22254a[_0x593638[_0x31db('0x2c')]]={'$like':'%'+_0x4275fb['query'][_0x31db('0x40')]+'%'};return _0x22254a;}})});}_0x1a1124=_[_0x31db('0x3e')]({},_0x1a1124,_0x4275fb[_0x31db('0x41')]);var _0x14aa99={'where':_0x1a1124['where']};return db[_0x31db('0x42')][_0x31db('0x23')](_0x14aa99)[_0x31db('0x43')](function(_0x219e7f){_0x5e9952[_0x31db('0x23')]=_0x219e7f;if(_0x4275fb[_0x31db('0x33')][_0x31db('0x44')]){_0x1a1124[_0x31db('0x45')]=[{'all':!![]}];}return db[_0x31db('0x42')][_0x31db('0x46')](_0x1a1124);})[_0x31db('0x43')](function(_0x4836e2){_0x5e9952[_0x31db('0x47')]=_0x4836e2;return _0x5e9952;})[_0x31db('0x43')](respondWithFilteredResult(_0x4df070,_0x1a1124))[_0x31db('0x48')](handleError(_0x4df070,null));};exports[_0x31db('0x49')]=function(_0x3c2705,_0x405361){var _0x17d9b8={'raw':![],'where':{'id':_0x3c2705[_0x31db('0x4a')]['id']}},_0x50720e={};_0x50720e[_0x31db('0x32')]=_['keys'](db[_0x31db('0x42')]['rawAttributes']);_0x50720e[_0x31db('0x33')]=_[_0x31db('0x34')](_0x3c2705[_0x31db('0x33')]);_0x50720e['filters']=_[_0x31db('0x36')](_0x50720e[_0x31db('0x32')],_0x50720e['query']);_0x17d9b8[_0x31db('0x35')]=_[_0x31db('0x36')](_0x50720e[_0x31db('0x32')],qs[_0x31db('0x37')](_0x3c2705[_0x31db('0x33')][_0x31db('0x37')]));_0x17d9b8[_0x31db('0x35')]=_0x17d9b8[_0x31db('0x35')]['length']?_0x17d9b8[_0x31db('0x35')]:_0x50720e[_0x31db('0x32')];if(_0x3c2705[_0x31db('0x33')][_0x31db('0x44')]){_0x17d9b8[_0x31db('0x45')]=[{'all':!![]}];}_0x17d9b8=_['merge']({},_0x17d9b8,_0x3c2705['options']);return db[_0x31db('0x42')][_0x31db('0x4b')](_0x17d9b8)[_0x31db('0x43')](handleEntityNotFound(_0x405361,null))[_0x31db('0x43')](respondWithResult(_0x405361,null))[_0x31db('0x48')](handleError(_0x405361,null));};exports[_0x31db('0x4c')]=function(_0x41a9e1,_0xfa9006){return db[_0x31db('0x42')][_0x31db('0x4c')](_0x41a9e1['body'],{})[_0x31db('0x43')](respondWithResult(_0xfa9006,0xc9))[_0x31db('0x48')](handleError(_0xfa9006,null));};exports[_0x31db('0x28')]=function(_0x180021,_0x337cc3){if(_0x180021[_0x31db('0x4d')]['id']){delete _0x180021[_0x31db('0x4d')]['id'];}return db[_0x31db('0x42')]['find']({'where':{'id':_0x180021[_0x31db('0x4a')]['id']}})['then'](handleEntityNotFound(_0x337cc3,null))[_0x31db('0x43')](saveUpdates(_0x180021[_0x31db('0x4d')],null))[_0x31db('0x43')](respondWithResult(_0x337cc3,null))[_0x31db('0x48')](handleError(_0x337cc3,null));};exports['destroy']=function(_0x495e72,_0x55db42){return db[_0x31db('0x42')][_0x31db('0x4b')]({'where':{'id':_0x495e72[_0x31db('0x4a')]['id']}})[_0x31db('0x43')](handleEntityNotFound(_0x55db42,null))['then'](removeEntity(_0x55db42,null))[_0x31db('0x48')](handleError(_0x55db42,null));};exports[_0x31db('0x4e')]=function(_0x264acf,_0x484670,_0x3937ac){var _0x517094={};var _0x271e11={};var _0x17a846;var _0x51fe21;return db[_0x31db('0x42')][_0x31db('0x4f')]({'where':{'id':_0x264acf['params']['id']}})[_0x31db('0x43')](handleEntityNotFound(_0x484670,null))['then'](function(_0x919425){if(_0x919425){_0x17a846=_0x919425;_0x271e11[_0x31db('0x32')]=_['keys'](db[_0x31db('0x50')]['rawAttributes']);_0x271e11[_0x31db('0x33')]=_[_0x31db('0x34')](_0x264acf[_0x31db('0x33')]);_0x271e11[_0x31db('0x3b')]=_[_0x31db('0x36')](_0x271e11[_0x31db('0x32')],_0x271e11[_0x31db('0x33')]);_0x517094[_0x31db('0x35')]=_['intersection'](_0x271e11[_0x31db('0x32')],qs[_0x31db('0x37')](_0x264acf[_0x31db('0x33')][_0x31db('0x37')]));_0x517094[_0x31db('0x35')]=_0x517094[_0x31db('0x35')][_0x31db('0x51')]?_0x517094[_0x31db('0x35')]:_0x271e11['model'];_0x517094[_0x31db('0x39')]=qs['sort'](_0x264acf[_0x31db('0x33')][_0x31db('0x3a')]);_0x517094[_0x31db('0x3d')]=qs[_0x31db('0x3b')](_[_0x31db('0x3c')](_0x264acf[_0x31db('0x33')],_0x271e11[_0x31db('0x3b')]));if(_0x264acf[_0x31db('0x33')]['filter']){_0x517094[_0x31db('0x3d')]=_['merge'](_0x517094[_0x31db('0x3d')],{'$or':_[_0x31db('0x2f')](_0x517094[_0x31db('0x35')],function(_0x319740){var _0x22a2cf={};_0x22a2cf[_0x319740]={'$like':'%'+_0x264acf[_0x31db('0x33')][_0x31db('0x40')]+'%'};return _0x22a2cf;})});}_0x517094=_[_0x31db('0x3e')]({},_0x517094,_0x264acf[_0x31db('0x41')]);return _0x17a846[_0x31db('0x4e')](_0x517094);}})[_0x31db('0x43')](function(_0x4ced2f){if(_0x4ced2f){_0x51fe21=_0x4ced2f[_0x31db('0x51')];if(!_0x264acf['query'][_0x31db('0x38')](_0x31db('0x52'))){_0x517094[_0x31db('0x22')]=qs[_0x31db('0x22')](_0x264acf[_0x31db('0x33')][_0x31db('0x22')]);_0x517094[_0x31db('0x20')]=qs[_0x31db('0x20')](_0x264acf['query'][_0x31db('0x20')]);}return _0x17a846['getConfigurations'](_0x517094);}})[_0x31db('0x43')](function(_0x5d448b){if(_0x5d448b){return _0x5d448b?{'count':_0x51fe21,'rows':_0x5d448b}:null;}})[_0x31db('0x43')](respondWithResult(_0x484670,null))[_0x31db('0x48')](handleError(_0x484670,null));};exports['addConfiguration']=function(_0x17fe57,_0xfa95d6,_0x95c8c1){if(_0x17fe57[_0x31db('0x4d')]['id']){delete _0x17fe57[_0x31db('0x4d')]['id'];}return db[_0x31db('0x42')][_0x31db('0x4f')]({'where':{'id':_0x17fe57[_0x31db('0x4a')]['id']}})[_0x31db('0x43')](handleEntityNotFound(_0xfa95d6,null))[_0x31db('0x43')](function(_0x1526af){if(_0x1526af){_0x17fe57['body'][_0x31db('0x53')]=_0x1526af['id'];_0x17fe57[_0x31db('0x4d')]['Subjects']=integrations[_0x31db('0x54')](_0x17fe57[_0x31db('0x4d')]['channel'],_0x17fe57[_0x31db('0x4d')]['type']);_0x17fe57[_0x31db('0x4d')][_0x31db('0x55')]=integrations[_0x31db('0x56')](_0x17fe57[_0x31db('0x4d')][_0x31db('0x57')],_0x17fe57[_0x31db('0x4d')][_0x31db('0x31')]);return db['FreshdeskConfiguration']['create'](_0x17fe57['body'],{'include':[{'model':db['FreshdeskField'],'as':_0x31db('0x58')},{'model':db[_0x31db('0x59')],'as':_0x31db('0x55')}]});}return null;})[_0x31db('0x43')](respondWithResult(_0xfa95d6,null))[_0x31db('0x48')](handleError(_0xfa95d6,null));};exports[_0x31db('0x5a')]=function(_0x38cc83,_0x5dd9ab,_0x33843f){var _0xb4f67e='';return db[_0x31db('0x42')][_0x31db('0x4f')]({'where':{'id':_0x38cc83[_0x31db('0x4a')]['id']},'attributes':['id','remoteUri','apiKey']})[_0x31db('0x43')](handleEntityNotFound(_0x5dd9ab,null))[_0x31db('0x43')](function(_0x32a9bd){if(_0x32a9bd){_0xb4f67e=_0x32a9bd[_0x31db('0x5b')];var _0x107daa=_0xb4f67e[_0x31db('0x5c')](-0x1);if(_0x107daa==='/'){_0xb4f67e=_0xb4f67e['substring'](0x0,_0xb4f67e['lastIndexOf'](_0x107daa));}return rp({'method':_0x31db('0x5d'),'uri':util[_0x31db('0x5e')](_0x31db('0x5f'),_0xb4f67e,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x31db('0x5e')](_0x31db('0x60'),new Buffer(util[_0x31db('0x5e')](_0x31db('0x61'),_0x32a9bd[_0x31db('0x62')]))[_0x31db('0x63')]('base64'))},'json':!![]});}})['then'](function(_0x496478){if(_0x496478){var _0x2bfec8=[_0x31db('0x64'),'subject',_0x31db('0x65'),_0x31db('0x66'),_0x31db('0x1e'),_0x31db('0x67'),_0x31db('0x68'),_0x31db('0x69'),'ticket_type',_0x31db('0x68'),_0x31db('0x6a')];_[_0x31db('0x6b')](_0x496478,function(_0xfb23f9){return _0x2bfec8[_0x31db('0x6c')](_0xfb23f9[_0x31db('0x2c')])||!_0xfb23f9[_0x31db('0x6d')]&&_0xfb23f9[_0x31db('0x31')]!==_0x31db('0x6e')&&_0xfb23f9[_0x31db('0x31')]!=='custom_dropdown';});return{'count':_0x496478[_0x31db('0x51')],'rows':_[_0x31db('0x2f')](_0x496478,function(_0x507763){return{'id':_0x507763[_0x31db('0x2c')],'name':_0x507763[_0x31db('0x6f')],'custom':!_0x507763[_0x31db('0x6d')],'options':_0x507763[_0x31db('0x70')]?_['map'](_0x507763[_0x31db('0x70')],function(_0x5290ab){return{'name':_[_0x31db('0x71')](_0x5290ab),'value':_0x5290ab};}):[]};})};}})['then'](respondWithResult(_0x5dd9ab,null))['catch'](function(_0x1bbdc4){var _0x3a3f77=_0x38cc83['query'][_0x31db('0x72')]?0x1f4:_0x1bbdc4[_0x31db('0x73')]||0x1f4;logger[_0x31db('0x2a')](_0x31db('0x74'),_0x31db('0x5a'),_0x3a3f77,JSON[_0x31db('0x75')](_0x1bbdc4));delete _0x1bbdc4[_0x31db('0x2c')];if(_0x3a3f77===0x191){_0x3a3f77=0x190;}_0x5dd9ab[_0x31db('0x1e')](_0x3a3f77)[_0x31db('0x2d')](_0x38cc83[_0x31db('0x33')][_0x31db('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0x1bbdc4[_0x31db('0x73')]}:_0x1bbdc4);});};