Built motion from commit e1760111.|2.6.18
[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 _0x1cf3=['util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/integrations/configuration','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','merge','filter','options','includeAll','include','rows','catch','show','params','keys','length','find','create','body','getConfigurations','findOne','AccountId','Subjects','getSubjects','getDescriptions','FreshdeskConfiguration','FreshdeskField','Descriptions','getFields','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','%s:X','apiKey','toString','requester','subject','description','priority','group','company','remove','includes','custom_dropdown','default','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache'];(function(_0xc8d2c3,_0x5f4945){var _0x5bc307=function(_0x467487){while(--_0x467487){_0xc8d2c3['push'](_0xc8d2c3['shift']());}};_0x5bc307(++_0x5f4945);}(_0x1cf3,0x1be));var _0x31cf=function(_0x2ed445,_0x13055f){_0x2ed445=_0x2ed445-0x0;var _0x29c79f=_0x1cf3[_0x2ed445];return _0x29c79f;};'use strict';var emlformat=require(_0x31cf('0x0'));var rimraf=require(_0x31cf('0x1'));var zipdir=require(_0x31cf('0x2'));var jsonpatch=require(_0x31cf('0x3'));var rp=require('request-promise');var moment=require(_0x31cf('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x31cf('0x5'));var util=require(_0x31cf('0x6'));var path=require(_0x31cf('0x7'));var sox=require(_0x31cf('0x8'));var csv=require(_0x31cf('0x9'));var ejs=require(_0x31cf('0xa'));var fs=require('fs');var fs_extra=require(_0x31cf('0xb'));var _=require(_0x31cf('0xc'));var squel=require(_0x31cf('0xd'));var crypto=require(_0x31cf('0xe'));var jsforce=require(_0x31cf('0xf'));var deskjs=require(_0x31cf('0x10'));var toCsv=require(_0x31cf('0x9'));var querystring=require(_0x31cf('0x11'));var Papa=require('papaparse');var Redis=require(_0x31cf('0x12'));var authService=require(_0x31cf('0x13'));var qs=require(_0x31cf('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x31cf('0x15'));var logger=require(_0x31cf('0x16'))(_0x31cf('0x17'));var utils=require(_0x31cf('0x18'));var config=require(_0x31cf('0x19'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x31cf('0x1a'));function respondWithStatusCode(_0x34e202,_0xfc40c9){_0xfc40c9=_0xfc40c9||0xcc;return function(_0x464988){if(_0x464988){return _0x34e202['sendStatus'](_0xfc40c9);}return _0x34e202[_0x31cf('0x1b')](_0xfc40c9)[_0x31cf('0x1c')]();};}function respondWithResult(_0x41f3df,_0x492d3d){_0x492d3d=_0x492d3d||0xc8;return function(_0xfe3b10){if(_0xfe3b10){return _0x41f3df[_0x31cf('0x1b')](_0x492d3d)[_0x31cf('0x1d')](_0xfe3b10);}};}function respondWithFilteredResult(_0x1f6470,_0x4ae41f){return function(_0x54af12){if(_0x54af12){var _0x3be709=typeof _0x4ae41f[_0x31cf('0x1e')]===_0x31cf('0x1f')&&typeof _0x4ae41f['limit']===_0x31cf('0x1f');var _0x1218cc=_0x54af12['count'];var _0x560d11=_0x3be709?0x0:_0x4ae41f[_0x31cf('0x1e')];var _0x521be0=_0x3be709?_0x54af12[_0x31cf('0x20')]:_0x4ae41f['offset']+_0x4ae41f['limit'];var _0xb16c9f;if(_0x521be0>=_0x1218cc){_0x521be0=_0x1218cc;_0xb16c9f=0xc8;}else{_0xb16c9f=0xce;}_0x1f6470[_0x31cf('0x1b')](_0xb16c9f);return _0x1f6470[_0x31cf('0x21')](_0x31cf('0x22'),_0x560d11+'-'+_0x521be0+'/'+_0x1218cc)[_0x31cf('0x1d')](_0x54af12);}return null;};}function patchUpdates(_0x2499e7){return function(_0xd53f81){try{jsonpatch[_0x31cf('0x23')](_0xd53f81,_0x2499e7,!![]);}catch(_0x4942a8){return BPromise[_0x31cf('0x24')](_0x4942a8);}return _0xd53f81[_0x31cf('0x25')]();};}function saveUpdates(_0x247a48,_0xfa517f){return function(_0x2319d0){if(_0x2319d0){return _0x2319d0[_0x31cf('0x26')](_0x247a48)[_0x31cf('0x27')](function(_0x5cb51b){return _0x5cb51b;});}return null;};}function removeEntity(_0x33e6e1,_0x3f09d3){return function(_0x348b46){if(_0x348b46){return _0x348b46[_0x31cf('0x28')]()[_0x31cf('0x27')](function(){_0x33e6e1[_0x31cf('0x1b')](0xcc)[_0x31cf('0x1c')]();});}};}function handleEntityNotFound(_0x10dd40,_0x53664a){return function(_0x1c5a6d){if(!_0x1c5a6d){_0x10dd40[_0x31cf('0x29')](0x194);}return _0x1c5a6d;};}function handleError(_0x43519e,_0xc5fee6){_0xc5fee6=_0xc5fee6||0x1f4;return function(_0x19f3ac){logger[_0x31cf('0x2a')](_0x19f3ac[_0x31cf('0x2b')]);if(_0x19f3ac[_0x31cf('0x2c')]){delete _0x19f3ac[_0x31cf('0x2c')];}_0x43519e[_0x31cf('0x1b')](_0xc5fee6)['send'](_0x19f3ac);};}exports[_0x31cf('0x2d')]=function(_0x148e36,_0x4d7fd0){var _0x29b920={},_0x51e298={},_0x3bd4ce={'count':0x0,'rows':[]};var _0x6c789=_[_0x31cf('0x2e')](db[_0x31cf('0x2f')][_0x31cf('0x30')],function(_0x3daa30){return{'name':_0x3daa30[_0x31cf('0x31')],'type':_0x3daa30[_0x31cf('0x32')][_0x31cf('0x33')]};});_0x51e298[_0x31cf('0x34')]=_[_0x31cf('0x2e')](_0x6c789,_0x31cf('0x2c'));_0x51e298['query']=_['keys'](_0x148e36[_0x31cf('0x35')]);_0x51e298[_0x31cf('0x36')]=_[_0x31cf('0x37')](_0x51e298[_0x31cf('0x34')],_0x51e298[_0x31cf('0x35')]);_0x29b920[_0x31cf('0x38')]=_['intersection'](_0x51e298[_0x31cf('0x34')],qs[_0x31cf('0x39')](_0x148e36[_0x31cf('0x35')]['fields']));_0x29b920[_0x31cf('0x38')]=_0x29b920[_0x31cf('0x38')]['length']?_0x29b920['attributes']:_0x51e298[_0x31cf('0x34')];if(!_0x148e36[_0x31cf('0x35')][_0x31cf('0x3a')](_0x31cf('0x3b'))){_0x29b920['limit']=qs[_0x31cf('0x3c')](_0x148e36[_0x31cf('0x35')][_0x31cf('0x3c')]);_0x29b920['offset']=qs['offset'](_0x148e36['query'][_0x31cf('0x1e')]);}_0x29b920[_0x31cf('0x3d')]=qs[_0x31cf('0x3e')](_0x148e36[_0x31cf('0x35')][_0x31cf('0x3e')]);_0x29b920['where']=qs['filters'](_['pick'](_0x148e36[_0x31cf('0x35')],_0x51e298[_0x31cf('0x36')]),_0x6c789);if(_0x148e36[_0x31cf('0x35')]['filter']){_0x29b920[_0x31cf('0x3f')]=_[_0x31cf('0x40')](_0x29b920[_0x31cf('0x3f')],{'$or':_[_0x31cf('0x2e')](_0x6c789,function(_0x2ca35){if(_0x2ca35[_0x31cf('0x32')]!=='VIRTUAL'){var _0xc1a742={};_0xc1a742[_0x2ca35[_0x31cf('0x2c')]]={'$like':'%'+_0x148e36[_0x31cf('0x35')][_0x31cf('0x41')]+'%'};return _0xc1a742;}})});}_0x29b920=_[_0x31cf('0x40')]({},_0x29b920,_0x148e36[_0x31cf('0x42')]);var _0x453e11={'where':_0x29b920[_0x31cf('0x3f')]};return db[_0x31cf('0x2f')]['count'](_0x453e11)[_0x31cf('0x27')](function(_0x4bede3){_0x3bd4ce['count']=_0x4bede3;if(_0x148e36[_0x31cf('0x35')][_0x31cf('0x43')]){_0x29b920[_0x31cf('0x44')]=[{'all':!![]}];}return db[_0x31cf('0x2f')]['findAll'](_0x29b920);})[_0x31cf('0x27')](function(_0x1f2cdb){_0x3bd4ce[_0x31cf('0x45')]=_0x1f2cdb;return _0x3bd4ce;})[_0x31cf('0x27')](respondWithFilteredResult(_0x4d7fd0,_0x29b920))[_0x31cf('0x46')](handleError(_0x4d7fd0,null));};exports[_0x31cf('0x47')]=function(_0x540419,_0x4d45ed){var _0x44c1b2={'raw':![],'where':{'id':_0x540419[_0x31cf('0x48')]['id']}},_0x2bf3f9={};_0x2bf3f9[_0x31cf('0x34')]=_[_0x31cf('0x49')](db[_0x31cf('0x2f')][_0x31cf('0x30')]);_0x2bf3f9[_0x31cf('0x35')]=_[_0x31cf('0x49')](_0x540419[_0x31cf('0x35')]);_0x2bf3f9[_0x31cf('0x36')]=_[_0x31cf('0x37')](_0x2bf3f9[_0x31cf('0x34')],_0x2bf3f9[_0x31cf('0x35')]);_0x44c1b2[_0x31cf('0x38')]=_['intersection'](_0x2bf3f9[_0x31cf('0x34')],qs[_0x31cf('0x39')](_0x540419['query'][_0x31cf('0x39')]));_0x44c1b2[_0x31cf('0x38')]=_0x44c1b2[_0x31cf('0x38')][_0x31cf('0x4a')]?_0x44c1b2[_0x31cf('0x38')]:_0x2bf3f9[_0x31cf('0x34')];if(_0x540419[_0x31cf('0x35')][_0x31cf('0x43')]){_0x44c1b2[_0x31cf('0x44')]=[{'all':!![]}];}_0x44c1b2=_[_0x31cf('0x40')]({},_0x44c1b2,_0x540419[_0x31cf('0x42')]);return db[_0x31cf('0x2f')][_0x31cf('0x4b')](_0x44c1b2)[_0x31cf('0x27')](handleEntityNotFound(_0x4d45ed,null))[_0x31cf('0x27')](respondWithResult(_0x4d45ed,null))['catch'](handleError(_0x4d45ed,null));};exports['create']=function(_0x559ab0,_0x560887){return db[_0x31cf('0x2f')][_0x31cf('0x4c')](_0x559ab0[_0x31cf('0x4d')],{})['then'](respondWithResult(_0x560887,0xc9))[_0x31cf('0x46')](handleError(_0x560887,null));};exports[_0x31cf('0x26')]=function(_0x1c96f1,_0x486d77){if(_0x1c96f1[_0x31cf('0x4d')]['id']){delete _0x1c96f1[_0x31cf('0x4d')]['id'];}return db[_0x31cf('0x2f')]['find']({'where':{'id':_0x1c96f1['params']['id']}})[_0x31cf('0x27')](handleEntityNotFound(_0x486d77,null))[_0x31cf('0x27')](saveUpdates(_0x1c96f1['body'],null))[_0x31cf('0x27')](respondWithResult(_0x486d77,null))[_0x31cf('0x46')](handleError(_0x486d77,null));};exports['destroy']=function(_0x5a9f3c,_0x1ee5b1){return db[_0x31cf('0x2f')][_0x31cf('0x4b')]({'where':{'id':_0x5a9f3c[_0x31cf('0x48')]['id']}})[_0x31cf('0x27')](handleEntityNotFound(_0x1ee5b1,null))[_0x31cf('0x27')](removeEntity(_0x1ee5b1,null))[_0x31cf('0x46')](handleError(_0x1ee5b1,null));};exports[_0x31cf('0x4e')]=function(_0x2baaf3,_0x3a0ae5,_0x17ca4f){var _0x574ba2={};var _0x59b626={};var _0x1ffc54;var _0x5b3002;return db['FreshdeskAccount'][_0x31cf('0x4f')]({'where':{'id':_0x2baaf3['params']['id']}})[_0x31cf('0x27')](handleEntityNotFound(_0x3a0ae5,null))[_0x31cf('0x27')](function(_0x4a2ac1){if(_0x4a2ac1){_0x1ffc54=_0x4a2ac1;_0x59b626[_0x31cf('0x34')]=_[_0x31cf('0x49')](db['FreshdeskConfiguration']['rawAttributes']);_0x59b626[_0x31cf('0x35')]=_[_0x31cf('0x49')](_0x2baaf3[_0x31cf('0x35')]);_0x59b626['filters']=_['intersection'](_0x59b626[_0x31cf('0x34')],_0x59b626[_0x31cf('0x35')]);_0x574ba2[_0x31cf('0x38')]=_[_0x31cf('0x37')](_0x59b626[_0x31cf('0x34')],qs[_0x31cf('0x39')](_0x2baaf3['query']['fields']));_0x574ba2[_0x31cf('0x38')]=_0x574ba2[_0x31cf('0x38')][_0x31cf('0x4a')]?_0x574ba2[_0x31cf('0x38')]:_0x59b626[_0x31cf('0x34')];_0x574ba2[_0x31cf('0x3d')]=qs['sort'](_0x2baaf3[_0x31cf('0x35')][_0x31cf('0x3e')]);_0x574ba2[_0x31cf('0x3f')]=qs['filters'](_['pick'](_0x2baaf3[_0x31cf('0x35')],_0x59b626[_0x31cf('0x36')]));if(_0x2baaf3[_0x31cf('0x35')]['filter']){_0x574ba2['where']=_['merge'](_0x574ba2[_0x31cf('0x3f')],{'$or':_[_0x31cf('0x2e')](_0x574ba2[_0x31cf('0x38')],function(_0x545853){var _0x372486={};_0x372486[_0x545853]={'$like':'%'+_0x2baaf3[_0x31cf('0x35')][_0x31cf('0x41')]+'%'};return _0x372486;})});}_0x574ba2=_[_0x31cf('0x40')]({},_0x574ba2,_0x2baaf3[_0x31cf('0x42')]);return _0x1ffc54[_0x31cf('0x4e')](_0x574ba2);}})['then'](function(_0x4fc125){if(_0x4fc125){_0x5b3002=_0x4fc125['length'];if(!_0x2baaf3[_0x31cf('0x35')][_0x31cf('0x3a')](_0x31cf('0x3b'))){_0x574ba2[_0x31cf('0x3c')]=qs[_0x31cf('0x3c')](_0x2baaf3[_0x31cf('0x35')][_0x31cf('0x3c')]);_0x574ba2[_0x31cf('0x1e')]=qs[_0x31cf('0x1e')](_0x2baaf3['query'][_0x31cf('0x1e')]);}return _0x1ffc54['getConfigurations'](_0x574ba2);}})[_0x31cf('0x27')](function(_0x485b76){if(_0x485b76){return _0x485b76?{'count':_0x5b3002,'rows':_0x485b76}:null;}})[_0x31cf('0x27')](respondWithResult(_0x3a0ae5,null))[_0x31cf('0x46')](handleError(_0x3a0ae5,null));};exports['addConfiguration']=function(_0x5b30ab,_0x4ff2e7,_0xb82a7e){if(_0x5b30ab[_0x31cf('0x4d')]['id']){delete _0x5b30ab[_0x31cf('0x4d')]['id'];}return db[_0x31cf('0x2f')][_0x31cf('0x4f')]({'where':{'id':_0x5b30ab['params']['id']}})['then'](handleEntityNotFound(_0x4ff2e7,null))[_0x31cf('0x27')](function(_0x106cd0){if(_0x106cd0){_0x5b30ab[_0x31cf('0x4d')][_0x31cf('0x50')]=_0x106cd0['id'];_0x5b30ab[_0x31cf('0x4d')][_0x31cf('0x51')]=integrations[_0x31cf('0x52')](_0x5b30ab[_0x31cf('0x4d')]['channel'],_0x5b30ab[_0x31cf('0x4d')][_0x31cf('0x32')]);_0x5b30ab[_0x31cf('0x4d')]['Descriptions']=integrations[_0x31cf('0x53')](_0x5b30ab['body']['channel'],_0x5b30ab['body'][_0x31cf('0x32')]);return db[_0x31cf('0x54')][_0x31cf('0x4c')](_0x5b30ab['body'],{'include':[{'model':db['FreshdeskField'],'as':_0x31cf('0x51')},{'model':db[_0x31cf('0x55')],'as':_0x31cf('0x56')}]});}return null;})[_0x31cf('0x27')](respondWithResult(_0x4ff2e7,null))['catch'](handleError(_0x4ff2e7,null));};exports[_0x31cf('0x57')]=function(_0x2a6e69,_0x5ca5ca,_0x39570f){var _0x2f633e='';return db[_0x31cf('0x2f')][_0x31cf('0x4f')]({'where':{'id':_0x2a6e69[_0x31cf('0x48')]['id']},'attributes':['id','remoteUri','apiKey']})['then'](handleEntityNotFound(_0x5ca5ca,null))['then'](function(_0x3a0b5f){if(_0x3a0b5f){_0x2f633e=_0x3a0b5f['remoteUri'];var _0x288be8=_0x2f633e['slice'](-0x1);if(_0x288be8==='/'){_0x2f633e=_0x2f633e[_0x31cf('0x58')](0x0,_0x2f633e[_0x31cf('0x59')](_0x288be8));}return rp({'method':_0x31cf('0x5a'),'uri':util[_0x31cf('0x5b')](_0x31cf('0x5c'),_0x2f633e,_0x31cf('0x5d')),'headers':{'Authorization':util[_0x31cf('0x5b')]('Basic\x20%s',new Buffer(util[_0x31cf('0x5b')](_0x31cf('0x5e'),_0x3a0b5f[_0x31cf('0x5f')]))[_0x31cf('0x60')]('base64'))},'json':!![]});}})[_0x31cf('0x27')](function(_0x127409){if(_0x127409){var _0x4304b3=[_0x31cf('0x61'),_0x31cf('0x62'),'agent',_0x31cf('0x63'),'status',_0x31cf('0x64'),_0x31cf('0x65'),'source','ticket_type',_0x31cf('0x65'),_0x31cf('0x66')];_[_0x31cf('0x67')](_0x127409,function(_0x47a3a2){return _0x4304b3[_0x31cf('0x68')](_0x47a3a2[_0x31cf('0x2c')])||!_0x47a3a2['default']&&_0x47a3a2[_0x31cf('0x32')]!=='custom_text'&&_0x47a3a2[_0x31cf('0x32')]!==_0x31cf('0x69');});return{'count':_0x127409[_0x31cf('0x4a')],'rows':_[_0x31cf('0x2e')](_0x127409,function(_0x1f495b){return{'id':_0x1f495b[_0x31cf('0x2c')],'name':_0x1f495b['label'],'custom':!_0x1f495b[_0x31cf('0x6a')],'options':_0x1f495b['choices']?_['map'](_0x1f495b[_0x31cf('0x6b')],function(_0x21e13c){return{'name':_[_0x31cf('0x6c')](_0x21e13c),'value':_0x21e13c};}):[]};})};}})['then'](respondWithResult(_0x5ca5ca,null))[_0x31cf('0x46')](function(_0x23aef0){var _0x588437=_0x2a6e69[_0x31cf('0x35')][_0x31cf('0x6d')]?0x1f4:_0x23aef0['statusCode']||0x1f4;logger['error'](_0x31cf('0x6e'),_0x31cf('0x57'),_0x588437,JSON['stringify'](_0x23aef0));delete _0x23aef0[_0x31cf('0x2c')];if(_0x588437===0x191){_0x588437=0x190;}_0x5ca5ca[_0x31cf('0x1b')](_0x588437)[_0x31cf('0x6f')](_0x2a6e69[_0x31cf('0x35')][_0x31cf('0x6d')]?{'message':_0x31cf('0x70'),'statusCode':_0x23aef0['statusCode']}:_0x23aef0);});};