Built motion from commit 7158bc59.|2.5.42
[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 _0x153c=['Descriptions','remoteUri','apiKey','slice','substring','lastIndexOf','format','%s/%s','toString','base64','subject','agent','description','priority','group','source','ticket_type','company','remove','custom_text','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','error','name','send','index','map','FreshdeskAccount','fieldName','type','key','query','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','findAll','rows','catch','show','params','keys','rawAttributes','include','options','create','body','find','getConfigurations','findOne','AccountId','getSubjects','channel','getDescriptions','FreshdeskConfiguration','FreshdeskField'];(function(_0x308ca4,_0x57770b){var _0x4086a9=function(_0x31014b){while(--_0x31014b){_0x308ca4['push'](_0x308ca4['shift']());}};_0x4086a9(++_0x57770b);}(_0x153c,0x8c));var _0xc153=function(_0x24b2d2,_0x22fd7e){_0x24b2d2=_0x24b2d2-0x0;var _0x14c929=_0x153c[_0x24b2d2];return _0x14c929;};'use strict';var emlformat=require(_0xc153('0x0'));var rimraf=require(_0xc153('0x1'));var zipdir=require(_0xc153('0x2'));var jsonpatch=require(_0xc153('0x3'));var rp=require('request-promise');var moment=require(_0xc153('0x4'));var BPromise=require(_0xc153('0x5'));var Mustache=require(_0xc153('0x6'));var util=require(_0xc153('0x7'));var path=require(_0xc153('0x8'));var sox=require(_0xc153('0x9'));var csv=require(_0xc153('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc153('0xb'));var _=require(_0xc153('0xc'));var squel=require(_0xc153('0xd'));var crypto=require(_0xc153('0xe'));var jsforce=require(_0xc153('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc153('0x10'));var Redis=require(_0xc153('0x11'));var authService=require(_0xc153('0x12'));var qs=require(_0xc153('0x13'));var as=require(_0xc153('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc153('0x15'));var utils=require(_0xc153('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xc153('0x17'));var db=require(_0xc153('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x49286f,_0x1c9d09){_0x1c9d09=_0x1c9d09||0xcc;return function(_0x1f7c65){if(_0x1f7c65){return _0x49286f[_0xc153('0x19')](_0x1c9d09);}return _0x49286f['status'](_0x1c9d09)[_0xc153('0x1a')]();};}function respondWithResult(_0xaa835a,_0x1c7d6c){_0x1c7d6c=_0x1c7d6c||0xc8;return function(_0x4e4a09){if(_0x4e4a09){return _0xaa835a[_0xc153('0x1b')](_0x1c7d6c)[_0xc153('0x1c')](_0x4e4a09);}};}function respondWithFilteredResult(_0x5b74a2,_0x51a814){return function(_0x41c1a3){if(_0x41c1a3){var _0x12d901=typeof _0x51a814[_0xc153('0x1d')]===_0xc153('0x1e')&&typeof _0x51a814[_0xc153('0x1f')]===_0xc153('0x1e');var _0x4804bc=_0x41c1a3[_0xc153('0x20')];var _0x54466a=_0x12d901?0x0:_0x51a814[_0xc153('0x1d')];var _0x16cfce=_0x12d901?_0x41c1a3[_0xc153('0x20')]:_0x51a814['offset']+_0x51a814[_0xc153('0x1f')];var _0x4aa563;if(_0x16cfce>=_0x4804bc){_0x16cfce=_0x4804bc;_0x4aa563=0xc8;}else{_0x4aa563=0xce;}_0x5b74a2['status'](_0x4aa563);return _0x5b74a2[_0xc153('0x21')](_0xc153('0x22'),_0x54466a+'-'+_0x16cfce+'/'+_0x4804bc)[_0xc153('0x1c')](_0x41c1a3);}return null;};}function patchUpdates(_0x95a64c){return function(_0x23fbb7){try{jsonpatch[_0xc153('0x23')](_0x23fbb7,_0x95a64c,!![]);}catch(_0x5e858d){return BPromise[_0xc153('0x24')](_0x5e858d);}return _0x23fbb7['save']();};}function saveUpdates(_0x458593,_0x1442a6){return function(_0x35335c){if(_0x35335c){return _0x35335c[_0xc153('0x25')](_0x458593)['then'](function(_0x4ac708){return _0x4ac708;});}return null;};}function removeEntity(_0x166f62,_0x4b20e0){return function(_0x22fa39){if(_0x22fa39){return _0x22fa39[_0xc153('0x26')]()[_0xc153('0x27')](function(){_0x166f62[_0xc153('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47915b,_0x39bbdb){return function(_0x401487){if(!_0x401487){_0x47915b[_0xc153('0x19')](0x194);}return _0x401487;};}function handleError(_0x159823,_0x13c7ff){_0x13c7ff=_0x13c7ff||0x1f4;return function(_0x50ff30){logger[_0xc153('0x28')](_0x50ff30['stack']);if(_0x50ff30[_0xc153('0x29')]){delete _0x50ff30[_0xc153('0x29')];}_0x159823['status'](_0x13c7ff)[_0xc153('0x2a')](_0x50ff30);};}exports[_0xc153('0x2b')]=function(_0x4c0882,_0xec10bf){var _0x919f0a={},_0x27315f={},_0x502182={'count':0x0,'rows':[]};var _0x66e9f6=_[_0xc153('0x2c')](db[_0xc153('0x2d')]['rawAttributes'],function(_0x42da38){return{'name':_0x42da38[_0xc153('0x2e')],'type':_0x42da38[_0xc153('0x2f')][_0xc153('0x30')]};});_0x27315f['model']=_[_0xc153('0x2c')](_0x66e9f6,'name');_0x27315f[_0xc153('0x31')]=_['keys'](_0x4c0882[_0xc153('0x31')]);_0x27315f[_0xc153('0x32')]=_['intersection'](_0x27315f[_0xc153('0x33')],_0x27315f['query']);_0x919f0a['attributes']=_[_0xc153('0x34')](_0x27315f[_0xc153('0x33')],qs[_0xc153('0x35')](_0x4c0882[_0xc153('0x31')][_0xc153('0x35')]));_0x919f0a['attributes']=_0x919f0a[_0xc153('0x36')][_0xc153('0x37')]?_0x919f0a[_0xc153('0x36')]:_0x27315f[_0xc153('0x33')];if(!_0x4c0882[_0xc153('0x31')][_0xc153('0x38')](_0xc153('0x39'))){_0x919f0a[_0xc153('0x1f')]=qs[_0xc153('0x1f')](_0x4c0882[_0xc153('0x31')]['limit']);_0x919f0a['offset']=qs[_0xc153('0x1d')](_0x4c0882['query'][_0xc153('0x1d')]);}_0x919f0a[_0xc153('0x3a')]=qs[_0xc153('0x3b')](_0x4c0882['query'][_0xc153('0x3b')]);_0x919f0a[_0xc153('0x3c')]=qs[_0xc153('0x32')](_[_0xc153('0x3d')](_0x4c0882[_0xc153('0x31')],_0x27315f[_0xc153('0x32')]),_0x66e9f6);if(_0x4c0882[_0xc153('0x31')][_0xc153('0x3e')]){_0x919f0a['where']=_['merge'](_0x919f0a[_0xc153('0x3c')],{'$or':_[_0xc153('0x2c')](_0x66e9f6,function(_0x30017d){if(_0x30017d[_0xc153('0x2f')]!==_0xc153('0x3f')){var _0x226a9e={};_0x226a9e[_0x30017d['name']]={'$like':'%'+_0x4c0882[_0xc153('0x31')][_0xc153('0x3e')]+'%'};return _0x226a9e;}})});}_0x919f0a=_[_0xc153('0x40')]({},_0x919f0a,_0x4c0882['options']);var _0x90a67={'where':_0x919f0a[_0xc153('0x3c')]};return db[_0xc153('0x2d')]['count'](_0x90a67)['then'](function(_0x52d318){_0x502182['count']=_0x52d318;if(_0x4c0882['query'][_0xc153('0x41')]){_0x919f0a['include']=[{'all':!![]}];}return db[_0xc153('0x2d')][_0xc153('0x42')](_0x919f0a);})[_0xc153('0x27')](function(_0x381722){_0x502182[_0xc153('0x43')]=_0x381722;return _0x502182;})[_0xc153('0x27')](respondWithFilteredResult(_0xec10bf,_0x919f0a))[_0xc153('0x44')](handleError(_0xec10bf,null));};exports[_0xc153('0x45')]=function(_0x46b245,_0x711bd0){var _0x34a3b2={'raw':![],'where':{'id':_0x46b245[_0xc153('0x46')]['id']}},_0x1893a1={};_0x1893a1['model']=_[_0xc153('0x47')](db[_0xc153('0x2d')][_0xc153('0x48')]);_0x1893a1[_0xc153('0x31')]=_[_0xc153('0x47')](_0x46b245['query']);_0x1893a1[_0xc153('0x32')]=_[_0xc153('0x34')](_0x1893a1['model'],_0x1893a1['query']);_0x34a3b2[_0xc153('0x36')]=_['intersection'](_0x1893a1['model'],qs['fields'](_0x46b245[_0xc153('0x31')]['fields']));_0x34a3b2[_0xc153('0x36')]=_0x34a3b2[_0xc153('0x36')][_0xc153('0x37')]?_0x34a3b2['attributes']:_0x1893a1['model'];if(_0x46b245[_0xc153('0x31')][_0xc153('0x41')]){_0x34a3b2[_0xc153('0x49')]=[{'all':!![]}];}_0x34a3b2=_[_0xc153('0x40')]({},_0x34a3b2,_0x46b245[_0xc153('0x4a')]);return db['FreshdeskAccount']['find'](_0x34a3b2)[_0xc153('0x27')](handleEntityNotFound(_0x711bd0,null))['then'](respondWithResult(_0x711bd0,null))['catch'](handleError(_0x711bd0,null));};exports['create']=function(_0x5bfb6f,_0x3c5f0c){return db['FreshdeskAccount'][_0xc153('0x4b')](_0x5bfb6f[_0xc153('0x4c')],{})[_0xc153('0x27')](respondWithResult(_0x3c5f0c,0xc9))[_0xc153('0x44')](handleError(_0x3c5f0c,null));};exports[_0xc153('0x25')]=function(_0x4bceb0,_0x101f91){if(_0x4bceb0[_0xc153('0x4c')]['id']){delete _0x4bceb0[_0xc153('0x4c')]['id'];}return db[_0xc153('0x2d')][_0xc153('0x4d')]({'where':{'id':_0x4bceb0['params']['id']}})['then'](handleEntityNotFound(_0x101f91,null))[_0xc153('0x27')](saveUpdates(_0x4bceb0['body'],null))[_0xc153('0x27')](respondWithResult(_0x101f91,null))[_0xc153('0x44')](handleError(_0x101f91,null));};exports[_0xc153('0x26')]=function(_0x41fe1d,_0x89aae1){return db[_0xc153('0x2d')][_0xc153('0x4d')]({'where':{'id':_0x41fe1d['params']['id']}})[_0xc153('0x27')](handleEntityNotFound(_0x89aae1,null))['then'](removeEntity(_0x89aae1,null))['catch'](handleError(_0x89aae1,null));};exports[_0xc153('0x4e')]=function(_0x12bdbc,_0x8b6ec0,_0x35a019){var _0x31c237={};var _0xec4375={};var _0x3aae8f;var _0x39e810;return db[_0xc153('0x2d')][_0xc153('0x4f')]({'where':{'id':_0x12bdbc[_0xc153('0x46')]['id']}})[_0xc153('0x27')](handleEntityNotFound(_0x8b6ec0,null))[_0xc153('0x27')](function(_0x188f75){if(_0x188f75){_0x3aae8f=_0x188f75;_0xec4375[_0xc153('0x33')]=_[_0xc153('0x47')](db['FreshdeskConfiguration'][_0xc153('0x48')]);_0xec4375[_0xc153('0x31')]=_[_0xc153('0x47')](_0x12bdbc[_0xc153('0x31')]);_0xec4375[_0xc153('0x32')]=_[_0xc153('0x34')](_0xec4375[_0xc153('0x33')],_0xec4375[_0xc153('0x31')]);_0x31c237[_0xc153('0x36')]=_[_0xc153('0x34')](_0xec4375['model'],qs['fields'](_0x12bdbc['query'][_0xc153('0x35')]));_0x31c237[_0xc153('0x36')]=_0x31c237[_0xc153('0x36')][_0xc153('0x37')]?_0x31c237['attributes']:_0xec4375[_0xc153('0x33')];_0x31c237[_0xc153('0x3a')]=qs[_0xc153('0x3b')](_0x12bdbc[_0xc153('0x31')][_0xc153('0x3b')]);_0x31c237[_0xc153('0x3c')]=qs[_0xc153('0x32')](_[_0xc153('0x3d')](_0x12bdbc['query'],_0xec4375[_0xc153('0x32')]));if(_0x12bdbc[_0xc153('0x31')][_0xc153('0x3e')]){_0x31c237[_0xc153('0x3c')]=_[_0xc153('0x40')](_0x31c237[_0xc153('0x3c')],{'$or':_[_0xc153('0x2c')](_0x31c237['attributes'],function(_0x2e385e){var _0x7d722={};_0x7d722[_0x2e385e]={'$like':'%'+_0x12bdbc[_0xc153('0x31')][_0xc153('0x3e')]+'%'};return _0x7d722;})});}_0x31c237=_[_0xc153('0x40')]({},_0x31c237,_0x12bdbc[_0xc153('0x4a')]);return _0x3aae8f['getConfigurations'](_0x31c237);}})[_0xc153('0x27')](function(_0x38f484){if(_0x38f484){_0x39e810=_0x38f484[_0xc153('0x37')];if(!_0x12bdbc['query'][_0xc153('0x38')](_0xc153('0x39'))){_0x31c237[_0xc153('0x1f')]=qs[_0xc153('0x1f')](_0x12bdbc[_0xc153('0x31')][_0xc153('0x1f')]);_0x31c237[_0xc153('0x1d')]=qs[_0xc153('0x1d')](_0x12bdbc[_0xc153('0x31')][_0xc153('0x1d')]);}return _0x3aae8f[_0xc153('0x4e')](_0x31c237);}})[_0xc153('0x27')](function(_0x523218){if(_0x523218){return _0x523218?{'count':_0x39e810,'rows':_0x523218}:null;}})[_0xc153('0x27')](respondWithResult(_0x8b6ec0,null))[_0xc153('0x44')](handleError(_0x8b6ec0,null));};exports['addConfiguration']=function(_0x426f91,_0x19ec78,_0xe59c72){if(_0x426f91[_0xc153('0x4c')]['id']){delete _0x426f91[_0xc153('0x4c')]['id'];}return db[_0xc153('0x2d')]['findOne']({'where':{'id':_0x426f91['params']['id']}})[_0xc153('0x27')](handleEntityNotFound(_0x19ec78,null))[_0xc153('0x27')](function(_0x56031f){if(_0x56031f){_0x426f91['body'][_0xc153('0x50')]=_0x56031f['id'];_0x426f91[_0xc153('0x4c')]['Subjects']=integrations[_0xc153('0x51')](_0x426f91[_0xc153('0x4c')][_0xc153('0x52')],_0x426f91['body'][_0xc153('0x2f')]);_0x426f91[_0xc153('0x4c')]['Descriptions']=integrations[_0xc153('0x53')](_0x426f91[_0xc153('0x4c')]['channel'],_0x426f91[_0xc153('0x4c')][_0xc153('0x2f')]);return db[_0xc153('0x54')]['create'](_0x426f91['body'],{'include':[{'model':db[_0xc153('0x55')],'as':'Subjects'},{'model':db[_0xc153('0x55')],'as':_0xc153('0x56')}]});}return null;})[_0xc153('0x27')](respondWithResult(_0x19ec78,null))[_0xc153('0x44')](handleError(_0x19ec78,null));};exports['getFields']=function(_0x5270a0,_0x25c87f,_0x2a1d7c){var _0x251bbd='';return db[_0xc153('0x2d')][_0xc153('0x4f')]({'where':{'id':_0x5270a0[_0xc153('0x46')]['id']},'attributes':['id',_0xc153('0x57'),_0xc153('0x58')]})[_0xc153('0x27')](handleEntityNotFound(_0x25c87f,null))['then'](function(_0xed4a50){if(_0xed4a50){_0x251bbd=_0xed4a50['remoteUri'];var _0xa3886d=_0x251bbd[_0xc153('0x59')](-0x1);if(_0xa3886d==='/'){_0x251bbd=_0x251bbd[_0xc153('0x5a')](0x0,_0x251bbd[_0xc153('0x5b')](_0xa3886d));}return rp({'method':'GET','uri':util[_0xc153('0x5c')](_0xc153('0x5d'),_0x251bbd,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xc153('0x5c')]('Basic\x20%s',new Buffer(util[_0xc153('0x5c')]('%s:X',_0xed4a50[_0xc153('0x58')]))[_0xc153('0x5e')](_0xc153('0x5f')))},'json':!![]});}})[_0xc153('0x27')](function(_0x4104b3){if(_0x4104b3){var _0x3ab4c2=['requester',_0xc153('0x60'),_0xc153('0x61'),_0xc153('0x62'),_0xc153('0x1b'),_0xc153('0x63'),_0xc153('0x64'),_0xc153('0x65'),_0xc153('0x66'),_0xc153('0x64'),_0xc153('0x67')];_[_0xc153('0x68')](_0x4104b3,function(_0x1c4529){return _0x3ab4c2['includes'](_0x1c4529['name'])||!_0x1c4529['default']&&_0x1c4529[_0xc153('0x2f')]!==_0xc153('0x69')&&_0x1c4529[_0xc153('0x2f')]!=='custom_dropdown';});return{'count':_0x4104b3[_0xc153('0x37')],'rows':_[_0xc153('0x2c')](_0x4104b3,function(_0x5c4c3c){return{'id':_0x5c4c3c[_0xc153('0x29')],'name':_0x5c4c3c['label'],'custom':!_0x5c4c3c['default'],'options':_0x5c4c3c[_0xc153('0x6a')]?_[_0xc153('0x2c')](_0x5c4c3c['choices'],function(_0x1c2174){return{'name':_[_0xc153('0x6b')](_0x1c2174),'value':_0x1c2174};}):[]};})};}})[_0xc153('0x27')](respondWithResult(_0x25c87f,null))[_0xc153('0x44')](function(_0x459eeb){var _0xeaaba3=_0x5270a0[_0xc153('0x31')][_0xc153('0x6c')]?0x1f4:_0x459eeb[_0xc153('0x6d')]||0x1f4;logger['error'](_0xc153('0x6e'),'getFields',_0xeaaba3,JSON[_0xc153('0x6f')](_0x459eeb));delete _0x459eeb[_0xc153('0x29')];if(_0xeaaba3===0x191){_0xeaaba3=0x190;}_0x25c87f[_0xc153('0x1b')](_0xeaaba3)[_0xc153('0x2a')](_0x5270a0[_0xc153('0x31')][_0xc153('0x6c')]?{'message':_0xc153('0x70'),'statusCode':_0x459eeb['statusCode']}:_0x459eeb);});};