Built motion from commit 3a7e82ea.|2.6.29
[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 _0xb677=['map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','options','includeAll','findAll','catch','show','params','include','find','create','body','getConfigurations','findOne','addConfiguration','Subjects','channel','Descriptions','FreshdeskConfiguration','FreshdeskField','getFields','remoteUri','apiKey','slice','lastIndexOf','GET','format','api/v2/ticket_fields','%s:X','requester','subject','agent','priority','group','source','company','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','end','error','name','FreshdeskAccount','fieldName','type','key','model'];(function(_0x1752e8,_0x2b4a5a){var _0x13e904=function(_0x35396b){while(--_0x35396b){_0x1752e8['push'](_0x1752e8['shift']());}};_0x13e904(++_0x2b4a5a);}(_0xb677,0x119));var _0x7b67=function(_0x680b97,_0x389363){_0x680b97=_0x680b97-0x0;var _0x4c1cfd=_0xb677[_0x680b97];return _0x4c1cfd;};'use strict';var emlformat=require(_0x7b67('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7b67('0x1'));var jsonpatch=require(_0x7b67('0x2'));var rp=require(_0x7b67('0x3'));var moment=require(_0x7b67('0x4'));var BPromise=require(_0x7b67('0x5'));var Mustache=require(_0x7b67('0x6'));var util=require(_0x7b67('0x7'));var path=require(_0x7b67('0x8'));var sox=require('sox');var csv=require(_0x7b67('0x9'));var ejs=require(_0x7b67('0xa'));var fs=require('fs');var fs_extra=require(_0x7b67('0xb'));var _=require(_0x7b67('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7b67('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7b67('0xe'));var Papa=require('papaparse');var Redis=require(_0x7b67('0xf'));var authService=require(_0x7b67('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x7b67('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7b67('0x12'))(_0x7b67('0x13'));var utils=require(_0x7b67('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x7b67('0x15'));function respondWithStatusCode(_0x454df4,_0x1e17fc){_0x1e17fc=_0x1e17fc||0xcc;return function(_0x963f60){if(_0x963f60){return _0x454df4[_0x7b67('0x16')](_0x1e17fc);}return _0x454df4[_0x7b67('0x17')](_0x1e17fc)['end']();};}function respondWithResult(_0x37eb7a,_0x473d10){_0x473d10=_0x473d10||0xc8;return function(_0x233388){if(_0x233388){return _0x37eb7a[_0x7b67('0x17')](_0x473d10)[_0x7b67('0x18')](_0x233388);}};}function respondWithFilteredResult(_0x309f1c,_0x1861d1){return function(_0xf99987){if(_0xf99987){var _0x52c21b=typeof _0x1861d1[_0x7b67('0x19')]===_0x7b67('0x1a')&&typeof _0x1861d1[_0x7b67('0x1b')]===_0x7b67('0x1a');var _0x241f1d=_0xf99987[_0x7b67('0x1c')];var _0x59fd3d=_0x52c21b?0x0:_0x1861d1[_0x7b67('0x19')];var _0x348f28=_0x52c21b?_0xf99987[_0x7b67('0x1c')]:_0x1861d1[_0x7b67('0x19')]+_0x1861d1[_0x7b67('0x1b')];var _0x4095e7;if(_0x348f28>=_0x241f1d){_0x348f28=_0x241f1d;_0x4095e7=0xc8;}else{_0x4095e7=0xce;}_0x309f1c[_0x7b67('0x17')](_0x4095e7);return _0x309f1c[_0x7b67('0x1d')](_0x7b67('0x1e'),_0x59fd3d+'-'+_0x348f28+'/'+_0x241f1d)[_0x7b67('0x18')](_0xf99987);}return null;};}function patchUpdates(_0x5ddb36){return function(_0x125924){try{jsonpatch[_0x7b67('0x1f')](_0x125924,_0x5ddb36,!![]);}catch(_0x55cab1){return BPromise['reject'](_0x55cab1);}return _0x125924['save']();};}function saveUpdates(_0x48944a,_0x44b951){return function(_0xeabc5c){if(_0xeabc5c){return _0xeabc5c[_0x7b67('0x20')](_0x48944a)[_0x7b67('0x21')](function(_0x2c3f11){return _0x2c3f11;});}return null;};}function removeEntity(_0x56b952,_0x3b4fea){return function(_0x12d848){if(_0x12d848){return _0x12d848[_0x7b67('0x22')]()[_0x7b67('0x21')](function(){_0x56b952[_0x7b67('0x17')](0xcc)[_0x7b67('0x23')]();});}};}function handleEntityNotFound(_0x2b6da7,_0x50e71c){return function(_0x463c41){if(!_0x463c41){_0x2b6da7['sendStatus'](0x194);}return _0x463c41;};}function handleError(_0x45da6b,_0x2f1e62){_0x2f1e62=_0x2f1e62||0x1f4;return function(_0x250fb0){logger[_0x7b67('0x24')](_0x250fb0['stack']);if(_0x250fb0[_0x7b67('0x25')]){delete _0x250fb0[_0x7b67('0x25')];}_0x45da6b[_0x7b67('0x17')](_0x2f1e62)['send'](_0x250fb0);};}exports['index']=function(_0x5ac43f,_0x8649ec){var _0x4bd8b7={},_0x5ee006={},_0x2cd200={'count':0x0,'rows':[]};var _0x3de320=_['map'](db[_0x7b67('0x26')]['rawAttributes'],function(_0x4815ab){return{'name':_0x4815ab[_0x7b67('0x27')],'type':_0x4815ab[_0x7b67('0x28')][_0x7b67('0x29')]};});_0x5ee006[_0x7b67('0x2a')]=_[_0x7b67('0x2b')](_0x3de320,_0x7b67('0x25'));_0x5ee006[_0x7b67('0x2c')]=_[_0x7b67('0x2d')](_0x5ac43f[_0x7b67('0x2c')]);_0x5ee006[_0x7b67('0x2e')]=_[_0x7b67('0x2f')](_0x5ee006[_0x7b67('0x2a')],_0x5ee006[_0x7b67('0x2c')]);_0x4bd8b7[_0x7b67('0x30')]=_[_0x7b67('0x2f')](_0x5ee006[_0x7b67('0x2a')],qs[_0x7b67('0x31')](_0x5ac43f['query'][_0x7b67('0x31')]));_0x4bd8b7[_0x7b67('0x30')]=_0x4bd8b7['attributes'][_0x7b67('0x32')]?_0x4bd8b7[_0x7b67('0x30')]:_0x5ee006[_0x7b67('0x2a')];if(!_0x5ac43f[_0x7b67('0x2c')][_0x7b67('0x33')](_0x7b67('0x34'))){_0x4bd8b7[_0x7b67('0x1b')]=qs[_0x7b67('0x1b')](_0x5ac43f[_0x7b67('0x2c')][_0x7b67('0x1b')]);_0x4bd8b7[_0x7b67('0x19')]=qs[_0x7b67('0x19')](_0x5ac43f[_0x7b67('0x2c')]['offset']);}_0x4bd8b7[_0x7b67('0x35')]=qs[_0x7b67('0x36')](_0x5ac43f[_0x7b67('0x2c')][_0x7b67('0x36')]);_0x4bd8b7['where']=qs[_0x7b67('0x2e')](_[_0x7b67('0x37')](_0x5ac43f[_0x7b67('0x2c')],_0x5ee006[_0x7b67('0x2e')]),_0x3de320);if(_0x5ac43f[_0x7b67('0x2c')]['filter']){_0x4bd8b7[_0x7b67('0x38')]=_[_0x7b67('0x39')](_0x4bd8b7[_0x7b67('0x38')],{'$or':_[_0x7b67('0x2b')](_0x3de320,function(_0x2f82ac){if(_0x2f82ac[_0x7b67('0x28')]!==_0x7b67('0x3a')){var _0x254eec={};_0x254eec[_0x2f82ac[_0x7b67('0x25')]]={'$like':'%'+_0x5ac43f[_0x7b67('0x2c')][_0x7b67('0x3b')]+'%'};return _0x254eec;}})});}_0x4bd8b7=_[_0x7b67('0x39')]({},_0x4bd8b7,_0x5ac43f[_0x7b67('0x3c')]);var _0x2ef44e={'where':_0x4bd8b7[_0x7b67('0x38')]};return db['FreshdeskAccount'][_0x7b67('0x1c')](_0x2ef44e)[_0x7b67('0x21')](function(_0x1d19c8){_0x2cd200[_0x7b67('0x1c')]=_0x1d19c8;if(_0x5ac43f[_0x7b67('0x2c')][_0x7b67('0x3d')]){_0x4bd8b7['include']=[{'all':!![]}];}return db['FreshdeskAccount'][_0x7b67('0x3e')](_0x4bd8b7);})[_0x7b67('0x21')](function(_0x571ac9){_0x2cd200['rows']=_0x571ac9;return _0x2cd200;})[_0x7b67('0x21')](respondWithFilteredResult(_0x8649ec,_0x4bd8b7))[_0x7b67('0x3f')](handleError(_0x8649ec,null));};exports[_0x7b67('0x40')]=function(_0x30da75,_0x3e6f37){var _0x46629b={'raw':![],'where':{'id':_0x30da75[_0x7b67('0x41')]['id']}},_0x4f39df={};_0x4f39df[_0x7b67('0x2a')]=_[_0x7b67('0x2d')](db[_0x7b67('0x26')]['rawAttributes']);_0x4f39df[_0x7b67('0x2c')]=_[_0x7b67('0x2d')](_0x30da75[_0x7b67('0x2c')]);_0x4f39df['filters']=_['intersection'](_0x4f39df[_0x7b67('0x2a')],_0x4f39df['query']);_0x46629b[_0x7b67('0x30')]=_['intersection'](_0x4f39df['model'],qs[_0x7b67('0x31')](_0x30da75['query'][_0x7b67('0x31')]));_0x46629b['attributes']=_0x46629b[_0x7b67('0x30')][_0x7b67('0x32')]?_0x46629b['attributes']:_0x4f39df[_0x7b67('0x2a')];if(_0x30da75[_0x7b67('0x2c')][_0x7b67('0x3d')]){_0x46629b[_0x7b67('0x42')]=[{'all':!![]}];}_0x46629b=_[_0x7b67('0x39')]({},_0x46629b,_0x30da75[_0x7b67('0x3c')]);return db[_0x7b67('0x26')][_0x7b67('0x43')](_0x46629b)[_0x7b67('0x21')](handleEntityNotFound(_0x3e6f37,null))[_0x7b67('0x21')](respondWithResult(_0x3e6f37,null))[_0x7b67('0x3f')](handleError(_0x3e6f37,null));};exports[_0x7b67('0x44')]=function(_0x3dd431,_0x3e7b0f){return db['FreshdeskAccount'][_0x7b67('0x44')](_0x3dd431[_0x7b67('0x45')],{})['then'](respondWithResult(_0x3e7b0f,0xc9))[_0x7b67('0x3f')](handleError(_0x3e7b0f,null));};exports['update']=function(_0x1c80e9,_0x3ae6d5){if(_0x1c80e9[_0x7b67('0x45')]['id']){delete _0x1c80e9[_0x7b67('0x45')]['id'];}return db['FreshdeskAccount'][_0x7b67('0x43')]({'where':{'id':_0x1c80e9[_0x7b67('0x41')]['id']}})[_0x7b67('0x21')](handleEntityNotFound(_0x3ae6d5,null))['then'](saveUpdates(_0x1c80e9['body'],null))[_0x7b67('0x21')](respondWithResult(_0x3ae6d5,null))[_0x7b67('0x3f')](handleError(_0x3ae6d5,null));};exports['destroy']=function(_0x501088,_0x3d35c3){return db[_0x7b67('0x26')][_0x7b67('0x43')]({'where':{'id':_0x501088[_0x7b67('0x41')]['id']}})[_0x7b67('0x21')](handleEntityNotFound(_0x3d35c3,null))['then'](removeEntity(_0x3d35c3,null))[_0x7b67('0x3f')](handleError(_0x3d35c3,null));};exports[_0x7b67('0x46')]=function(_0x3689e4,_0x439551,_0x5a6b5d){var _0x1a2b81={};var _0x5465db={};var _0x3510b6;var _0x1ea2b5;return db[_0x7b67('0x26')][_0x7b67('0x47')]({'where':{'id':_0x3689e4[_0x7b67('0x41')]['id']}})[_0x7b67('0x21')](handleEntityNotFound(_0x439551,null))[_0x7b67('0x21')](function(_0x2023da){if(_0x2023da){_0x3510b6=_0x2023da;_0x5465db['model']=_['keys'](db['FreshdeskConfiguration']['rawAttributes']);_0x5465db[_0x7b67('0x2c')]=_[_0x7b67('0x2d')](_0x3689e4[_0x7b67('0x2c')]);_0x5465db[_0x7b67('0x2e')]=_[_0x7b67('0x2f')](_0x5465db['model'],_0x5465db[_0x7b67('0x2c')]);_0x1a2b81['attributes']=_[_0x7b67('0x2f')](_0x5465db[_0x7b67('0x2a')],qs[_0x7b67('0x31')](_0x3689e4[_0x7b67('0x2c')][_0x7b67('0x31')]));_0x1a2b81['attributes']=_0x1a2b81[_0x7b67('0x30')][_0x7b67('0x32')]?_0x1a2b81[_0x7b67('0x30')]:_0x5465db[_0x7b67('0x2a')];_0x1a2b81['order']=qs[_0x7b67('0x36')](_0x3689e4[_0x7b67('0x2c')]['sort']);_0x1a2b81[_0x7b67('0x38')]=qs[_0x7b67('0x2e')](_[_0x7b67('0x37')](_0x3689e4['query'],_0x5465db[_0x7b67('0x2e')]));if(_0x3689e4[_0x7b67('0x2c')]['filter']){_0x1a2b81['where']=_[_0x7b67('0x39')](_0x1a2b81[_0x7b67('0x38')],{'$or':_[_0x7b67('0x2b')](_0x1a2b81['attributes'],function(_0x1048e9){var _0x1767f9={};_0x1767f9[_0x1048e9]={'$like':'%'+_0x3689e4[_0x7b67('0x2c')]['filter']+'%'};return _0x1767f9;})});}_0x1a2b81=_[_0x7b67('0x39')]({},_0x1a2b81,_0x3689e4[_0x7b67('0x3c')]);return _0x3510b6['getConfigurations'](_0x1a2b81);}})['then'](function(_0x4f9267){if(_0x4f9267){_0x1ea2b5=_0x4f9267[_0x7b67('0x32')];if(!_0x3689e4[_0x7b67('0x2c')][_0x7b67('0x33')]('nolimit')){_0x1a2b81['limit']=qs[_0x7b67('0x1b')](_0x3689e4['query'][_0x7b67('0x1b')]);_0x1a2b81[_0x7b67('0x19')]=qs[_0x7b67('0x19')](_0x3689e4['query'][_0x7b67('0x19')]);}return _0x3510b6[_0x7b67('0x46')](_0x1a2b81);}})[_0x7b67('0x21')](function(_0x44d54b){if(_0x44d54b){return _0x44d54b?{'count':_0x1ea2b5,'rows':_0x44d54b}:null;}})[_0x7b67('0x21')](respondWithResult(_0x439551,null))[_0x7b67('0x3f')](handleError(_0x439551,null));};exports[_0x7b67('0x48')]=function(_0x7c9f96,_0x1e4b7a,_0x16dd22){if(_0x7c9f96['body']['id']){delete _0x7c9f96[_0x7b67('0x45')]['id'];}return db[_0x7b67('0x26')]['findOne']({'where':{'id':_0x7c9f96['params']['id']}})[_0x7b67('0x21')](handleEntityNotFound(_0x1e4b7a,null))['then'](function(_0x5115bc){if(_0x5115bc){_0x7c9f96[_0x7b67('0x45')]['AccountId']=_0x5115bc['id'];_0x7c9f96['body'][_0x7b67('0x49')]=integrations['getSubjects'](_0x7c9f96[_0x7b67('0x45')][_0x7b67('0x4a')],_0x7c9f96[_0x7b67('0x45')][_0x7b67('0x28')]);_0x7c9f96[_0x7b67('0x45')][_0x7b67('0x4b')]=integrations['getDescriptions'](_0x7c9f96['body']['channel'],_0x7c9f96[_0x7b67('0x45')][_0x7b67('0x28')]);return db[_0x7b67('0x4c')][_0x7b67('0x44')](_0x7c9f96['body'],{'include':[{'model':db[_0x7b67('0x4d')],'as':_0x7b67('0x49')},{'model':db[_0x7b67('0x4d')],'as':_0x7b67('0x4b')}]});}return null;})[_0x7b67('0x21')](respondWithResult(_0x1e4b7a,null))[_0x7b67('0x3f')](handleError(_0x1e4b7a,null));};exports[_0x7b67('0x4e')]=function(_0x2c83e7,_0x498b04,_0x3b7d30){var _0xd8ced3='';return db['FreshdeskAccount'][_0x7b67('0x47')]({'where':{'id':_0x2c83e7[_0x7b67('0x41')]['id']},'attributes':['id',_0x7b67('0x4f'),_0x7b67('0x50')]})[_0x7b67('0x21')](handleEntityNotFound(_0x498b04,null))['then'](function(_0x1cdecd){if(_0x1cdecd){_0xd8ced3=_0x1cdecd['remoteUri'];var _0x2cbab9=_0xd8ced3[_0x7b67('0x51')](-0x1);if(_0x2cbab9==='/'){_0xd8ced3=_0xd8ced3['substring'](0x0,_0xd8ced3[_0x7b67('0x52')](_0x2cbab9));}return rp({'method':_0x7b67('0x53'),'uri':util[_0x7b67('0x54')]('%s/%s',_0xd8ced3,_0x7b67('0x55')),'headers':{'Authorization':util[_0x7b67('0x54')]('Basic\x20%s',new Buffer(util[_0x7b67('0x54')](_0x7b67('0x56'),_0x1cdecd['apiKey']))['toString']('base64'))},'json':!![]});}})[_0x7b67('0x21')](function(_0x3293a1){if(_0x3293a1){var _0xa13bd9=[_0x7b67('0x57'),_0x7b67('0x58'),_0x7b67('0x59'),'description','status',_0x7b67('0x5a'),_0x7b67('0x5b'),_0x7b67('0x5c'),'ticket_type','group',_0x7b67('0x5d')];_[_0x7b67('0x5e')](_0x3293a1,function(_0x510b1f){return _0xa13bd9[_0x7b67('0x5f')](_0x510b1f[_0x7b67('0x25')])||!_0x510b1f[_0x7b67('0x60')]&&_0x510b1f['type']!==_0x7b67('0x61')&&_0x510b1f[_0x7b67('0x28')]!==_0x7b67('0x62');});return{'count':_0x3293a1[_0x7b67('0x32')],'rows':_[_0x7b67('0x2b')](_0x3293a1,function(_0xc6314f){return{'id':_0xc6314f[_0x7b67('0x25')],'name':_0xc6314f[_0x7b67('0x63')],'custom':!_0xc6314f[_0x7b67('0x60')],'options':_0xc6314f[_0x7b67('0x64')]?_['map'](_0xc6314f['choices'],function(_0x225000){return{'name':_[_0x7b67('0x65')](_0x225000),'value':_0x225000};}):[]};})};}})[_0x7b67('0x21')](respondWithResult(_0x498b04,null))['catch'](function(_0x2a9bcd){var _0x33f21b=_0x2c83e7['query'][_0x7b67('0x66')]?0x1f4:_0x2a9bcd[_0x7b67('0x67')]||0x1f4;logger[_0x7b67('0x24')](_0x7b67('0x68'),_0x7b67('0x4e'),_0x33f21b,JSON[_0x7b67('0x69')](_0x2a9bcd));delete _0x2a9bcd[_0x7b67('0x25')];if(_0x33f21b===0x191){_0x33f21b=0x190;}_0x498b04['status'](_0x33f21b)[_0x7b67('0x6a')](_0x2c83e7['query']['test']?{'message':_0x7b67('0x6b'),'statusCode':_0x2a9bcd[_0x7b67('0x67')]}:_0x2a9bcd);});};