103ba16a17aed70094dbb8db982d09cfb1279369
[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 _0xfe57=['filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','FreshdeskAccount','findAll','then','rows','show','params','keys','catch','create','body','find','getConfigurations','findOne','FreshdeskConfiguration','hasOwnProperty','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','apiKey','remoteUri','slice','lastIndexOf','format','%s/%s','api/v2/ticket_fields','toString','requester','subject','agent','priority','source','ticket_type','company','includes','custom_text','custom_dropdown','label','default','choices','capitalize','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','statusCode','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','offset','undefined','count','limit','Content-Range','json','apply','reject','save','update','destroy','sendStatus','stack','name','index','map','rawAttributes','type','key','model','query'];(function(_0x1d6410,_0xc7196){var _0x5d4618=function(_0x15863f){while(--_0x15863f){_0x1d6410['push'](_0x1d6410['shift']());}};_0x5d4618(++_0xc7196);}(_0xfe57,0x195));var _0x7fe5=function(_0x1cbcf1,_0x3f9fd9){_0x1cbcf1=_0x1cbcf1-0x0;var _0x3a06f0=_0xfe57[_0x1cbcf1];return _0x3a06f0;};'use strict';var emlformat=require(_0x7fe5('0x0'));var rimraf=require(_0x7fe5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7fe5('0x2'));var moment=require(_0x7fe5('0x3'));var BPromise=require(_0x7fe5('0x4'));var Mustache=require(_0x7fe5('0x5'));var util=require(_0x7fe5('0x6'));var path=require(_0x7fe5('0x7'));var sox=require(_0x7fe5('0x8'));var csv=require(_0x7fe5('0x9'));var ejs=require(_0x7fe5('0xa'));var fs=require('fs');var fs_extra=require(_0x7fe5('0xb'));var _=require(_0x7fe5('0xc'));var squel=require(_0x7fe5('0xd'));var crypto=require(_0x7fe5('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x7fe5('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7fe5('0x10'));var Papa=require(_0x7fe5('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x7fe5('0x12'));var as=require(_0x7fe5('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7fe5('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x7fe5('0x15'));var licenseUtil=require(_0x7fe5('0x16'));var db=require(_0x7fe5('0x17'))['db'];var integrations=require(_0x7fe5('0x18'));function respondWithStatusCode(_0x53f76c,_0x329c95){_0x329c95=_0x329c95||0xcc;return function(_0x16bed9){if(_0x16bed9){return _0x53f76c['sendStatus'](_0x329c95);}return _0x53f76c[_0x7fe5('0x19')](_0x329c95)['end']();};}function respondWithResult(_0x1f84b5,_0x2d297b){_0x2d297b=_0x2d297b||0xc8;return function(_0x4e8ea0){if(_0x4e8ea0){return _0x1f84b5[_0x7fe5('0x19')](_0x2d297b)['json'](_0x4e8ea0);}};}function respondWithFilteredResult(_0x39f175,_0x221ab2){return function(_0xbdf0a4){if(_0xbdf0a4){var _0x4989a=typeof _0x221ab2[_0x7fe5('0x1a')]===_0x7fe5('0x1b')&&typeof _0x221ab2['limit']===_0x7fe5('0x1b');var _0x3c7dd3=_0xbdf0a4[_0x7fe5('0x1c')];var _0x1be963=_0x4989a?0x0:_0x221ab2[_0x7fe5('0x1a')];var _0x9a3022=_0x4989a?_0xbdf0a4[_0x7fe5('0x1c')]:_0x221ab2[_0x7fe5('0x1a')]+_0x221ab2[_0x7fe5('0x1d')];var _0x3b98cd;if(_0x9a3022>=_0x3c7dd3){_0x9a3022=_0x3c7dd3;_0x3b98cd=0xc8;}else{_0x3b98cd=0xce;}_0x39f175['status'](_0x3b98cd);return _0x39f175['set'](_0x7fe5('0x1e'),_0x1be963+'-'+_0x9a3022+'/'+_0x3c7dd3)[_0x7fe5('0x1f')](_0xbdf0a4);}return null;};}function patchUpdates(_0x2f6592){return function(_0x327301){try{jsonpatch[_0x7fe5('0x20')](_0x327301,_0x2f6592,!![]);}catch(_0x39c3ba){return BPromise[_0x7fe5('0x21')](_0x39c3ba);}return _0x327301[_0x7fe5('0x22')]();};}function saveUpdates(_0x1b271c,_0x28a7fd){return function(_0xb8dfe){if(_0xb8dfe){return _0xb8dfe[_0x7fe5('0x23')](_0x1b271c)['then'](function(_0x3e7340){return _0x3e7340;});}return null;};}function removeEntity(_0x2f39e0,_0x43e547){return function(_0x508826){if(_0x508826){return _0x508826[_0x7fe5('0x24')]()['then'](function(){_0x2f39e0[_0x7fe5('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c3b37,_0x190355){return function(_0x134876){if(!_0x134876){_0x5c3b37[_0x7fe5('0x25')](0x194);}return _0x134876;};}function handleError(_0x399c55,_0x4393c3){_0x4393c3=_0x4393c3||0x1f4;return function(_0x5bfe23){logger['error'](_0x5bfe23[_0x7fe5('0x26')]);if(_0x5bfe23[_0x7fe5('0x27')]){delete _0x5bfe23[_0x7fe5('0x27')];}_0x399c55[_0x7fe5('0x19')](_0x4393c3)['send'](_0x5bfe23);};}exports[_0x7fe5('0x28')]=function(_0x4a77e9,_0x150ab9){var _0x1420de={},_0x204bc8={},_0x28a689={'count':0x0,'rows':[]};var _0x1f8572=_[_0x7fe5('0x29')](db['FreshdeskAccount'][_0x7fe5('0x2a')],function(_0x423da8){return{'name':_0x423da8['fieldName'],'type':_0x423da8[_0x7fe5('0x2b')][_0x7fe5('0x2c')]};});_0x204bc8[_0x7fe5('0x2d')]=_[_0x7fe5('0x29')](_0x1f8572,_0x7fe5('0x27'));_0x204bc8['query']=_['keys'](_0x4a77e9[_0x7fe5('0x2e')]);_0x204bc8[_0x7fe5('0x2f')]=_[_0x7fe5('0x30')](_0x204bc8[_0x7fe5('0x2d')],_0x204bc8['query']);_0x1420de[_0x7fe5('0x31')]=_[_0x7fe5('0x30')](_0x204bc8[_0x7fe5('0x2d')],qs[_0x7fe5('0x32')](_0x4a77e9[_0x7fe5('0x2e')][_0x7fe5('0x32')]));_0x1420de['attributes']=_0x1420de[_0x7fe5('0x31')][_0x7fe5('0x33')]?_0x1420de[_0x7fe5('0x31')]:_0x204bc8[_0x7fe5('0x2d')];if(!_0x4a77e9['query']['hasOwnProperty'](_0x7fe5('0x34'))){_0x1420de['limit']=qs[_0x7fe5('0x1d')](_0x4a77e9['query'][_0x7fe5('0x1d')]);_0x1420de['offset']=qs['offset'](_0x4a77e9['query']['offset']);}_0x1420de[_0x7fe5('0x35')]=qs[_0x7fe5('0x36')](_0x4a77e9['query'][_0x7fe5('0x36')]);_0x1420de[_0x7fe5('0x37')]=qs['filters'](_[_0x7fe5('0x38')](_0x4a77e9['query'],_0x204bc8['filters']),_0x1f8572);if(_0x4a77e9[_0x7fe5('0x2e')][_0x7fe5('0x39')]){_0x1420de[_0x7fe5('0x37')]=_[_0x7fe5('0x3a')](_0x1420de[_0x7fe5('0x37')],{'$or':_['map'](_0x1f8572,function(_0x23d4ed){if(_0x23d4ed[_0x7fe5('0x2b')]!=='VIRTUAL'){var _0x1fa05a={};_0x1fa05a[_0x23d4ed[_0x7fe5('0x27')]]={'$like':'%'+_0x4a77e9[_0x7fe5('0x2e')][_0x7fe5('0x39')]+'%'};return _0x1fa05a;}})});}_0x1420de=_[_0x7fe5('0x3a')]({},_0x1420de,_0x4a77e9[_0x7fe5('0x3b')]);var _0x1a14e3={'where':_0x1420de['where']};return db['FreshdeskAccount'][_0x7fe5('0x1c')](_0x1a14e3)['then'](function(_0x2cd127){_0x28a689[_0x7fe5('0x1c')]=_0x2cd127;if(_0x4a77e9['query'][_0x7fe5('0x3c')]){_0x1420de[_0x7fe5('0x3d')]=[{'all':!![]}];}return db[_0x7fe5('0x3e')][_0x7fe5('0x3f')](_0x1420de);})[_0x7fe5('0x40')](function(_0x2a31c0){_0x28a689[_0x7fe5('0x41')]=_0x2a31c0;return _0x28a689;})['then'](respondWithFilteredResult(_0x150ab9,_0x1420de))['catch'](handleError(_0x150ab9,null));};exports[_0x7fe5('0x42')]=function(_0x4f81ca,_0xad0b05){var _0x1a3e0d={'raw':![],'where':{'id':_0x4f81ca[_0x7fe5('0x43')]['id']}},_0x453066={};_0x453066['model']=_[_0x7fe5('0x44')](db['FreshdeskAccount']['rawAttributes']);_0x453066[_0x7fe5('0x2e')]=_[_0x7fe5('0x44')](_0x4f81ca['query']);_0x453066[_0x7fe5('0x2f')]=_[_0x7fe5('0x30')](_0x453066[_0x7fe5('0x2d')],_0x453066[_0x7fe5('0x2e')]);_0x1a3e0d[_0x7fe5('0x31')]=_['intersection'](_0x453066[_0x7fe5('0x2d')],qs[_0x7fe5('0x32')](_0x4f81ca['query'][_0x7fe5('0x32')]));_0x1a3e0d[_0x7fe5('0x31')]=_0x1a3e0d[_0x7fe5('0x31')][_0x7fe5('0x33')]?_0x1a3e0d['attributes']:_0x453066[_0x7fe5('0x2d')];if(_0x4f81ca[_0x7fe5('0x2e')][_0x7fe5('0x3c')]){_0x1a3e0d['include']=[{'all':!![]}];}_0x1a3e0d=_[_0x7fe5('0x3a')]({},_0x1a3e0d,_0x4f81ca[_0x7fe5('0x3b')]);return db[_0x7fe5('0x3e')]['find'](_0x1a3e0d)[_0x7fe5('0x40')](handleEntityNotFound(_0xad0b05,null))[_0x7fe5('0x40')](respondWithResult(_0xad0b05,null))[_0x7fe5('0x45')](handleError(_0xad0b05,null));};exports['create']=function(_0x19c4a6,_0x211933){return db[_0x7fe5('0x3e')][_0x7fe5('0x46')](_0x19c4a6[_0x7fe5('0x47')],{})[_0x7fe5('0x40')](respondWithResult(_0x211933,0xc9))[_0x7fe5('0x45')](handleError(_0x211933,null));};exports[_0x7fe5('0x23')]=function(_0x446f01,_0xa8e2d3){if(_0x446f01[_0x7fe5('0x47')]['id']){delete _0x446f01['body']['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x446f01['params']['id']}})[_0x7fe5('0x40')](handleEntityNotFound(_0xa8e2d3,null))['then'](saveUpdates(_0x446f01[_0x7fe5('0x47')],null))[_0x7fe5('0x40')](respondWithResult(_0xa8e2d3,null))[_0x7fe5('0x45')](handleError(_0xa8e2d3,null));};exports[_0x7fe5('0x24')]=function(_0x362f33,_0x5b24a4){return db[_0x7fe5('0x3e')][_0x7fe5('0x48')]({'where':{'id':_0x362f33[_0x7fe5('0x43')]['id']}})[_0x7fe5('0x40')](handleEntityNotFound(_0x5b24a4,null))[_0x7fe5('0x40')](removeEntity(_0x5b24a4,null))[_0x7fe5('0x45')](handleError(_0x5b24a4,null));};exports[_0x7fe5('0x49')]=function(_0x2165b0,_0x2df3b0,_0x2257c9){var _0x5ddfb3={};var _0x1c16d4={};var _0x401d05;var _0x2aa38d;return db[_0x7fe5('0x3e')][_0x7fe5('0x4a')]({'where':{'id':_0x2165b0[_0x7fe5('0x43')]['id']}})['then'](handleEntityNotFound(_0x2df3b0,null))[_0x7fe5('0x40')](function(_0x1a44d3){if(_0x1a44d3){_0x401d05=_0x1a44d3;_0x1c16d4[_0x7fe5('0x2d')]=_[_0x7fe5('0x44')](db[_0x7fe5('0x4b')][_0x7fe5('0x2a')]);_0x1c16d4[_0x7fe5('0x2e')]=_['keys'](_0x2165b0[_0x7fe5('0x2e')]);_0x1c16d4[_0x7fe5('0x2f')]=_[_0x7fe5('0x30')](_0x1c16d4[_0x7fe5('0x2d')],_0x1c16d4[_0x7fe5('0x2e')]);_0x5ddfb3['attributes']=_[_0x7fe5('0x30')](_0x1c16d4[_0x7fe5('0x2d')],qs[_0x7fe5('0x32')](_0x2165b0[_0x7fe5('0x2e')]['fields']));_0x5ddfb3[_0x7fe5('0x31')]=_0x5ddfb3[_0x7fe5('0x31')][_0x7fe5('0x33')]?_0x5ddfb3[_0x7fe5('0x31')]:_0x1c16d4[_0x7fe5('0x2d')];_0x5ddfb3[_0x7fe5('0x35')]=qs[_0x7fe5('0x36')](_0x2165b0[_0x7fe5('0x2e')][_0x7fe5('0x36')]);_0x5ddfb3[_0x7fe5('0x37')]=qs[_0x7fe5('0x2f')](_['pick'](_0x2165b0[_0x7fe5('0x2e')],_0x1c16d4[_0x7fe5('0x2f')]));if(_0x2165b0[_0x7fe5('0x2e')]['filter']){_0x5ddfb3['where']=_[_0x7fe5('0x3a')](_0x5ddfb3['where'],{'$or':_[_0x7fe5('0x29')](_0x5ddfb3[_0x7fe5('0x31')],function(_0x491702){var _0x16deb8={};_0x16deb8[_0x491702]={'$like':'%'+_0x2165b0['query'][_0x7fe5('0x39')]+'%'};return _0x16deb8;})});}_0x5ddfb3=_[_0x7fe5('0x3a')]({},_0x5ddfb3,_0x2165b0[_0x7fe5('0x3b')]);return _0x401d05[_0x7fe5('0x49')](_0x5ddfb3);}})[_0x7fe5('0x40')](function(_0x306088){if(_0x306088){_0x2aa38d=_0x306088['length'];if(!_0x2165b0['query'][_0x7fe5('0x4c')](_0x7fe5('0x34'))){_0x5ddfb3[_0x7fe5('0x1d')]=qs[_0x7fe5('0x1d')](_0x2165b0[_0x7fe5('0x2e')]['limit']);_0x5ddfb3[_0x7fe5('0x1a')]=qs[_0x7fe5('0x1a')](_0x2165b0[_0x7fe5('0x2e')][_0x7fe5('0x1a')]);}return _0x401d05[_0x7fe5('0x49')](_0x5ddfb3);}})['then'](function(_0x963932){if(_0x963932){return _0x963932?{'count':_0x2aa38d,'rows':_0x963932}:null;}})[_0x7fe5('0x40')](respondWithResult(_0x2df3b0,null))[_0x7fe5('0x45')](handleError(_0x2df3b0,null));};exports[_0x7fe5('0x4d')]=function(_0xd67174,_0x409403,_0x191927){if(_0xd67174['body']['id']){delete _0xd67174[_0x7fe5('0x47')]['id'];}return db[_0x7fe5('0x3e')][_0x7fe5('0x4a')]({'where':{'id':_0xd67174[_0x7fe5('0x43')]['id']}})[_0x7fe5('0x40')](handleEntityNotFound(_0x409403,null))[_0x7fe5('0x40')](function(_0x9d0a0c){if(_0x9d0a0c){_0xd67174['body']['AccountId']=_0x9d0a0c['id'];_0xd67174[_0x7fe5('0x47')]['Subjects']=integrations[_0x7fe5('0x4e')](_0xd67174['body'][_0x7fe5('0x4f')],_0xd67174[_0x7fe5('0x47')][_0x7fe5('0x2b')]);_0xd67174[_0x7fe5('0x47')][_0x7fe5('0x50')]=integrations[_0x7fe5('0x51')](_0xd67174[_0x7fe5('0x47')][_0x7fe5('0x4f')],_0xd67174['body'][_0x7fe5('0x2b')]);return db['FreshdeskConfiguration'][_0x7fe5('0x46')](_0xd67174[_0x7fe5('0x47')],{'include':[{'model':db[_0x7fe5('0x52')],'as':'Subjects'},{'model':db[_0x7fe5('0x52')],'as':_0x7fe5('0x50')}]});}return null;})[_0x7fe5('0x40')](respondWithResult(_0x409403,null))[_0x7fe5('0x45')](handleError(_0x409403,null));};exports[_0x7fe5('0x53')]=function(_0x24d798,_0x5b8b03,_0x2bf9ed){var _0x46d509='';return db['FreshdeskAccount'][_0x7fe5('0x4a')]({'where':{'id':_0x24d798[_0x7fe5('0x43')]['id']},'attributes':['id','remoteUri',_0x7fe5('0x54')]})['then'](handleEntityNotFound(_0x5b8b03,null))[_0x7fe5('0x40')](function(_0x3577be){if(_0x3577be){_0x46d509=_0x3577be[_0x7fe5('0x55')];var _0x75dde3=_0x46d509[_0x7fe5('0x56')](-0x1);if(_0x75dde3==='/'){_0x46d509=_0x46d509['substring'](0x0,_0x46d509[_0x7fe5('0x57')](_0x75dde3));}return rp({'method':'GET','uri':util[_0x7fe5('0x58')](_0x7fe5('0x59'),_0x46d509,_0x7fe5('0x5a')),'headers':{'Authorization':util[_0x7fe5('0x58')]('Basic\x20%s',new Buffer(util[_0x7fe5('0x58')]('%s:X',_0x3577be[_0x7fe5('0x54')]))[_0x7fe5('0x5b')]('base64'))},'json':!![]});}})[_0x7fe5('0x40')](function(_0x146eaf){if(_0x146eaf){var _0x536107=[_0x7fe5('0x5c'),_0x7fe5('0x5d'),_0x7fe5('0x5e'),'description',_0x7fe5('0x19'),_0x7fe5('0x5f'),'group',_0x7fe5('0x60'),_0x7fe5('0x61'),'group',_0x7fe5('0x62')];_['remove'](_0x146eaf,function(_0x586bce){return _0x536107[_0x7fe5('0x63')](_0x586bce[_0x7fe5('0x27')])||!_0x586bce['default']&&_0x586bce['type']!==_0x7fe5('0x64')&&_0x586bce['type']!==_0x7fe5('0x65');});return{'count':_0x146eaf['length'],'rows':_[_0x7fe5('0x29')](_0x146eaf,function(_0x2ad4bd){return{'id':_0x2ad4bd[_0x7fe5('0x27')],'name':_0x2ad4bd[_0x7fe5('0x66')],'custom':!_0x2ad4bd[_0x7fe5('0x67')],'options':_0x2ad4bd['choices']?_[_0x7fe5('0x29')](_0x2ad4bd[_0x7fe5('0x68')],function(_0xda78bd){return{'name':_[_0x7fe5('0x69')](_0xda78bd),'value':_0xda78bd};}):[]};})};}})[_0x7fe5('0x40')](respondWithResult(_0x5b8b03,null))[_0x7fe5('0x45')](function(_0x6d543b){var _0xf7021e=_0x24d798[_0x7fe5('0x2e')][_0x7fe5('0x6a')]?0x1f4:_0x6d543b['statusCode']||0x1f4;logger[_0x7fe5('0x6b')](_0x7fe5('0x6c'),_0x7fe5('0x53'),_0xf7021e,JSON[_0x7fe5('0x6d')](_0x6d543b));delete _0x6d543b[_0x7fe5('0x27')];if(_0xf7021e===0x191){_0xf7021e=0x190;}_0x5b8b03['status'](_0xf7021e)[_0x7fe5('0x6e')](_0x24d798[_0x7fe5('0x2e')][_0x7fe5('0x6a')]?{'message':_0x7fe5('0x6f'),'statusCode':_0x6d543b[_0x7fe5('0x70')]}:_0x6d543b);});};