cfd4762db8d6ec90430f6c0bcf5e05c58ea30707
[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 _0x220b=['intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','show','filters','length','include','catch','create','body','find','params','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','FreshdeskField','getFields','remoteUri','slice','substring','lastIndexOf','GET','%s/%s','Basic\x20%s','format','%s:X','toString','base64','requester','subject','agent','description','priority','group','source','company','remove','includes','default','custom_text','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','map','FreshdeskAccount','rawAttributes','fieldName','key','model','keys','query','attributes'];(function(_0x1dd684,_0x571d4b){var _0x4ee2eb=function(_0x139fad){while(--_0x139fad){_0x1dd684['push'](_0x1dd684['shift']());}};_0x4ee2eb(++_0x571d4b);}(_0x220b,0x1a2));var _0xb220=function(_0x228641,_0x25d636){_0x228641=_0x228641-0x0;var _0x5d5d78=_0x220b[_0x228641];return _0x5d5d78;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb220('0x0'));var zipdir=require(_0xb220('0x1'));var jsonpatch=require(_0xb220('0x2'));var rp=require(_0xb220('0x3'));var moment=require('moment');var BPromise=require(_0xb220('0x4'));var Mustache=require('mustache');var util=require(_0xb220('0x5'));var path=require('path');var sox=require(_0xb220('0x6'));var csv=require(_0xb220('0x7'));var ejs=require(_0xb220('0x8'));var fs=require('fs');var fs_extra=require(_0xb220('0x9'));var _=require('lodash');var squel=require(_0xb220('0xa'));var crypto=require(_0xb220('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xb220('0xc'));var toCsv=require(_0xb220('0x7'));var querystring=require(_0xb220('0xd'));var Papa=require(_0xb220('0xe'));var Redis=require(_0xb220('0xf'));var authService=require(_0xb220('0x10'));var qs=require(_0xb220('0x11'));var as=require(_0xb220('0x12'));var hardwareService=require(_0xb220('0x13'));var logger=require('../../config/logger')(_0xb220('0x14'));var utils=require(_0xb220('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x59ef3e,_0x11229c){_0x11229c=_0x11229c||0xcc;return function(_0x573971){if(_0x573971){return _0x59ef3e[_0xb220('0x16')](_0x11229c);}return _0x59ef3e[_0xb220('0x17')](_0x11229c)[_0xb220('0x18')]();};}function respondWithResult(_0x312c59,_0x576649){_0x576649=_0x576649||0xc8;return function(_0x5af78d){if(_0x5af78d){return _0x312c59[_0xb220('0x17')](_0x576649)[_0xb220('0x19')](_0x5af78d);}};}function respondWithFilteredResult(_0x159eb7,_0x2ee3d2){return function(_0x16a34b){if(_0x16a34b){var _0x2458a8=typeof _0x2ee3d2[_0xb220('0x1a')]===_0xb220('0x1b')&&typeof _0x2ee3d2[_0xb220('0x1c')]===_0xb220('0x1b');var _0x33201a=_0x16a34b[_0xb220('0x1d')];var _0x3fe419=_0x2458a8?0x0:_0x2ee3d2[_0xb220('0x1a')];var _0x87c879=_0x2458a8?_0x16a34b[_0xb220('0x1d')]:_0x2ee3d2[_0xb220('0x1a')]+_0x2ee3d2[_0xb220('0x1c')];var _0x242aee;if(_0x87c879>=_0x33201a){_0x87c879=_0x33201a;_0x242aee=0xc8;}else{_0x242aee=0xce;}_0x159eb7[_0xb220('0x17')](_0x242aee);return _0x159eb7[_0xb220('0x1e')](_0xb220('0x1f'),_0x3fe419+'-'+_0x87c879+'/'+_0x33201a)[_0xb220('0x19')](_0x16a34b);}return null;};}function patchUpdates(_0x358035){return function(_0x5d38ad){try{jsonpatch[_0xb220('0x20')](_0x5d38ad,_0x358035,!![]);}catch(_0x5ddebe){return BPromise[_0xb220('0x21')](_0x5ddebe);}return _0x5d38ad['save']();};}function saveUpdates(_0x3a1ad7,_0x501f0f){return function(_0x15ca2f){if(_0x15ca2f){return _0x15ca2f[_0xb220('0x22')](_0x3a1ad7)[_0xb220('0x23')](function(_0x2f5a0d){return _0x2f5a0d;});}return null;};}function removeEntity(_0x396c72,_0x2975ff){return function(_0x5bb719){if(_0x5bb719){return _0x5bb719[_0xb220('0x24')]()[_0xb220('0x23')](function(){_0x396c72[_0xb220('0x17')](0xcc)[_0xb220('0x18')]();});}};}function handleEntityNotFound(_0x180b94,_0x4d83aa){return function(_0x19f13a){if(!_0x19f13a){_0x180b94[_0xb220('0x16')](0x194);}return _0x19f13a;};}function handleError(_0x57768e,_0x2b9b1a){_0x2b9b1a=_0x2b9b1a||0x1f4;return function(_0x277601){logger[_0xb220('0x25')](_0x277601[_0xb220('0x26')]);if(_0x277601[_0xb220('0x27')]){delete _0x277601[_0xb220('0x27')];}_0x57768e['status'](_0x2b9b1a)[_0xb220('0x28')](_0x277601);};}exports['index']=function(_0x589e07,_0x181b14){var _0x1a9b82={},_0x2d66a3={},_0x389a4d={'count':0x0,'rows':[]};var _0x2c016e=_[_0xb220('0x29')](db[_0xb220('0x2a')][_0xb220('0x2b')],function(_0x44da01){return{'name':_0x44da01[_0xb220('0x2c')],'type':_0x44da01['type'][_0xb220('0x2d')]};});_0x2d66a3[_0xb220('0x2e')]=_[_0xb220('0x29')](_0x2c016e,'name');_0x2d66a3['query']=_[_0xb220('0x2f')](_0x589e07['query']);_0x2d66a3['filters']=_['intersection'](_0x2d66a3[_0xb220('0x2e')],_0x2d66a3[_0xb220('0x30')]);_0x1a9b82[_0xb220('0x31')]=_[_0xb220('0x32')](_0x2d66a3[_0xb220('0x2e')],qs[_0xb220('0x33')](_0x589e07['query']['fields']));_0x1a9b82[_0xb220('0x31')]=_0x1a9b82[_0xb220('0x31')]['length']?_0x1a9b82[_0xb220('0x31')]:_0x2d66a3['model'];if(!_0x589e07[_0xb220('0x30')][_0xb220('0x34')](_0xb220('0x35'))){_0x1a9b82[_0xb220('0x1c')]=qs[_0xb220('0x1c')](_0x589e07['query']['limit']);_0x1a9b82['offset']=qs[_0xb220('0x1a')](_0x589e07['query'][_0xb220('0x1a')]);}_0x1a9b82[_0xb220('0x36')]=qs[_0xb220('0x37')](_0x589e07['query']['sort']);_0x1a9b82[_0xb220('0x38')]=qs['filters'](_[_0xb220('0x39')](_0x589e07[_0xb220('0x30')],_0x2d66a3['filters']),_0x2c016e);if(_0x589e07[_0xb220('0x30')][_0xb220('0x3a')]){_0x1a9b82[_0xb220('0x38')]=_[_0xb220('0x3b')](_0x1a9b82[_0xb220('0x38')],{'$or':_[_0xb220('0x29')](_0x2c016e,function(_0x725e18){if(_0x725e18[_0xb220('0x3c')]!==_0xb220('0x3d')){var _0x8b394={};_0x8b394[_0x725e18[_0xb220('0x27')]]={'$like':'%'+_0x589e07[_0xb220('0x30')][_0xb220('0x3a')]+'%'};return _0x8b394;}})});}_0x1a9b82=_['merge']({},_0x1a9b82,_0x589e07[_0xb220('0x3e')]);var _0x211568={'where':_0x1a9b82[_0xb220('0x38')]};return db[_0xb220('0x2a')][_0xb220('0x1d')](_0x211568)['then'](function(_0x27f116){_0x389a4d[_0xb220('0x1d')]=_0x27f116;if(_0x589e07[_0xb220('0x30')][_0xb220('0x3f')]){_0x1a9b82['include']=[{'all':!![]}];}return db['FreshdeskAccount'][_0xb220('0x40')](_0x1a9b82);})['then'](function(_0x4ed027){_0x389a4d[_0xb220('0x41')]=_0x4ed027;return _0x389a4d;})['then'](respondWithFilteredResult(_0x181b14,_0x1a9b82))['catch'](handleError(_0x181b14,null));};exports[_0xb220('0x42')]=function(_0x14c6fd,_0x3f357a){var _0x24d75c={'raw':![],'where':{'id':_0x14c6fd['params']['id']}},_0x447bf7={};_0x447bf7[_0xb220('0x2e')]=_[_0xb220('0x2f')](db[_0xb220('0x2a')][_0xb220('0x2b')]);_0x447bf7[_0xb220('0x30')]=_[_0xb220('0x2f')](_0x14c6fd[_0xb220('0x30')]);_0x447bf7[_0xb220('0x43')]=_[_0xb220('0x32')](_0x447bf7['model'],_0x447bf7['query']);_0x24d75c['attributes']=_[_0xb220('0x32')](_0x447bf7[_0xb220('0x2e')],qs[_0xb220('0x33')](_0x14c6fd[_0xb220('0x30')][_0xb220('0x33')]));_0x24d75c[_0xb220('0x31')]=_0x24d75c[_0xb220('0x31')][_0xb220('0x44')]?_0x24d75c[_0xb220('0x31')]:_0x447bf7[_0xb220('0x2e')];if(_0x14c6fd[_0xb220('0x30')][_0xb220('0x3f')]){_0x24d75c[_0xb220('0x45')]=[{'all':!![]}];}_0x24d75c=_['merge']({},_0x24d75c,_0x14c6fd[_0xb220('0x3e')]);return db[_0xb220('0x2a')]['find'](_0x24d75c)[_0xb220('0x23')](handleEntityNotFound(_0x3f357a,null))[_0xb220('0x23')](respondWithResult(_0x3f357a,null))[_0xb220('0x46')](handleError(_0x3f357a,null));};exports[_0xb220('0x47')]=function(_0x3d084d,_0x42906d){return db[_0xb220('0x2a')][_0xb220('0x47')](_0x3d084d[_0xb220('0x48')],{})[_0xb220('0x23')](respondWithResult(_0x42906d,0xc9))['catch'](handleError(_0x42906d,null));};exports['update']=function(_0x4d80f6,_0x4172ed){if(_0x4d80f6[_0xb220('0x48')]['id']){delete _0x4d80f6[_0xb220('0x48')]['id'];}return db[_0xb220('0x2a')]['find']({'where':{'id':_0x4d80f6['params']['id']}})[_0xb220('0x23')](handleEntityNotFound(_0x4172ed,null))[_0xb220('0x23')](saveUpdates(_0x4d80f6['body'],null))['then'](respondWithResult(_0x4172ed,null))[_0xb220('0x46')](handleError(_0x4172ed,null));};exports['destroy']=function(_0x427dd8,_0xa4ce65){return db[_0xb220('0x2a')][_0xb220('0x49')]({'where':{'id':_0x427dd8[_0xb220('0x4a')]['id']}})[_0xb220('0x23')](handleEntityNotFound(_0xa4ce65,null))['then'](removeEntity(_0xa4ce65,null))[_0xb220('0x46')](handleError(_0xa4ce65,null));};exports[_0xb220('0x4b')]=function(_0x3f1f9b,_0x1bb899,_0x366519){var _0x2fdbe8={};var _0x5bc519={};var _0x5218e3;var _0x179cc5;return db[_0xb220('0x2a')][_0xb220('0x4c')]({'where':{'id':_0x3f1f9b[_0xb220('0x4a')]['id']}})[_0xb220('0x23')](handleEntityNotFound(_0x1bb899,null))[_0xb220('0x23')](function(_0x255b7b){if(_0x255b7b){_0x5218e3=_0x255b7b;_0x5bc519[_0xb220('0x2e')]=_[_0xb220('0x2f')](db[_0xb220('0x4d')]['rawAttributes']);_0x5bc519[_0xb220('0x30')]=_['keys'](_0x3f1f9b[_0xb220('0x30')]);_0x5bc519[_0xb220('0x43')]=_[_0xb220('0x32')](_0x5bc519[_0xb220('0x2e')],_0x5bc519[_0xb220('0x30')]);_0x2fdbe8[_0xb220('0x31')]=_[_0xb220('0x32')](_0x5bc519['model'],qs['fields'](_0x3f1f9b[_0xb220('0x30')][_0xb220('0x33')]));_0x2fdbe8['attributes']=_0x2fdbe8[_0xb220('0x31')]['length']?_0x2fdbe8[_0xb220('0x31')]:_0x5bc519['model'];_0x2fdbe8[_0xb220('0x36')]=qs[_0xb220('0x37')](_0x3f1f9b[_0xb220('0x30')]['sort']);_0x2fdbe8['where']=qs[_0xb220('0x43')](_[_0xb220('0x39')](_0x3f1f9b[_0xb220('0x30')],_0x5bc519['filters']));if(_0x3f1f9b[_0xb220('0x30')][_0xb220('0x3a')]){_0x2fdbe8[_0xb220('0x38')]=_[_0xb220('0x3b')](_0x2fdbe8[_0xb220('0x38')],{'$or':_[_0xb220('0x29')](_0x2fdbe8[_0xb220('0x31')],function(_0x1812fd){var _0x186951={};_0x186951[_0x1812fd]={'$like':'%'+_0x3f1f9b[_0xb220('0x30')][_0xb220('0x3a')]+'%'};return _0x186951;})});}_0x2fdbe8=_[_0xb220('0x3b')]({},_0x2fdbe8,_0x3f1f9b[_0xb220('0x3e')]);return _0x5218e3['getConfigurations'](_0x2fdbe8);}})['then'](function(_0x56bf00){if(_0x56bf00){_0x179cc5=_0x56bf00[_0xb220('0x44')];if(!_0x3f1f9b[_0xb220('0x30')][_0xb220('0x34')](_0xb220('0x35'))){_0x2fdbe8[_0xb220('0x1c')]=qs[_0xb220('0x1c')](_0x3f1f9b[_0xb220('0x30')][_0xb220('0x1c')]);_0x2fdbe8['offset']=qs[_0xb220('0x1a')](_0x3f1f9b[_0xb220('0x30')]['offset']);}return _0x5218e3[_0xb220('0x4b')](_0x2fdbe8);}})['then'](function(_0x147c2c){if(_0x147c2c){return _0x147c2c?{'count':_0x179cc5,'rows':_0x147c2c}:null;}})[_0xb220('0x23')](respondWithResult(_0x1bb899,null))[_0xb220('0x46')](handleError(_0x1bb899,null));};exports[_0xb220('0x4e')]=function(_0x2b8dea,_0x218c5f,_0x13f0b7){if(_0x2b8dea['body']['id']){delete _0x2b8dea[_0xb220('0x48')]['id'];}return db[_0xb220('0x2a')]['findOne']({'where':{'id':_0x2b8dea[_0xb220('0x4a')]['id']}})[_0xb220('0x23')](handleEntityNotFound(_0x218c5f,null))['then'](function(_0x17c2b6){if(_0x17c2b6){_0x2b8dea[_0xb220('0x48')][_0xb220('0x4f')]=_0x17c2b6['id'];_0x2b8dea[_0xb220('0x48')][_0xb220('0x50')]=integrations[_0xb220('0x51')](_0x2b8dea[_0xb220('0x48')][_0xb220('0x52')],_0x2b8dea['body'][_0xb220('0x3c')]);_0x2b8dea['body'][_0xb220('0x53')]=integrations['getDescriptions'](_0x2b8dea[_0xb220('0x48')][_0xb220('0x52')],_0x2b8dea[_0xb220('0x48')][_0xb220('0x3c')]);return db[_0xb220('0x4d')][_0xb220('0x47')](_0x2b8dea[_0xb220('0x48')],{'include':[{'model':db[_0xb220('0x54')],'as':_0xb220('0x50')},{'model':db['FreshdeskField'],'as':'Descriptions'}]});}return null;})[_0xb220('0x23')](respondWithResult(_0x218c5f,null))[_0xb220('0x46')](handleError(_0x218c5f,null));};exports[_0xb220('0x55')]=function(_0x56a8af,_0x4e392c,_0x37e21c){var _0x5adb7a='';return db[_0xb220('0x2a')][_0xb220('0x4c')]({'where':{'id':_0x56a8af[_0xb220('0x4a')]['id']},'attributes':['id',_0xb220('0x56'),'apiKey']})[_0xb220('0x23')](handleEntityNotFound(_0x4e392c,null))[_0xb220('0x23')](function(_0x5c86c0){if(_0x5c86c0){_0x5adb7a=_0x5c86c0[_0xb220('0x56')];var _0x4c2f80=_0x5adb7a[_0xb220('0x57')](-0x1);if(_0x4c2f80==='/'){_0x5adb7a=_0x5adb7a[_0xb220('0x58')](0x0,_0x5adb7a[_0xb220('0x59')](_0x4c2f80));}return rp({'method':_0xb220('0x5a'),'uri':util['format'](_0xb220('0x5b'),_0x5adb7a,'api/v2/ticket_fields'),'headers':{'Authorization':util['format'](_0xb220('0x5c'),new Buffer(util[_0xb220('0x5d')](_0xb220('0x5e'),_0x5c86c0['apiKey']))[_0xb220('0x5f')](_0xb220('0x60')))},'json':!![]});}})['then'](function(_0x2741cb){if(_0x2741cb){var _0x3ecafc=[_0xb220('0x61'),_0xb220('0x62'),_0xb220('0x63'),_0xb220('0x64'),_0xb220('0x17'),_0xb220('0x65'),_0xb220('0x66'),_0xb220('0x67'),'ticket_type','group',_0xb220('0x68')];_[_0xb220('0x69')](_0x2741cb,function(_0x498f98){return _0x3ecafc[_0xb220('0x6a')](_0x498f98[_0xb220('0x27')])||!_0x498f98[_0xb220('0x6b')]&&_0x498f98[_0xb220('0x3c')]!==_0xb220('0x6c')&&_0x498f98[_0xb220('0x3c')]!=='custom_dropdown';});return{'count':_0x2741cb[_0xb220('0x44')],'rows':_[_0xb220('0x29')](_0x2741cb,function(_0x1a4bbf){return{'id':_0x1a4bbf[_0xb220('0x27')],'name':_0x1a4bbf[_0xb220('0x6d')],'custom':!_0x1a4bbf['default'],'options':_0x1a4bbf[_0xb220('0x6e')]?_[_0xb220('0x29')](_0x1a4bbf[_0xb220('0x6e')],function(_0x43e280){return{'name':_[_0xb220('0x6f')](_0x43e280),'value':_0x43e280};}):[]};})};}})['then'](respondWithResult(_0x4e392c,null))[_0xb220('0x46')](function(_0x57c5ee){var _0x5679f0=_0x56a8af[_0xb220('0x30')][_0xb220('0x70')]?0x1f4:_0x57c5ee[_0xb220('0x71')]||0x1f4;logger[_0xb220('0x25')](_0xb220('0x72'),_0xb220('0x55'),_0x5679f0,JSON[_0xb220('0x73')](_0x57c5ee));delete _0x57c5ee[_0xb220('0x27')];if(_0x5679f0===0x191){_0x5679f0=0x190;}_0x4e392c[_0xb220('0x17')](_0x5679f0)[_0xb220('0x28')](_0x56a8af[_0xb220('0x30')][_0xb220('0x70')]?{'message':_0xb220('0x74'),'statusCode':_0x57c5ee['statusCode']}:_0x57c5ee);});};