c9566bb053008eccbf7e32cb3644ba78a5ab3252
[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 _0x76d2=['custom_text','custom_dropdown','label','choices','statusCode','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','stack','send','index','map','FreshdeskAccount','rawAttributes','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','getConfigurations','findOne','FreshdeskConfiguration','order','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','requester','subject','agent','description','priority','group','source','ticket_type','company','includes','default'];(function(_0x483a68,_0x2acc85){var _0x5d8176=function(_0x1fd36b){while(--_0x1fd36b){_0x483a68['push'](_0x483a68['shift']());}};_0x5d8176(++_0x2acc85);}(_0x76d2,0xf8));var _0x276d=function(_0x57a07a,_0x21cbd9){_0x57a07a=_0x57a07a-0x0;var _0x5e5f23=_0x76d2[_0x57a07a];return _0x5e5f23;};'use strict';var emlformat=require(_0x276d('0x0'));var rimraf=require(_0x276d('0x1'));var zipdir=require(_0x276d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x276d('0x3'));var moment=require(_0x276d('0x4'));var BPromise=require(_0x276d('0x5'));var Mustache=require(_0x276d('0x6'));var util=require('util');var path=require('path');var sox=require(_0x276d('0x7'));var csv=require(_0x276d('0x8'));var ejs=require(_0x276d('0x9'));var fs=require('fs');var fs_extra=require(_0x276d('0xa'));var _=require(_0x276d('0xb'));var squel=require(_0x276d('0xc'));var crypto=require(_0x276d('0xd'));var jsforce=require(_0x276d('0xe'));var deskjs=require(_0x276d('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x276d('0x10'));var Redis=require(_0x276d('0x11'));var authService=require(_0x276d('0x12'));var qs=require(_0x276d('0x13'));var as=require(_0x276d('0x14'));var hardwareService=require(_0x276d('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x276d('0x16'));var config=require(_0x276d('0x17'));var licenseUtil=require(_0x276d('0x18'));var db=require(_0x276d('0x19'))['db'];var integrations=require(_0x276d('0x1a'));function respondWithStatusCode(_0x2e4374,_0x4b9f5f){_0x4b9f5f=_0x4b9f5f||0xcc;return function(_0x52a319){if(_0x52a319){return _0x2e4374[_0x276d('0x1b')](_0x4b9f5f);}return _0x2e4374[_0x276d('0x1c')](_0x4b9f5f)[_0x276d('0x1d')]();};}function respondWithResult(_0x377540,_0x3166a2){_0x3166a2=_0x3166a2||0xc8;return function(_0x276c25){if(_0x276c25){return _0x377540[_0x276d('0x1c')](_0x3166a2)[_0x276d('0x1e')](_0x276c25);}};}function respondWithFilteredResult(_0x5b23b7,_0x2165c6){return function(_0x43efeb){if(_0x43efeb){var _0x50cdfd=typeof _0x2165c6['offset']===_0x276d('0x1f')&&typeof _0x2165c6[_0x276d('0x20')]==='undefined';var _0x1d8b5f=_0x43efeb['count'];var _0x501b7b=_0x50cdfd?0x0:_0x2165c6[_0x276d('0x21')];var _0x48a275=_0x50cdfd?_0x43efeb[_0x276d('0x22')]:_0x2165c6[_0x276d('0x21')]+_0x2165c6[_0x276d('0x20')];var _0x11d8d8;if(_0x48a275>=_0x1d8b5f){_0x48a275=_0x1d8b5f;_0x11d8d8=0xc8;}else{_0x11d8d8=0xce;}_0x5b23b7['status'](_0x11d8d8);return _0x5b23b7[_0x276d('0x23')](_0x276d('0x24'),_0x501b7b+'-'+_0x48a275+'/'+_0x1d8b5f)['json'](_0x43efeb);}return null;};}function patchUpdates(_0x5e8fee){return function(_0x45709d){try{jsonpatch[_0x276d('0x25')](_0x45709d,_0x5e8fee,!![]);}catch(_0x53e20e){return BPromise[_0x276d('0x26')](_0x53e20e);}return _0x45709d[_0x276d('0x27')]();};}function saveUpdates(_0x57d4b7,_0x284160){return function(_0x5c6d44){if(_0x5c6d44){return _0x5c6d44[_0x276d('0x28')](_0x57d4b7)[_0x276d('0x29')](function(_0x5f0561){return _0x5f0561;});}return null;};}function removeEntity(_0x476671,_0x3edb3b){return function(_0x58ea98){if(_0x58ea98){return _0x58ea98['destroy']()[_0x276d('0x29')](function(){_0x476671[_0x276d('0x1c')](0xcc)[_0x276d('0x1d')]();});}};}function handleEntityNotFound(_0x3dd10b,_0x2cab84){return function(_0x49a9f9){if(!_0x49a9f9){_0x3dd10b[_0x276d('0x1b')](0x194);}return _0x49a9f9;};}function handleError(_0x4b517f,_0xc8b1cc){_0xc8b1cc=_0xc8b1cc||0x1f4;return function(_0x1f85d9){logger['error'](_0x1f85d9[_0x276d('0x2a')]);if(_0x1f85d9['name']){delete _0x1f85d9['name'];}_0x4b517f['status'](_0xc8b1cc)[_0x276d('0x2b')](_0x1f85d9);};}exports[_0x276d('0x2c')]=function(_0xf2f7d,_0x43b79b){var _0x531a88={},_0x1438c6={},_0xa97fd5={'count':0x0,'rows':[]};var _0x40e801=_[_0x276d('0x2d')](db[_0x276d('0x2e')][_0x276d('0x2f')],function(_0x1102f7){return{'name':_0x1102f7['fieldName'],'type':_0x1102f7[_0x276d('0x30')][_0x276d('0x31')]};});_0x1438c6[_0x276d('0x32')]=_[_0x276d('0x2d')](_0x40e801,_0x276d('0x33'));_0x1438c6[_0x276d('0x34')]=_[_0x276d('0x35')](_0xf2f7d['query']);_0x1438c6[_0x276d('0x36')]=_[_0x276d('0x37')](_0x1438c6[_0x276d('0x32')],_0x1438c6[_0x276d('0x34')]);_0x531a88['attributes']=_[_0x276d('0x37')](_0x1438c6['model'],qs[_0x276d('0x38')](_0xf2f7d[_0x276d('0x34')][_0x276d('0x38')]));_0x531a88[_0x276d('0x39')]=_0x531a88[_0x276d('0x39')][_0x276d('0x3a')]?_0x531a88[_0x276d('0x39')]:_0x1438c6[_0x276d('0x32')];if(!_0xf2f7d['query']['hasOwnProperty'](_0x276d('0x3b'))){_0x531a88['limit']=qs[_0x276d('0x20')](_0xf2f7d[_0x276d('0x34')][_0x276d('0x20')]);_0x531a88[_0x276d('0x21')]=qs[_0x276d('0x21')](_0xf2f7d[_0x276d('0x34')][_0x276d('0x21')]);}_0x531a88['order']=qs['sort'](_0xf2f7d[_0x276d('0x34')][_0x276d('0x3c')]);_0x531a88['where']=qs['filters'](_[_0x276d('0x3d')](_0xf2f7d[_0x276d('0x34')],_0x1438c6['filters']),_0x40e801);if(_0xf2f7d[_0x276d('0x34')][_0x276d('0x3e')]){_0x531a88[_0x276d('0x3f')]=_[_0x276d('0x40')](_0x531a88[_0x276d('0x3f')],{'$or':_[_0x276d('0x2d')](_0x40e801,function(_0x5e5166){if(_0x5e5166[_0x276d('0x30')]!==_0x276d('0x41')){var _0x53d9a7={};_0x53d9a7[_0x5e5166['name']]={'$like':'%'+_0xf2f7d['query'][_0x276d('0x3e')]+'%'};return _0x53d9a7;}})});}_0x531a88=_[_0x276d('0x40')]({},_0x531a88,_0xf2f7d['options']);var _0x4ed666={'where':_0x531a88[_0x276d('0x3f')]};return db[_0x276d('0x2e')][_0x276d('0x22')](_0x4ed666)[_0x276d('0x29')](function(_0x3a0b1c){_0xa97fd5[_0x276d('0x22')]=_0x3a0b1c;if(_0xf2f7d[_0x276d('0x34')][_0x276d('0x42')]){_0x531a88[_0x276d('0x43')]=[{'all':!![]}];}return db[_0x276d('0x2e')][_0x276d('0x44')](_0x531a88);})[_0x276d('0x29')](function(_0x41a3a8){_0xa97fd5[_0x276d('0x45')]=_0x41a3a8;return _0xa97fd5;})['then'](respondWithFilteredResult(_0x43b79b,_0x531a88))[_0x276d('0x46')](handleError(_0x43b79b,null));};exports[_0x276d('0x47')]=function(_0x10ca70,_0x266373){var _0x8ef582={'raw':![],'where':{'id':_0x10ca70[_0x276d('0x48')]['id']}},_0x445eb1={};_0x445eb1[_0x276d('0x32')]=_[_0x276d('0x35')](db['FreshdeskAccount'][_0x276d('0x2f')]);_0x445eb1[_0x276d('0x34')]=_[_0x276d('0x35')](_0x10ca70[_0x276d('0x34')]);_0x445eb1['filters']=_[_0x276d('0x37')](_0x445eb1[_0x276d('0x32')],_0x445eb1[_0x276d('0x34')]);_0x8ef582[_0x276d('0x39')]=_[_0x276d('0x37')](_0x445eb1[_0x276d('0x32')],qs['fields'](_0x10ca70[_0x276d('0x34')]['fields']));_0x8ef582[_0x276d('0x39')]=_0x8ef582[_0x276d('0x39')]['length']?_0x8ef582[_0x276d('0x39')]:_0x445eb1[_0x276d('0x32')];if(_0x10ca70['query'][_0x276d('0x42')]){_0x8ef582[_0x276d('0x43')]=[{'all':!![]}];}_0x8ef582=_['merge']({},_0x8ef582,_0x10ca70[_0x276d('0x49')]);return db[_0x276d('0x2e')][_0x276d('0x4a')](_0x8ef582)[_0x276d('0x29')](handleEntityNotFound(_0x266373,null))[_0x276d('0x29')](respondWithResult(_0x266373,null))['catch'](handleError(_0x266373,null));};exports[_0x276d('0x4b')]=function(_0x259831,_0x397a2d){return db['FreshdeskAccount'][_0x276d('0x4b')](_0x259831[_0x276d('0x4c')],{})[_0x276d('0x29')](respondWithResult(_0x397a2d,0xc9))['catch'](handleError(_0x397a2d,null));};exports[_0x276d('0x28')]=function(_0x1642d7,_0x2ad1fe){if(_0x1642d7[_0x276d('0x4c')]['id']){delete _0x1642d7['body']['id'];}return db['FreshdeskAccount'][_0x276d('0x4a')]({'where':{'id':_0x1642d7[_0x276d('0x48')]['id']}})[_0x276d('0x29')](handleEntityNotFound(_0x2ad1fe,null))[_0x276d('0x29')](saveUpdates(_0x1642d7['body'],null))[_0x276d('0x29')](respondWithResult(_0x2ad1fe,null))['catch'](handleError(_0x2ad1fe,null));};exports['destroy']=function(_0x4e8ea3,_0x525c45){return db[_0x276d('0x2e')][_0x276d('0x4a')]({'where':{'id':_0x4e8ea3[_0x276d('0x48')]['id']}})['then'](handleEntityNotFound(_0x525c45,null))['then'](removeEntity(_0x525c45,null))['catch'](handleError(_0x525c45,null));};exports[_0x276d('0x4d')]=function(_0x3c279c,_0x27e5a7,_0x75136f){var _0x4d4c97={};var _0x5de49a={};var _0x4d16ae;var _0x21d079;return db[_0x276d('0x2e')][_0x276d('0x4e')]({'where':{'id':_0x3c279c[_0x276d('0x48')]['id']}})['then'](handleEntityNotFound(_0x27e5a7,null))[_0x276d('0x29')](function(_0x2be3ef){if(_0x2be3ef){_0x4d16ae=_0x2be3ef;_0x5de49a[_0x276d('0x32')]=_[_0x276d('0x35')](db[_0x276d('0x4f')][_0x276d('0x2f')]);_0x5de49a[_0x276d('0x34')]=_[_0x276d('0x35')](_0x3c279c['query']);_0x5de49a['filters']=_[_0x276d('0x37')](_0x5de49a['model'],_0x5de49a[_0x276d('0x34')]);_0x4d4c97[_0x276d('0x39')]=_[_0x276d('0x37')](_0x5de49a[_0x276d('0x32')],qs[_0x276d('0x38')](_0x3c279c['query'][_0x276d('0x38')]));_0x4d4c97[_0x276d('0x39')]=_0x4d4c97[_0x276d('0x39')][_0x276d('0x3a')]?_0x4d4c97[_0x276d('0x39')]:_0x5de49a['model'];_0x4d4c97[_0x276d('0x50')]=qs[_0x276d('0x3c')](_0x3c279c['query'][_0x276d('0x3c')]);_0x4d4c97[_0x276d('0x3f')]=qs['filters'](_[_0x276d('0x3d')](_0x3c279c[_0x276d('0x34')],_0x5de49a[_0x276d('0x36')]));if(_0x3c279c[_0x276d('0x34')][_0x276d('0x3e')]){_0x4d4c97[_0x276d('0x3f')]=_[_0x276d('0x40')](_0x4d4c97[_0x276d('0x3f')],{'$or':_[_0x276d('0x2d')](_0x4d4c97[_0x276d('0x39')],function(_0x38e2f1){var _0x44cbd0={};_0x44cbd0[_0x38e2f1]={'$like':'%'+_0x3c279c[_0x276d('0x34')]['filter']+'%'};return _0x44cbd0;})});}_0x4d4c97=_[_0x276d('0x40')]({},_0x4d4c97,_0x3c279c[_0x276d('0x49')]);return _0x4d16ae[_0x276d('0x4d')](_0x4d4c97);}})[_0x276d('0x29')](function(_0x4876f4){if(_0x4876f4){_0x21d079=_0x4876f4['length'];if(!_0x3c279c['query'][_0x276d('0x51')](_0x276d('0x3b'))){_0x4d4c97[_0x276d('0x20')]=qs[_0x276d('0x20')](_0x3c279c['query'][_0x276d('0x20')]);_0x4d4c97[_0x276d('0x21')]=qs[_0x276d('0x21')](_0x3c279c[_0x276d('0x34')][_0x276d('0x21')]);}return _0x4d16ae[_0x276d('0x4d')](_0x4d4c97);}})[_0x276d('0x29')](function(_0x357a8c){if(_0x357a8c){return _0x357a8c?{'count':_0x21d079,'rows':_0x357a8c}:null;}})[_0x276d('0x29')](respondWithResult(_0x27e5a7,null))[_0x276d('0x46')](handleError(_0x27e5a7,null));};exports[_0x276d('0x52')]=function(_0x4f847c,_0x39b4fa,_0x3c3408){if(_0x4f847c['body']['id']){delete _0x4f847c[_0x276d('0x4c')]['id'];}return db[_0x276d('0x2e')]['findOne']({'where':{'id':_0x4f847c[_0x276d('0x48')]['id']}})[_0x276d('0x29')](handleEntityNotFound(_0x39b4fa,null))[_0x276d('0x29')](function(_0x5db132){if(_0x5db132){_0x4f847c[_0x276d('0x4c')][_0x276d('0x53')]=_0x5db132['id'];_0x4f847c[_0x276d('0x4c')][_0x276d('0x54')]=integrations[_0x276d('0x55')](_0x4f847c[_0x276d('0x4c')][_0x276d('0x56')],_0x4f847c[_0x276d('0x4c')]['type']);_0x4f847c[_0x276d('0x4c')]['Descriptions']=integrations['getDescriptions'](_0x4f847c[_0x276d('0x4c')][_0x276d('0x56')],_0x4f847c[_0x276d('0x4c')][_0x276d('0x30')]);return db['FreshdeskConfiguration'][_0x276d('0x4b')](_0x4f847c[_0x276d('0x4c')],{'include':[{'model':db[_0x276d('0x57')],'as':_0x276d('0x54')},{'model':db[_0x276d('0x57')],'as':_0x276d('0x58')}]});}return null;})[_0x276d('0x29')](respondWithResult(_0x39b4fa,null))[_0x276d('0x46')](handleError(_0x39b4fa,null));};exports[_0x276d('0x59')]=function(_0x196257,_0x298867,_0x4c910d){var _0x2db556='';return db[_0x276d('0x2e')][_0x276d('0x4e')]({'where':{'id':_0x196257[_0x276d('0x48')]['id']},'attributes':['id',_0x276d('0x5a'),_0x276d('0x5b')]})[_0x276d('0x29')](handleEntityNotFound(_0x298867,null))[_0x276d('0x29')](function(_0x240d9d){if(_0x240d9d){_0x2db556=_0x240d9d['remoteUri'];var _0x18364b=_0x2db556[_0x276d('0x5c')](-0x1);if(_0x18364b==='/'){_0x2db556=_0x2db556[_0x276d('0x5d')](0x0,_0x2db556[_0x276d('0x5e')](_0x18364b));}return rp({'method':_0x276d('0x5f'),'uri':util[_0x276d('0x60')]('%s/%s',_0x2db556,_0x276d('0x61')),'headers':{'Authorization':util[_0x276d('0x60')](_0x276d('0x62'),new Buffer(util[_0x276d('0x60')](_0x276d('0x63'),_0x240d9d['apiKey']))[_0x276d('0x64')]('base64'))},'json':!![]});}})['then'](function(_0x2963bf){if(_0x2963bf){var _0xd66b05=[_0x276d('0x65'),_0x276d('0x66'),_0x276d('0x67'),_0x276d('0x68'),_0x276d('0x1c'),_0x276d('0x69'),_0x276d('0x6a'),_0x276d('0x6b'),_0x276d('0x6c'),_0x276d('0x6a'),_0x276d('0x6d')];_['remove'](_0x2963bf,function(_0x215098){return _0xd66b05[_0x276d('0x6e')](_0x215098[_0x276d('0x33')])||!_0x215098[_0x276d('0x6f')]&&_0x215098[_0x276d('0x30')]!==_0x276d('0x70')&&_0x215098[_0x276d('0x30')]!==_0x276d('0x71');});return{'count':_0x2963bf['length'],'rows':_['map'](_0x2963bf,function(_0x35538e){return{'id':_0x35538e[_0x276d('0x33')],'name':_0x35538e[_0x276d('0x72')],'custom':!_0x35538e[_0x276d('0x6f')],'options':_0x35538e[_0x276d('0x73')]?_['map'](_0x35538e['choices'],function(_0x11d3ec){return{'name':_['capitalize'](_0x11d3ec),'value':_0x11d3ec};}):[]};})};}})[_0x276d('0x29')](respondWithResult(_0x298867,null))[_0x276d('0x46')](function(_0x346ecd){var _0x5aa634=_0x196257[_0x276d('0x34')]['test']?0x1f4:_0x346ecd[_0x276d('0x74')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x5aa634,JSON[_0x276d('0x75')](_0x346ecd));delete _0x346ecd[_0x276d('0x33')];if(_0x5aa634===0x191){_0x5aa634=0x190;}_0x298867[_0x276d('0x1c')](_0x5aa634)[_0x276d('0x2b')](_0x196257[_0x276d('0x34')][_0x276d('0x76')]?{'message':_0x276d('0x77'),'statusCode':_0x346ecd[_0x276d('0x74')]}:_0x346ecd);});};