623004ec81c0101cd5cfdfac2997c3ad8e012993
[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 _0x1948=['../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','FreshdeskAccount','rawAttributes','fieldName','key','map','query','keys','intersection','model','fields','attributes','length','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','findOne','FreshdeskConfiguration','getConfigurations','hasOwnProperty','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','slice','substring','lastIndexOf','format','api/v2/ticket_fields','Basic\x20%s','apiKey','toString','base64','requester','subject','agent','description','ticket_type','group','company','includes','type','custom_text','custom_dropdown','default','choices','capitalize','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils'];(function(_0x24b799,_0x167d1d){var _0x10d536=function(_0x42efd4){while(--_0x42efd4){_0x24b799['push'](_0x24b799['shift']());}};_0x10d536(++_0x167d1d);}(_0x1948,0x145));var _0x8194=function(_0x277969,_0x377f43){_0x277969=_0x277969-0x0;var _0x295c24=_0x1948[_0x277969];return _0x295c24;};'use strict';var emlformat=require(_0x8194('0x0'));var rimraf=require(_0x8194('0x1'));var zipdir=require(_0x8194('0x2'));var jsonpatch=require(_0x8194('0x3'));var rp=require(_0x8194('0x4'));var moment=require('moment');var BPromise=require(_0x8194('0x5'));var Mustache=require(_0x8194('0x6'));var util=require(_0x8194('0x7'));var path=require(_0x8194('0x8'));var sox=require(_0x8194('0x9'));var csv=require(_0x8194('0xa'));var ejs=require(_0x8194('0xb'));var fs=require('fs');var fs_extra=require(_0x8194('0xc'));var _=require('lodash');var squel=require(_0x8194('0xd'));var crypto=require(_0x8194('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x8194('0xf'));var toCsv=require(_0x8194('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x8194('0x10'));var authService=require(_0x8194('0x11'));var qs=require(_0x8194('0x12'));var as=require(_0x8194('0x13'));var hardwareService=require(_0x8194('0x14'));var logger=require('../../config/logger')(_0x8194('0x15'));var utils=require(_0x8194('0x16'));var config=require(_0x8194('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8194('0x18'))['db'];var integrations=require(_0x8194('0x19'));function respondWithStatusCode(_0x1aa698,_0xeba106){_0xeba106=_0xeba106||0xcc;return function(_0x3e9d1f){if(_0x3e9d1f){return _0x1aa698[_0x8194('0x1a')](_0xeba106);}return _0x1aa698['status'](_0xeba106)[_0x8194('0x1b')]();};}function respondWithResult(_0x215b95,_0xfd031c){_0xfd031c=_0xfd031c||0xc8;return function(_0x2ab425){if(_0x2ab425){return _0x215b95[_0x8194('0x1c')](_0xfd031c)[_0x8194('0x1d')](_0x2ab425);}};}function respondWithFilteredResult(_0x112d44,_0x13e166){return function(_0x19c23e){if(_0x19c23e){var _0x5abd09=typeof _0x13e166[_0x8194('0x1e')]===_0x8194('0x1f')&&typeof _0x13e166['limit']===_0x8194('0x1f');var _0x4afbe3=_0x19c23e['count'];var _0x5f2172=_0x5abd09?0x0:_0x13e166[_0x8194('0x1e')];var _0x43a192=_0x5abd09?_0x19c23e[_0x8194('0x20')]:_0x13e166[_0x8194('0x1e')]+_0x13e166[_0x8194('0x21')];var _0x1d7bcc;if(_0x43a192>=_0x4afbe3){_0x43a192=_0x4afbe3;_0x1d7bcc=0xc8;}else{_0x1d7bcc=0xce;}_0x112d44['status'](_0x1d7bcc);return _0x112d44['set'](_0x8194('0x22'),_0x5f2172+'-'+_0x43a192+'/'+_0x4afbe3)['json'](_0x19c23e);}return null;};}function patchUpdates(_0x43d763){return function(_0x24d1ff){try{jsonpatch[_0x8194('0x23')](_0x24d1ff,_0x43d763,!![]);}catch(_0x59a758){return BPromise[_0x8194('0x24')](_0x59a758);}return _0x24d1ff[_0x8194('0x25')]();};}function saveUpdates(_0x41641d,_0x28df4f){return function(_0x1babf1){if(_0x1babf1){return _0x1babf1[_0x8194('0x26')](_0x41641d)[_0x8194('0x27')](function(_0xe593e9){return _0xe593e9;});}return null;};}function removeEntity(_0x269a22,_0x263093){return function(_0xbb64b7){if(_0xbb64b7){return _0xbb64b7[_0x8194('0x28')]()['then'](function(){_0x269a22[_0x8194('0x1c')](0xcc)[_0x8194('0x1b')]();});}};}function handleEntityNotFound(_0x21e92d,_0x46a242){return function(_0x55b0d9){if(!_0x55b0d9){_0x21e92d[_0x8194('0x1a')](0x194);}return _0x55b0d9;};}function handleError(_0x381dec,_0x425a1d){_0x425a1d=_0x425a1d||0x1f4;return function(_0x42c3b0){logger[_0x8194('0x29')](_0x42c3b0['stack']);if(_0x42c3b0['name']){delete _0x42c3b0[_0x8194('0x2a')];}_0x381dec[_0x8194('0x1c')](_0x425a1d)[_0x8194('0x2b')](_0x42c3b0);};}exports[_0x8194('0x2c')]=function(_0x181b8e,_0x56c512){var _0x4af9cc={},_0x5624a0={},_0x1ea1f={'count':0x0,'rows':[]};var _0x56b5bc=_['map'](db[_0x8194('0x2d')][_0x8194('0x2e')],function(_0x4ee84e){return{'name':_0x4ee84e[_0x8194('0x2f')],'type':_0x4ee84e['type'][_0x8194('0x30')]};});_0x5624a0['model']=_[_0x8194('0x31')](_0x56b5bc,_0x8194('0x2a'));_0x5624a0[_0x8194('0x32')]=_[_0x8194('0x33')](_0x181b8e[_0x8194('0x32')]);_0x5624a0['filters']=_[_0x8194('0x34')](_0x5624a0['model'],_0x5624a0[_0x8194('0x32')]);_0x4af9cc['attributes']=_[_0x8194('0x34')](_0x5624a0[_0x8194('0x35')],qs[_0x8194('0x36')](_0x181b8e['query']['fields']));_0x4af9cc[_0x8194('0x37')]=_0x4af9cc[_0x8194('0x37')][_0x8194('0x38')]?_0x4af9cc[_0x8194('0x37')]:_0x5624a0['model'];if(!_0x181b8e['query']['hasOwnProperty'](_0x8194('0x39'))){_0x4af9cc[_0x8194('0x21')]=qs[_0x8194('0x21')](_0x181b8e[_0x8194('0x32')][_0x8194('0x21')]);_0x4af9cc[_0x8194('0x1e')]=qs['offset'](_0x181b8e[_0x8194('0x32')][_0x8194('0x1e')]);}_0x4af9cc[_0x8194('0x3a')]=qs[_0x8194('0x3b')](_0x181b8e[_0x8194('0x32')][_0x8194('0x3b')]);_0x4af9cc[_0x8194('0x3c')]=qs[_0x8194('0x3d')](_[_0x8194('0x3e')](_0x181b8e[_0x8194('0x32')],_0x5624a0[_0x8194('0x3d')]),_0x56b5bc);if(_0x181b8e[_0x8194('0x32')]['filter']){_0x4af9cc[_0x8194('0x3c')]=_['merge'](_0x4af9cc['where'],{'$or':_[_0x8194('0x31')](_0x56b5bc,function(_0x841b4c){if(_0x841b4c['type']!=='VIRTUAL'){var _0x568aa5={};_0x568aa5[_0x841b4c['name']]={'$like':'%'+_0x181b8e['query'][_0x8194('0x3f')]+'%'};return _0x568aa5;}})});}_0x4af9cc=_[_0x8194('0x40')]({},_0x4af9cc,_0x181b8e[_0x8194('0x41')]);var _0x4fea56={'where':_0x4af9cc['where']};return db['FreshdeskAccount'][_0x8194('0x20')](_0x4fea56)[_0x8194('0x27')](function(_0x2d5809){_0x1ea1f[_0x8194('0x20')]=_0x2d5809;if(_0x181b8e['query'][_0x8194('0x42')]){_0x4af9cc[_0x8194('0x43')]=[{'all':!![]}];}return db[_0x8194('0x2d')][_0x8194('0x44')](_0x4af9cc);})[_0x8194('0x27')](function(_0x4ba548){_0x1ea1f[_0x8194('0x45')]=_0x4ba548;return _0x1ea1f;})[_0x8194('0x27')](respondWithFilteredResult(_0x56c512,_0x4af9cc))[_0x8194('0x46')](handleError(_0x56c512,null));};exports[_0x8194('0x47')]=function(_0x32f215,_0xb3f9ec){var _0x36789b={'raw':![],'where':{'id':_0x32f215[_0x8194('0x48')]['id']}},_0x5be9a0={};_0x5be9a0[_0x8194('0x35')]=_[_0x8194('0x33')](db[_0x8194('0x2d')]['rawAttributes']);_0x5be9a0['query']=_[_0x8194('0x33')](_0x32f215['query']);_0x5be9a0[_0x8194('0x3d')]=_['intersection'](_0x5be9a0[_0x8194('0x35')],_0x5be9a0['query']);_0x36789b[_0x8194('0x37')]=_[_0x8194('0x34')](_0x5be9a0[_0x8194('0x35')],qs[_0x8194('0x36')](_0x32f215['query'][_0x8194('0x36')]));_0x36789b[_0x8194('0x37')]=_0x36789b[_0x8194('0x37')]['length']?_0x36789b[_0x8194('0x37')]:_0x5be9a0[_0x8194('0x35')];if(_0x32f215[_0x8194('0x32')][_0x8194('0x42')]){_0x36789b[_0x8194('0x43')]=[{'all':!![]}];}_0x36789b=_['merge']({},_0x36789b,_0x32f215[_0x8194('0x41')]);return db['FreshdeskAccount'][_0x8194('0x49')](_0x36789b)[_0x8194('0x27')](handleEntityNotFound(_0xb3f9ec,null))[_0x8194('0x27')](respondWithResult(_0xb3f9ec,null))[_0x8194('0x46')](handleError(_0xb3f9ec,null));};exports[_0x8194('0x4a')]=function(_0x32a1cd,_0x3c0a84){return db[_0x8194('0x2d')][_0x8194('0x4a')](_0x32a1cd[_0x8194('0x4b')],{})[_0x8194('0x27')](respondWithResult(_0x3c0a84,0xc9))[_0x8194('0x46')](handleError(_0x3c0a84,null));};exports[_0x8194('0x26')]=function(_0x349e27,_0x2f828c){if(_0x349e27[_0x8194('0x4b')]['id']){delete _0x349e27[_0x8194('0x4b')]['id'];}return db[_0x8194('0x2d')]['find']({'where':{'id':_0x349e27[_0x8194('0x48')]['id']}})[_0x8194('0x27')](handleEntityNotFound(_0x2f828c,null))['then'](saveUpdates(_0x349e27['body'],null))[_0x8194('0x27')](respondWithResult(_0x2f828c,null))[_0x8194('0x46')](handleError(_0x2f828c,null));};exports[_0x8194('0x28')]=function(_0x3029fe,_0x3f85af){return db[_0x8194('0x2d')][_0x8194('0x49')]({'where':{'id':_0x3029fe[_0x8194('0x48')]['id']}})[_0x8194('0x27')](handleEntityNotFound(_0x3f85af,null))[_0x8194('0x27')](removeEntity(_0x3f85af,null))['catch'](handleError(_0x3f85af,null));};exports['getConfigurations']=function(_0x510f6d,_0x5b6d09,_0x12354c){var _0x87d151={};var _0x899688={};var _0x40fe60;var _0x381091;return db[_0x8194('0x2d')][_0x8194('0x4c')]({'where':{'id':_0x510f6d[_0x8194('0x48')]['id']}})[_0x8194('0x27')](handleEntityNotFound(_0x5b6d09,null))['then'](function(_0x5ec3dd){if(_0x5ec3dd){_0x40fe60=_0x5ec3dd;_0x899688[_0x8194('0x35')]=_[_0x8194('0x33')](db[_0x8194('0x4d')][_0x8194('0x2e')]);_0x899688[_0x8194('0x32')]=_[_0x8194('0x33')](_0x510f6d['query']);_0x899688[_0x8194('0x3d')]=_[_0x8194('0x34')](_0x899688[_0x8194('0x35')],_0x899688[_0x8194('0x32')]);_0x87d151[_0x8194('0x37')]=_[_0x8194('0x34')](_0x899688[_0x8194('0x35')],qs[_0x8194('0x36')](_0x510f6d['query'][_0x8194('0x36')]));_0x87d151[_0x8194('0x37')]=_0x87d151[_0x8194('0x37')][_0x8194('0x38')]?_0x87d151[_0x8194('0x37')]:_0x899688[_0x8194('0x35')];_0x87d151[_0x8194('0x3a')]=qs[_0x8194('0x3b')](_0x510f6d[_0x8194('0x32')][_0x8194('0x3b')]);_0x87d151[_0x8194('0x3c')]=qs['filters'](_[_0x8194('0x3e')](_0x510f6d[_0x8194('0x32')],_0x899688[_0x8194('0x3d')]));if(_0x510f6d[_0x8194('0x32')]['filter']){_0x87d151['where']=_[_0x8194('0x40')](_0x87d151[_0x8194('0x3c')],{'$or':_[_0x8194('0x31')](_0x87d151[_0x8194('0x37')],function(_0x46136d){var _0x4cf5cc={};_0x4cf5cc[_0x46136d]={'$like':'%'+_0x510f6d[_0x8194('0x32')][_0x8194('0x3f')]+'%'};return _0x4cf5cc;})});}_0x87d151=_[_0x8194('0x40')]({},_0x87d151,_0x510f6d[_0x8194('0x41')]);return _0x40fe60[_0x8194('0x4e')](_0x87d151);}})[_0x8194('0x27')](function(_0x37a727){if(_0x37a727){_0x381091=_0x37a727[_0x8194('0x38')];if(!_0x510f6d[_0x8194('0x32')][_0x8194('0x4f')](_0x8194('0x39'))){_0x87d151[_0x8194('0x21')]=qs[_0x8194('0x21')](_0x510f6d['query']['limit']);_0x87d151['offset']=qs[_0x8194('0x1e')](_0x510f6d[_0x8194('0x32')][_0x8194('0x1e')]);}return _0x40fe60['getConfigurations'](_0x87d151);}})[_0x8194('0x27')](function(_0x19c7ee){if(_0x19c7ee){return _0x19c7ee?{'count':_0x381091,'rows':_0x19c7ee}:null;}})['then'](respondWithResult(_0x5b6d09,null))[_0x8194('0x46')](handleError(_0x5b6d09,null));};exports['addConfiguration']=function(_0x5ce807,_0x4f557f,_0x4866c5){if(_0x5ce807[_0x8194('0x4b')]['id']){delete _0x5ce807[_0x8194('0x4b')]['id'];}return db[_0x8194('0x2d')][_0x8194('0x4c')]({'where':{'id':_0x5ce807['params']['id']}})[_0x8194('0x27')](handleEntityNotFound(_0x4f557f,null))[_0x8194('0x27')](function(_0x5df7a2){if(_0x5df7a2){_0x5ce807[_0x8194('0x4b')][_0x8194('0x50')]=_0x5df7a2['id'];_0x5ce807[_0x8194('0x4b')][_0x8194('0x51')]=integrations[_0x8194('0x52')](_0x5ce807[_0x8194('0x4b')][_0x8194('0x53')],_0x5ce807['body']['type']);_0x5ce807['body'][_0x8194('0x54')]=integrations[_0x8194('0x55')](_0x5ce807['body'][_0x8194('0x53')],_0x5ce807[_0x8194('0x4b')]['type']);return db['FreshdeskConfiguration'][_0x8194('0x4a')](_0x5ce807[_0x8194('0x4b')],{'include':[{'model':db[_0x8194('0x56')],'as':_0x8194('0x51')},{'model':db[_0x8194('0x56')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x4f557f,null))['catch'](handleError(_0x4f557f,null));};exports[_0x8194('0x57')]=function(_0x1773d2,_0x13f881,_0x4ea859){var _0x24b6f9='';return db['FreshdeskAccount'][_0x8194('0x4c')]({'where':{'id':_0x1773d2[_0x8194('0x48')]['id']},'attributes':['id',_0x8194('0x58'),'apiKey']})[_0x8194('0x27')](handleEntityNotFound(_0x13f881,null))['then'](function(_0x5e0778){if(_0x5e0778){_0x24b6f9=_0x5e0778['remoteUri'];var _0x19d22a=_0x24b6f9[_0x8194('0x59')](-0x1);if(_0x19d22a==='/'){_0x24b6f9=_0x24b6f9[_0x8194('0x5a')](0x0,_0x24b6f9[_0x8194('0x5b')](_0x19d22a));}return rp({'method':'GET','uri':util[_0x8194('0x5c')]('%s/%s',_0x24b6f9,_0x8194('0x5d')),'headers':{'Authorization':util[_0x8194('0x5c')](_0x8194('0x5e'),new Buffer(util['format']('%s:X',_0x5e0778[_0x8194('0x5f')]))[_0x8194('0x60')](_0x8194('0x61')))},'json':!![]});}})[_0x8194('0x27')](function(_0x41d813){if(_0x41d813){var _0x221e7a=[_0x8194('0x62'),_0x8194('0x63'),_0x8194('0x64'),_0x8194('0x65'),_0x8194('0x1c'),'priority','group','source',_0x8194('0x66'),_0x8194('0x67'),_0x8194('0x68')];_['remove'](_0x41d813,function(_0xd8482b){return _0x221e7a[_0x8194('0x69')](_0xd8482b[_0x8194('0x2a')])||!_0xd8482b['default']&&_0xd8482b[_0x8194('0x6a')]!==_0x8194('0x6b')&&_0xd8482b[_0x8194('0x6a')]!==_0x8194('0x6c');});return{'count':_0x41d813[_0x8194('0x38')],'rows':_['map'](_0x41d813,function(_0x457d9f){return{'id':_0x457d9f[_0x8194('0x2a')],'name':_0x457d9f['label'],'custom':!_0x457d9f[_0x8194('0x6d')],'options':_0x457d9f['choices']?_[_0x8194('0x31')](_0x457d9f[_0x8194('0x6e')],function(_0x2e1a66){return{'name':_[_0x8194('0x6f')](_0x2e1a66),'value':_0x2e1a66};}):[]};})};}})[_0x8194('0x27')](respondWithResult(_0x13f881,null))[_0x8194('0x46')](function(_0x29aaa6){var _0x26e1e6=_0x1773d2['query'][_0x8194('0x70')]?0x1f4:_0x29aaa6[_0x8194('0x71')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x8194('0x57'),_0x26e1e6,JSON[_0x8194('0x72')](_0x29aaa6));delete _0x29aaa6[_0x8194('0x2a')];if(_0x26e1e6===0x191){_0x26e1e6=0x190;}_0x13f881[_0x8194('0x1c')](_0x26e1e6)[_0x8194('0x2b')](_0x1773d2['query'][_0x8194('0x70')]?{'message':_0x8194('0x73'),'statusCode':_0x29aaa6['statusCode']}:_0x29aaa6);});};