Built motion from commit 2b9af5da.|2.6.26
[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 _0x40ca=['save','update','then','error','stack','name','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','catch','create','body','find','params','destroy','getConfigurations','findOne','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','format','%s/%s','Basic\x20%s','%s:X','requester','subject','agent','description','priority','group','source','ticket_type','company','remove','includes','default','custom_text','choices','capitalize','statusCode','send','test','eml-format','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','end','json','offset','undefined','limit','count','status','set','reject'];(function(_0x2f4523,_0x5896cf){var _0x292bc9=function(_0x411865){while(--_0x411865){_0x2f4523['push'](_0x2f4523['shift']());}};_0x292bc9(++_0x5896cf);}(_0x40ca,0x1a1));var _0xa40c=function(_0x37bd26,_0x5ad346){_0x37bd26=_0x37bd26-0x0;var _0xe83dc4=_0x40ca[_0x37bd26];return _0xe83dc4;};'use strict';var emlformat=require(_0xa40c('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa40c('0x1'));var rp=require(_0xa40c('0x2'));var moment=require(_0xa40c('0x3'));var BPromise=require(_0xa40c('0x4'));var Mustache=require('mustache');var util=require(_0xa40c('0x5'));var path=require('path');var sox=require(_0xa40c('0x6'));var csv=require('to-csv');var ejs=require(_0xa40c('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa40c('0x8'));var squel=require(_0xa40c('0x9'));var crypto=require(_0xa40c('0xa'));var jsforce=require(_0xa40c('0xb'));var deskjs=require(_0xa40c('0xc'));var toCsv=require('to-csv');var querystring=require(_0xa40c('0xd'));var Papa=require(_0xa40c('0xe'));var Redis=require(_0xa40c('0xf'));var authService=require(_0xa40c('0x10'));var qs=require(_0xa40c('0x11'));var as=require(_0xa40c('0x12'));var hardwareService=require(_0xa40c('0x13'));var logger=require(_0xa40c('0x14'))(_0xa40c('0x15'));var utils=require(_0xa40c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xa40c('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0xa40c('0x18'));function respondWithStatusCode(_0x15e176,_0x41b25a){_0x41b25a=_0x41b25a||0xcc;return function(_0x1b39b0){if(_0x1b39b0){return _0x15e176[_0xa40c('0x19')](_0x41b25a);}return _0x15e176['status'](_0x41b25a)[_0xa40c('0x1a')]();};}function respondWithResult(_0x16d2fc,_0x4bebe6){_0x4bebe6=_0x4bebe6||0xc8;return function(_0x298242){if(_0x298242){return _0x16d2fc['status'](_0x4bebe6)[_0xa40c('0x1b')](_0x298242);}};}function respondWithFilteredResult(_0x1f7d00,_0x6081b7){return function(_0x50421f){if(_0x50421f){var _0x55ff88=typeof _0x6081b7[_0xa40c('0x1c')]===_0xa40c('0x1d')&&typeof _0x6081b7[_0xa40c('0x1e')]===_0xa40c('0x1d');var _0xa2f9bb=_0x50421f[_0xa40c('0x1f')];var _0x224e78=_0x55ff88?0x0:_0x6081b7[_0xa40c('0x1c')];var _0x41c2bb=_0x55ff88?_0x50421f[_0xa40c('0x1f')]:_0x6081b7[_0xa40c('0x1c')]+_0x6081b7[_0xa40c('0x1e')];var _0x4fed31;if(_0x41c2bb>=_0xa2f9bb){_0x41c2bb=_0xa2f9bb;_0x4fed31=0xc8;}else{_0x4fed31=0xce;}_0x1f7d00[_0xa40c('0x20')](_0x4fed31);return _0x1f7d00[_0xa40c('0x21')]('Content-Range',_0x224e78+'-'+_0x41c2bb+'/'+_0xa2f9bb)['json'](_0x50421f);}return null;};}function patchUpdates(_0xa9fc69){return function(_0x185019){try{jsonpatch['apply'](_0x185019,_0xa9fc69,!![]);}catch(_0x5c3133){return BPromise[_0xa40c('0x22')](_0x5c3133);}return _0x185019[_0xa40c('0x23')]();};}function saveUpdates(_0x26bc3b,_0x2e3020){return function(_0xa93761){if(_0xa93761){return _0xa93761[_0xa40c('0x24')](_0x26bc3b)[_0xa40c('0x25')](function(_0x12324b){return _0x12324b;});}return null;};}function removeEntity(_0x11f17f,_0x2f177d){return function(_0x5bba37){if(_0x5bba37){return _0x5bba37['destroy']()[_0xa40c('0x25')](function(){_0x11f17f[_0xa40c('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0xfb5deb,_0xe117f8){return function(_0x990dc1){if(!_0x990dc1){_0xfb5deb['sendStatus'](0x194);}return _0x990dc1;};}function handleError(_0x4d2c3c,_0x383928){_0x383928=_0x383928||0x1f4;return function(_0xe9d08f){logger[_0xa40c('0x26')](_0xe9d08f[_0xa40c('0x27')]);if(_0xe9d08f['name']){delete _0xe9d08f[_0xa40c('0x28')];}_0x4d2c3c[_0xa40c('0x20')](_0x383928)['send'](_0xe9d08f);};}exports[_0xa40c('0x29')]=function(_0x154389,_0x450493){var _0x29e1cd={},_0x8ae47d={},_0x370f56={'count':0x0,'rows':[]};var _0x4bccd9=_[_0xa40c('0x2a')](db[_0xa40c('0x2b')][_0xa40c('0x2c')],function(_0x36d1b4){return{'name':_0x36d1b4[_0xa40c('0x2d')],'type':_0x36d1b4[_0xa40c('0x2e')][_0xa40c('0x2f')]};});_0x8ae47d['model']=_[_0xa40c('0x2a')](_0x4bccd9,_0xa40c('0x28'));_0x8ae47d['query']=_[_0xa40c('0x30')](_0x154389[_0xa40c('0x31')]);_0x8ae47d[_0xa40c('0x32')]=_[_0xa40c('0x33')](_0x8ae47d[_0xa40c('0x34')],_0x8ae47d[_0xa40c('0x31')]);_0x29e1cd[_0xa40c('0x35')]=_[_0xa40c('0x33')](_0x8ae47d[_0xa40c('0x34')],qs[_0xa40c('0x36')](_0x154389[_0xa40c('0x31')]['fields']));_0x29e1cd['attributes']=_0x29e1cd[_0xa40c('0x35')][_0xa40c('0x37')]?_0x29e1cd[_0xa40c('0x35')]:_0x8ae47d[_0xa40c('0x34')];if(!_0x154389[_0xa40c('0x31')][_0xa40c('0x38')](_0xa40c('0x39'))){_0x29e1cd['limit']=qs[_0xa40c('0x1e')](_0x154389[_0xa40c('0x31')][_0xa40c('0x1e')]);_0x29e1cd[_0xa40c('0x1c')]=qs[_0xa40c('0x1c')](_0x154389[_0xa40c('0x31')][_0xa40c('0x1c')]);}_0x29e1cd[_0xa40c('0x3a')]=qs[_0xa40c('0x3b')](_0x154389[_0xa40c('0x31')]['sort']);_0x29e1cd[_0xa40c('0x3c')]=qs[_0xa40c('0x32')](_[_0xa40c('0x3d')](_0x154389[_0xa40c('0x31')],_0x8ae47d['filters']),_0x4bccd9);if(_0x154389[_0xa40c('0x31')]['filter']){_0x29e1cd[_0xa40c('0x3c')]=_['merge'](_0x29e1cd[_0xa40c('0x3c')],{'$or':_[_0xa40c('0x2a')](_0x4bccd9,function(_0xe5f2c2){if(_0xe5f2c2['type']!=='VIRTUAL'){var _0x10e263={};_0x10e263[_0xe5f2c2[_0xa40c('0x28')]]={'$like':'%'+_0x154389[_0xa40c('0x31')][_0xa40c('0x3e')]+'%'};return _0x10e263;}})});}_0x29e1cd=_[_0xa40c('0x3f')]({},_0x29e1cd,_0x154389[_0xa40c('0x40')]);var _0x4b9012={'where':_0x29e1cd[_0xa40c('0x3c')]};return db[_0xa40c('0x2b')][_0xa40c('0x1f')](_0x4b9012)[_0xa40c('0x25')](function(_0x21efc6){_0x370f56['count']=_0x21efc6;if(_0x154389['query'][_0xa40c('0x41')]){_0x29e1cd[_0xa40c('0x42')]=[{'all':!![]}];}return db[_0xa40c('0x2b')][_0xa40c('0x43')](_0x29e1cd);})[_0xa40c('0x25')](function(_0xc3305a){_0x370f56[_0xa40c('0x44')]=_0xc3305a;return _0x370f56;})['then'](respondWithFilteredResult(_0x450493,_0x29e1cd))['catch'](handleError(_0x450493,null));};exports[_0xa40c('0x45')]=function(_0x515c31,_0x57affa){var _0x2808d7={'raw':![],'where':{'id':_0x515c31['params']['id']}},_0x5603b6={};_0x5603b6['model']=_[_0xa40c('0x30')](db[_0xa40c('0x2b')][_0xa40c('0x2c')]);_0x5603b6[_0xa40c('0x31')]=_['keys'](_0x515c31[_0xa40c('0x31')]);_0x5603b6[_0xa40c('0x32')]=_[_0xa40c('0x33')](_0x5603b6[_0xa40c('0x34')],_0x5603b6[_0xa40c('0x31')]);_0x2808d7['attributes']=_[_0xa40c('0x33')](_0x5603b6[_0xa40c('0x34')],qs['fields'](_0x515c31['query'][_0xa40c('0x36')]));_0x2808d7['attributes']=_0x2808d7['attributes']['length']?_0x2808d7[_0xa40c('0x35')]:_0x5603b6[_0xa40c('0x34')];if(_0x515c31[_0xa40c('0x31')][_0xa40c('0x41')]){_0x2808d7['include']=[{'all':!![]}];}_0x2808d7=_['merge']({},_0x2808d7,_0x515c31[_0xa40c('0x40')]);return db[_0xa40c('0x2b')]['find'](_0x2808d7)[_0xa40c('0x25')](handleEntityNotFound(_0x57affa,null))['then'](respondWithResult(_0x57affa,null))[_0xa40c('0x46')](handleError(_0x57affa,null));};exports[_0xa40c('0x47')]=function(_0x49699f,_0x495243){return db['FreshdeskAccount'][_0xa40c('0x47')](_0x49699f[_0xa40c('0x48')],{})[_0xa40c('0x25')](respondWithResult(_0x495243,0xc9))[_0xa40c('0x46')](handleError(_0x495243,null));};exports['update']=function(_0x335c72,_0x5f7899){if(_0x335c72[_0xa40c('0x48')]['id']){delete _0x335c72[_0xa40c('0x48')]['id'];}return db[_0xa40c('0x2b')][_0xa40c('0x49')]({'where':{'id':_0x335c72[_0xa40c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5f7899,null))['then'](saveUpdates(_0x335c72[_0xa40c('0x48')],null))['then'](respondWithResult(_0x5f7899,null))[_0xa40c('0x46')](handleError(_0x5f7899,null));};exports[_0xa40c('0x4b')]=function(_0x7cde92,_0x3b40f9){return db[_0xa40c('0x2b')][_0xa40c('0x49')]({'where':{'id':_0x7cde92['params']['id']}})['then'](handleEntityNotFound(_0x3b40f9,null))['then'](removeEntity(_0x3b40f9,null))['catch'](handleError(_0x3b40f9,null));};exports[_0xa40c('0x4c')]=function(_0xb1504f,_0x420709,_0x26439b){var _0x1f53d2={};var _0x2b85d8={};var _0x46781c;var _0xe25500;return db[_0xa40c('0x2b')][_0xa40c('0x4d')]({'where':{'id':_0xb1504f[_0xa40c('0x4a')]['id']}})[_0xa40c('0x25')](handleEntityNotFound(_0x420709,null))[_0xa40c('0x25')](function(_0x4d8b0b){if(_0x4d8b0b){_0x46781c=_0x4d8b0b;_0x2b85d8[_0xa40c('0x34')]=_[_0xa40c('0x30')](db['FreshdeskConfiguration']['rawAttributes']);_0x2b85d8[_0xa40c('0x31')]=_[_0xa40c('0x30')](_0xb1504f[_0xa40c('0x31')]);_0x2b85d8[_0xa40c('0x32')]=_[_0xa40c('0x33')](_0x2b85d8[_0xa40c('0x34')],_0x2b85d8[_0xa40c('0x31')]);_0x1f53d2[_0xa40c('0x35')]=_[_0xa40c('0x33')](_0x2b85d8['model'],qs[_0xa40c('0x36')](_0xb1504f['query'][_0xa40c('0x36')]));_0x1f53d2['attributes']=_0x1f53d2[_0xa40c('0x35')][_0xa40c('0x37')]?_0x1f53d2['attributes']:_0x2b85d8[_0xa40c('0x34')];_0x1f53d2['order']=qs[_0xa40c('0x3b')](_0xb1504f['query'][_0xa40c('0x3b')]);_0x1f53d2[_0xa40c('0x3c')]=qs[_0xa40c('0x32')](_[_0xa40c('0x3d')](_0xb1504f[_0xa40c('0x31')],_0x2b85d8[_0xa40c('0x32')]));if(_0xb1504f['query'][_0xa40c('0x3e')]){_0x1f53d2[_0xa40c('0x3c')]=_[_0xa40c('0x3f')](_0x1f53d2['where'],{'$or':_[_0xa40c('0x2a')](_0x1f53d2[_0xa40c('0x35')],function(_0xdfce6b){var _0x19203d={};_0x19203d[_0xdfce6b]={'$like':'%'+_0xb1504f[_0xa40c('0x31')][_0xa40c('0x3e')]+'%'};return _0x19203d;})});}_0x1f53d2=_[_0xa40c('0x3f')]({},_0x1f53d2,_0xb1504f[_0xa40c('0x40')]);return _0x46781c[_0xa40c('0x4c')](_0x1f53d2);}})['then'](function(_0xe2c3aa){if(_0xe2c3aa){_0xe25500=_0xe2c3aa[_0xa40c('0x37')];if(!_0xb1504f[_0xa40c('0x31')][_0xa40c('0x38')]('nolimit')){_0x1f53d2['limit']=qs['limit'](_0xb1504f[_0xa40c('0x31')]['limit']);_0x1f53d2['offset']=qs[_0xa40c('0x1c')](_0xb1504f[_0xa40c('0x31')]['offset']);}return _0x46781c[_0xa40c('0x4c')](_0x1f53d2);}})['then'](function(_0x236e95){if(_0x236e95){return _0x236e95?{'count':_0xe25500,'rows':_0x236e95}:null;}})[_0xa40c('0x25')](respondWithResult(_0x420709,null))[_0xa40c('0x46')](handleError(_0x420709,null));};exports['addConfiguration']=function(_0x203b74,_0x131228,_0x10a4e4){if(_0x203b74[_0xa40c('0x48')]['id']){delete _0x203b74[_0xa40c('0x48')]['id'];}return db[_0xa40c('0x2b')]['findOne']({'where':{'id':_0x203b74['params']['id']}})[_0xa40c('0x25')](handleEntityNotFound(_0x131228,null))['then'](function(_0x331029){if(_0x331029){_0x203b74[_0xa40c('0x48')][_0xa40c('0x4e')]=_0x331029['id'];_0x203b74[_0xa40c('0x48')][_0xa40c('0x4f')]=integrations[_0xa40c('0x50')](_0x203b74[_0xa40c('0x48')]['channel'],_0x203b74['body'][_0xa40c('0x2e')]);_0x203b74[_0xa40c('0x48')][_0xa40c('0x51')]=integrations[_0xa40c('0x52')](_0x203b74[_0xa40c('0x48')][_0xa40c('0x53')],_0x203b74[_0xa40c('0x48')][_0xa40c('0x2e')]);return db['FreshdeskConfiguration'][_0xa40c('0x47')](_0x203b74[_0xa40c('0x48')],{'include':[{'model':db[_0xa40c('0x54')],'as':_0xa40c('0x4f')},{'model':db[_0xa40c('0x54')],'as':'Descriptions'}]});}return null;})[_0xa40c('0x25')](respondWithResult(_0x131228,null))[_0xa40c('0x46')](handleError(_0x131228,null));};exports[_0xa40c('0x55')]=function(_0x26a01c,_0x1adc04,_0x3988c8){var _0x6ae658='';return db[_0xa40c('0x2b')][_0xa40c('0x4d')]({'where':{'id':_0x26a01c[_0xa40c('0x4a')]['id']},'attributes':['id',_0xa40c('0x56'),_0xa40c('0x57')]})[_0xa40c('0x25')](handleEntityNotFound(_0x1adc04,null))[_0xa40c('0x25')](function(_0x5d1415){if(_0x5d1415){_0x6ae658=_0x5d1415[_0xa40c('0x56')];var _0x1d1965=_0x6ae658[_0xa40c('0x58')](-0x1);if(_0x1d1965==='/'){_0x6ae658=_0x6ae658[_0xa40c('0x59')](0x0,_0x6ae658[_0xa40c('0x5a')](_0x1d1965));}return rp({'method':'GET','uri':util[_0xa40c('0x5b')](_0xa40c('0x5c'),_0x6ae658,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xa40c('0x5b')](_0xa40c('0x5d'),new Buffer(util['format'](_0xa40c('0x5e'),_0x5d1415[_0xa40c('0x57')]))['toString']('base64'))},'json':!![]});}})['then'](function(_0xe306a1){if(_0xe306a1){var _0x516bb9=[_0xa40c('0x5f'),_0xa40c('0x60'),_0xa40c('0x61'),_0xa40c('0x62'),_0xa40c('0x20'),_0xa40c('0x63'),_0xa40c('0x64'),_0xa40c('0x65'),_0xa40c('0x66'),'group',_0xa40c('0x67')];_[_0xa40c('0x68')](_0xe306a1,function(_0x59077a){return _0x516bb9[_0xa40c('0x69')](_0x59077a['name'])||!_0x59077a[_0xa40c('0x6a')]&&_0x59077a[_0xa40c('0x2e')]!==_0xa40c('0x6b')&&_0x59077a[_0xa40c('0x2e')]!=='custom_dropdown';});return{'count':_0xe306a1[_0xa40c('0x37')],'rows':_[_0xa40c('0x2a')](_0xe306a1,function(_0x526154){return{'id':_0x526154['name'],'name':_0x526154['label'],'custom':!_0x526154[_0xa40c('0x6a')],'options':_0x526154[_0xa40c('0x6c')]?_[_0xa40c('0x2a')](_0x526154[_0xa40c('0x6c')],function(_0xdf72e){return{'name':_[_0xa40c('0x6d')](_0xdf72e),'value':_0xdf72e};}):[]};})};}})[_0xa40c('0x25')](respondWithResult(_0x1adc04,null))[_0xa40c('0x46')](function(_0x13f600){var _0xa10f99=_0x26a01c[_0xa40c('0x31')]['test']?0x1f4:_0x13f600[_0xa40c('0x6e')]||0x1f4;logger[_0xa40c('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xa40c('0x55'),_0xa10f99,JSON['stringify'](_0x13f600));delete _0x13f600['name'];if(_0xa10f99===0x191){_0xa10f99=0x190;}_0x1adc04[_0xa40c('0x20')](_0xa10f99)[_0xa40c('0x6f')](_0x26a01c[_0xa40c('0x31')][_0xa40c('0x70')]?{'message':'Wrong\x20credentials','statusCode':_0x13f600[_0xa40c('0x6e')]}:_0x13f600);});};