Built motion from commit e02f907f.|2.6.14
[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 _0xceb0=['channel','Descriptions','getDescriptions','FreshdeskConfiguration','FreshdeskField','remoteUri','apiKey','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','base64','requester','subject','description','group','ticket_type','company','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','request-promise','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','reject','update','then','end','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','getConfigurations','findOne','order','addConfiguration','Subjects','getSubjects'];(function(_0x40d4a2,_0x26bc15){var _0x48f13f=function(_0x45a3b9){while(--_0x45a3b9){_0x40d4a2['push'](_0x40d4a2['shift']());}};_0x48f13f(++_0x26bc15);}(_0xceb0,0x173));var _0x0ceb=function(_0x374cc6,_0xeec748){_0x374cc6=_0x374cc6-0x0;var _0x51e0ad=_0xceb0[_0x374cc6];return _0x51e0ad;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0ceb('0x0'));var moment=require('moment');var BPromise=require(_0x0ceb('0x1'));var Mustache=require(_0x0ceb('0x2'));var util=require(_0x0ceb('0x3'));var path=require('path');var sox=require('sox');var csv=require(_0x0ceb('0x4'));var ejs=require(_0x0ceb('0x5'));var fs=require('fs');var fs_extra=require(_0x0ceb('0x6'));var _=require('lodash');var squel=require(_0x0ceb('0x7'));var crypto=require(_0x0ceb('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x0ceb('0x9'));var toCsv=require('to-csv');var querystring=require(_0x0ceb('0xa'));var Papa=require(_0x0ceb('0xb'));var Redis=require(_0x0ceb('0xc'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0ceb('0xd'));var hardwareService=require(_0x0ceb('0xe'));var logger=require(_0x0ceb('0xf'))(_0x0ceb('0x10'));var utils=require(_0x0ceb('0x11'));var config=require(_0x0ceb('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x0ceb('0x13'))['db'];var integrations=require(_0x0ceb('0x14'));function respondWithStatusCode(_0x358801,_0x26cb7a){_0x26cb7a=_0x26cb7a||0xcc;return function(_0x41f120){if(_0x41f120){return _0x358801[_0x0ceb('0x15')](_0x26cb7a);}return _0x358801[_0x0ceb('0x16')](_0x26cb7a)['end']();};}function respondWithResult(_0x416fbb,_0x54a173){_0x54a173=_0x54a173||0xc8;return function(_0x55620b){if(_0x55620b){return _0x416fbb[_0x0ceb('0x16')](_0x54a173)[_0x0ceb('0x17')](_0x55620b);}};}function respondWithFilteredResult(_0x218d6e,_0x536bdd){return function(_0x33a190){if(_0x33a190){var _0xc02d04=typeof _0x536bdd['offset']===_0x0ceb('0x18')&&typeof _0x536bdd[_0x0ceb('0x19')]===_0x0ceb('0x18');var _0x436a7c=_0x33a190[_0x0ceb('0x1a')];var _0x27fbeb=_0xc02d04?0x0:_0x536bdd[_0x0ceb('0x1b')];var _0x2a2eae=_0xc02d04?_0x33a190[_0x0ceb('0x1a')]:_0x536bdd[_0x0ceb('0x1b')]+_0x536bdd[_0x0ceb('0x19')];var _0x18f845;if(_0x2a2eae>=_0x436a7c){_0x2a2eae=_0x436a7c;_0x18f845=0xc8;}else{_0x18f845=0xce;}_0x218d6e[_0x0ceb('0x16')](_0x18f845);return _0x218d6e[_0x0ceb('0x1c')](_0x0ceb('0x1d'),_0x27fbeb+'-'+_0x2a2eae+'/'+_0x436a7c)[_0x0ceb('0x17')](_0x33a190);}return null;};}function patchUpdates(_0x241c07){return function(_0x5e13ad){try{jsonpatch['apply'](_0x5e13ad,_0x241c07,!![]);}catch(_0x25c48a){return BPromise[_0x0ceb('0x1e')](_0x25c48a);}return _0x5e13ad['save']();};}function saveUpdates(_0x2fd374,_0x54fce7){return function(_0x38a716){if(_0x38a716){return _0x38a716[_0x0ceb('0x1f')](_0x2fd374)[_0x0ceb('0x20')](function(_0x17efd7){return _0x17efd7;});}return null;};}function removeEntity(_0x27e058,_0x4a2b69){return function(_0x5c41dd){if(_0x5c41dd){return _0x5c41dd['destroy']()[_0x0ceb('0x20')](function(){_0x27e058['status'](0xcc)[_0x0ceb('0x21')]();});}};}function handleEntityNotFound(_0x4c3e4c,_0x45f2fe){return function(_0xa8be2a){if(!_0xa8be2a){_0x4c3e4c[_0x0ceb('0x15')](0x194);}return _0xa8be2a;};}function handleError(_0x72e51,_0x5a15ee){_0x5a15ee=_0x5a15ee||0x1f4;return function(_0x106916){logger[_0x0ceb('0x22')](_0x106916[_0x0ceb('0x23')]);if(_0x106916[_0x0ceb('0x24')]){delete _0x106916[_0x0ceb('0x24')];}_0x72e51['status'](_0x5a15ee)[_0x0ceb('0x25')](_0x106916);};}exports[_0x0ceb('0x26')]=function(_0x3c934b,_0x4427b8){var _0x1ca4cb={},_0x16265d={},_0x58aa8b={'count':0x0,'rows':[]};var _0x30adcb=_[_0x0ceb('0x27')](db[_0x0ceb('0x28')][_0x0ceb('0x29')],function(_0x331e98){return{'name':_0x331e98[_0x0ceb('0x2a')],'type':_0x331e98[_0x0ceb('0x2b')][_0x0ceb('0x2c')]};});_0x16265d[_0x0ceb('0x2d')]=_[_0x0ceb('0x27')](_0x30adcb,'name');_0x16265d[_0x0ceb('0x2e')]=_[_0x0ceb('0x2f')](_0x3c934b['query']);_0x16265d[_0x0ceb('0x30')]=_[_0x0ceb('0x31')](_0x16265d[_0x0ceb('0x2d')],_0x16265d['query']);_0x1ca4cb[_0x0ceb('0x32')]=_[_0x0ceb('0x31')](_0x16265d[_0x0ceb('0x2d')],qs[_0x0ceb('0x33')](_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x33')]));_0x1ca4cb[_0x0ceb('0x32')]=_0x1ca4cb[_0x0ceb('0x32')][_0x0ceb('0x34')]?_0x1ca4cb[_0x0ceb('0x32')]:_0x16265d[_0x0ceb('0x2d')];if(!_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x35')]('nolimit')){_0x1ca4cb[_0x0ceb('0x19')]=qs[_0x0ceb('0x19')](_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x19')]);_0x1ca4cb[_0x0ceb('0x1b')]=qs[_0x0ceb('0x1b')](_0x3c934b['query'][_0x0ceb('0x1b')]);}_0x1ca4cb['order']=qs['sort'](_0x3c934b['query'][_0x0ceb('0x36')]);_0x1ca4cb['where']=qs[_0x0ceb('0x30')](_[_0x0ceb('0x37')](_0x3c934b['query'],_0x16265d[_0x0ceb('0x30')]),_0x30adcb);if(_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x38')]){_0x1ca4cb['where']=_[_0x0ceb('0x39')](_0x1ca4cb[_0x0ceb('0x3a')],{'$or':_[_0x0ceb('0x27')](_0x30adcb,function(_0x8b0683){if(_0x8b0683[_0x0ceb('0x2b')]!==_0x0ceb('0x3b')){var _0x31d20e={};_0x31d20e[_0x8b0683[_0x0ceb('0x24')]]={'$like':'%'+_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x38')]+'%'};return _0x31d20e;}})});}_0x1ca4cb=_[_0x0ceb('0x39')]({},_0x1ca4cb,_0x3c934b[_0x0ceb('0x3c')]);var _0x3c3813={'where':_0x1ca4cb[_0x0ceb('0x3a')]};return db[_0x0ceb('0x28')][_0x0ceb('0x1a')](_0x3c3813)[_0x0ceb('0x20')](function(_0x3de5c7){_0x58aa8b[_0x0ceb('0x1a')]=_0x3de5c7;if(_0x3c934b[_0x0ceb('0x2e')][_0x0ceb('0x3d')]){_0x1ca4cb[_0x0ceb('0x3e')]=[{'all':!![]}];}return db[_0x0ceb('0x28')][_0x0ceb('0x3f')](_0x1ca4cb);})[_0x0ceb('0x20')](function(_0x146bb8){_0x58aa8b[_0x0ceb('0x40')]=_0x146bb8;return _0x58aa8b;})[_0x0ceb('0x20')](respondWithFilteredResult(_0x4427b8,_0x1ca4cb))['catch'](handleError(_0x4427b8,null));};exports[_0x0ceb('0x41')]=function(_0x4d1972,_0x482889){var _0x3d2607={'raw':![],'where':{'id':_0x4d1972[_0x0ceb('0x42')]['id']}},_0x6ad0e3={};_0x6ad0e3['model']=_['keys'](db[_0x0ceb('0x28')][_0x0ceb('0x29')]);_0x6ad0e3[_0x0ceb('0x2e')]=_[_0x0ceb('0x2f')](_0x4d1972[_0x0ceb('0x2e')]);_0x6ad0e3[_0x0ceb('0x30')]=_[_0x0ceb('0x31')](_0x6ad0e3[_0x0ceb('0x2d')],_0x6ad0e3[_0x0ceb('0x2e')]);_0x3d2607['attributes']=_[_0x0ceb('0x31')](_0x6ad0e3[_0x0ceb('0x2d')],qs[_0x0ceb('0x33')](_0x4d1972[_0x0ceb('0x2e')]['fields']));_0x3d2607[_0x0ceb('0x32')]=_0x3d2607['attributes'][_0x0ceb('0x34')]?_0x3d2607['attributes']:_0x6ad0e3[_0x0ceb('0x2d')];if(_0x4d1972[_0x0ceb('0x2e')][_0x0ceb('0x3d')]){_0x3d2607[_0x0ceb('0x3e')]=[{'all':!![]}];}_0x3d2607=_[_0x0ceb('0x39')]({},_0x3d2607,_0x4d1972[_0x0ceb('0x3c')]);return db[_0x0ceb('0x28')][_0x0ceb('0x43')](_0x3d2607)['then'](handleEntityNotFound(_0x482889,null))[_0x0ceb('0x20')](respondWithResult(_0x482889,null))[_0x0ceb('0x44')](handleError(_0x482889,null));};exports['create']=function(_0x3898fe,_0x24efd4){return db[_0x0ceb('0x28')][_0x0ceb('0x45')](_0x3898fe[_0x0ceb('0x46')],{})['then'](respondWithResult(_0x24efd4,0xc9))[_0x0ceb('0x44')](handleError(_0x24efd4,null));};exports[_0x0ceb('0x1f')]=function(_0x1a7c52,_0xf17e0b){if(_0x1a7c52[_0x0ceb('0x46')]['id']){delete _0x1a7c52[_0x0ceb('0x46')]['id'];}return db[_0x0ceb('0x28')][_0x0ceb('0x43')]({'where':{'id':_0x1a7c52[_0x0ceb('0x42')]['id']}})['then'](handleEntityNotFound(_0xf17e0b,null))[_0x0ceb('0x20')](saveUpdates(_0x1a7c52[_0x0ceb('0x46')],null))[_0x0ceb('0x20')](respondWithResult(_0xf17e0b,null))[_0x0ceb('0x44')](handleError(_0xf17e0b,null));};exports['destroy']=function(_0x4aef77,_0x34a427){return db[_0x0ceb('0x28')][_0x0ceb('0x43')]({'where':{'id':_0x4aef77[_0x0ceb('0x42')]['id']}})[_0x0ceb('0x20')](handleEntityNotFound(_0x34a427,null))['then'](removeEntity(_0x34a427,null))[_0x0ceb('0x44')](handleError(_0x34a427,null));};exports[_0x0ceb('0x47')]=function(_0x4c420c,_0x4c70ab,_0x483570){var _0x348381={};var _0x33a79b={};var _0x13fa76;var _0x47c4d6;return db[_0x0ceb('0x28')][_0x0ceb('0x48')]({'where':{'id':_0x4c420c['params']['id']}})[_0x0ceb('0x20')](handleEntityNotFound(_0x4c70ab,null))[_0x0ceb('0x20')](function(_0x2d4947){if(_0x2d4947){_0x13fa76=_0x2d4947;_0x33a79b['model']=_[_0x0ceb('0x2f')](db['FreshdeskConfiguration'][_0x0ceb('0x29')]);_0x33a79b[_0x0ceb('0x2e')]=_[_0x0ceb('0x2f')](_0x4c420c[_0x0ceb('0x2e')]);_0x33a79b[_0x0ceb('0x30')]=_['intersection'](_0x33a79b[_0x0ceb('0x2d')],_0x33a79b[_0x0ceb('0x2e')]);_0x348381[_0x0ceb('0x32')]=_[_0x0ceb('0x31')](_0x33a79b[_0x0ceb('0x2d')],qs[_0x0ceb('0x33')](_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x33')]));_0x348381[_0x0ceb('0x32')]=_0x348381[_0x0ceb('0x32')]['length']?_0x348381[_0x0ceb('0x32')]:_0x33a79b[_0x0ceb('0x2d')];_0x348381[_0x0ceb('0x49')]=qs[_0x0ceb('0x36')](_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x36')]);_0x348381[_0x0ceb('0x3a')]=qs['filters'](_[_0x0ceb('0x37')](_0x4c420c[_0x0ceb('0x2e')],_0x33a79b[_0x0ceb('0x30')]));if(_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x38')]){_0x348381[_0x0ceb('0x3a')]=_[_0x0ceb('0x39')](_0x348381[_0x0ceb('0x3a')],{'$or':_[_0x0ceb('0x27')](_0x348381[_0x0ceb('0x32')],function(_0x42a084){var _0x4d363e={};_0x4d363e[_0x42a084]={'$like':'%'+_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x38')]+'%'};return _0x4d363e;})});}_0x348381=_[_0x0ceb('0x39')]({},_0x348381,_0x4c420c[_0x0ceb('0x3c')]);return _0x13fa76[_0x0ceb('0x47')](_0x348381);}})['then'](function(_0x5afd08){if(_0x5afd08){_0x47c4d6=_0x5afd08[_0x0ceb('0x34')];if(!_0x4c420c['query'][_0x0ceb('0x35')]('nolimit')){_0x348381[_0x0ceb('0x19')]=qs[_0x0ceb('0x19')](_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x19')]);_0x348381[_0x0ceb('0x1b')]=qs['offset'](_0x4c420c[_0x0ceb('0x2e')][_0x0ceb('0x1b')]);}return _0x13fa76[_0x0ceb('0x47')](_0x348381);}})[_0x0ceb('0x20')](function(_0x4412f0){if(_0x4412f0){return _0x4412f0?{'count':_0x47c4d6,'rows':_0x4412f0}:null;}})[_0x0ceb('0x20')](respondWithResult(_0x4c70ab,null))['catch'](handleError(_0x4c70ab,null));};exports[_0x0ceb('0x4a')]=function(_0x11c6c8,_0x1d224c,_0x2b688f){if(_0x11c6c8['body']['id']){delete _0x11c6c8['body']['id'];}return db[_0x0ceb('0x28')][_0x0ceb('0x48')]({'where':{'id':_0x11c6c8[_0x0ceb('0x42')]['id']}})[_0x0ceb('0x20')](handleEntityNotFound(_0x1d224c,null))[_0x0ceb('0x20')](function(_0x27bc5e){if(_0x27bc5e){_0x11c6c8[_0x0ceb('0x46')]['AccountId']=_0x27bc5e['id'];_0x11c6c8[_0x0ceb('0x46')][_0x0ceb('0x4b')]=integrations[_0x0ceb('0x4c')](_0x11c6c8[_0x0ceb('0x46')][_0x0ceb('0x4d')],_0x11c6c8[_0x0ceb('0x46')][_0x0ceb('0x2b')]);_0x11c6c8[_0x0ceb('0x46')][_0x0ceb('0x4e')]=integrations[_0x0ceb('0x4f')](_0x11c6c8[_0x0ceb('0x46')]['channel'],_0x11c6c8[_0x0ceb('0x46')][_0x0ceb('0x2b')]);return db[_0x0ceb('0x50')][_0x0ceb('0x45')](_0x11c6c8[_0x0ceb('0x46')],{'include':[{'model':db[_0x0ceb('0x51')],'as':_0x0ceb('0x4b')},{'model':db['FreshdeskField'],'as':_0x0ceb('0x4e')}]});}return null;})[_0x0ceb('0x20')](respondWithResult(_0x1d224c,null))[_0x0ceb('0x44')](handleError(_0x1d224c,null));};exports['getFields']=function(_0x3f5c74,_0x25903d,_0x363b23){var _0x126a03='';return db[_0x0ceb('0x28')][_0x0ceb('0x48')]({'where':{'id':_0x3f5c74[_0x0ceb('0x42')]['id']},'attributes':['id',_0x0ceb('0x52'),_0x0ceb('0x53')]})[_0x0ceb('0x20')](handleEntityNotFound(_0x25903d,null))['then'](function(_0x547459){if(_0x547459){_0x126a03=_0x547459[_0x0ceb('0x52')];var _0x16bfcd=_0x126a03['slice'](-0x1);if(_0x16bfcd==='/'){_0x126a03=_0x126a03[_0x0ceb('0x54')](0x0,_0x126a03[_0x0ceb('0x55')](_0x16bfcd));}return rp({'method':_0x0ceb('0x56'),'uri':util['format'](_0x0ceb('0x57'),_0x126a03,_0x0ceb('0x58')),'headers':{'Authorization':util[_0x0ceb('0x59')](_0x0ceb('0x5a'),new Buffer(util[_0x0ceb('0x59')]('%s:X',_0x547459['apiKey']))['toString'](_0x0ceb('0x5b')))},'json':!![]});}})['then'](function(_0x162e78){if(_0x162e78){var _0x29479c=[_0x0ceb('0x5c'),_0x0ceb('0x5d'),'agent',_0x0ceb('0x5e'),_0x0ceb('0x16'),'priority',_0x0ceb('0x5f'),'source',_0x0ceb('0x60'),_0x0ceb('0x5f'),_0x0ceb('0x61')];_[_0x0ceb('0x62')](_0x162e78,function(_0x5da5f6){return _0x29479c[_0x0ceb('0x63')](_0x5da5f6[_0x0ceb('0x24')])||!_0x5da5f6[_0x0ceb('0x64')]&&_0x5da5f6['type']!==_0x0ceb('0x65')&&_0x5da5f6['type']!==_0x0ceb('0x66');});return{'count':_0x162e78[_0x0ceb('0x34')],'rows':_[_0x0ceb('0x27')](_0x162e78,function(_0x43dd7b){return{'id':_0x43dd7b[_0x0ceb('0x24')],'name':_0x43dd7b[_0x0ceb('0x67')],'custom':!_0x43dd7b['default'],'options':_0x43dd7b[_0x0ceb('0x68')]?_[_0x0ceb('0x27')](_0x43dd7b[_0x0ceb('0x68')],function(_0x27942d){return{'name':_[_0x0ceb('0x69')](_0x27942d),'value':_0x27942d};}):[]};})};}})[_0x0ceb('0x20')](respondWithResult(_0x25903d,null))[_0x0ceb('0x44')](function(_0x448051){var _0x5cba25=_0x3f5c74[_0x0ceb('0x2e')][_0x0ceb('0x6a')]?0x1f4:_0x448051[_0x0ceb('0x6b')]||0x1f4;logger['error'](_0x0ceb('0x6c'),_0x0ceb('0x6d'),_0x5cba25,JSON[_0x0ceb('0x6e')](_0x448051));delete _0x448051['name'];if(_0x5cba25===0x191){_0x5cba25=0x190;}_0x25903d[_0x0ceb('0x16')](_0x5cba25)['send'](_0x3f5c74['query'][_0x0ceb('0x6a')]?{'message':_0x0ceb('0x6f'),'statusCode':_0x448051['statusCode']}:_0x448051);});};