ce2046f4fbc362e765b6dc7af88d5f01c241e55a
[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 _0x6146=['keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','show','find','catch','create','body','params','destroy','findOne','FreshdeskConfiguration','addConfiguration','AccountId','getSubjects','channel','getDescriptions','FreshdeskField','Subjects','Descriptions','getFields','remoteUri','apiKey','slice','GET','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','%s:X','toString','requester','agent','description','priority','group','ticket_type','company','remove','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','model','query'];(function(_0x1c8885,_0x504445){var _0x413090=function(_0x2bb5ea){while(--_0x2bb5ea){_0x1c8885['push'](_0x1c8885['shift']());}};_0x413090(++_0x504445);}(_0x6146,0xba));var _0x6614=function(_0x3aa685,_0x575665){_0x3aa685=_0x3aa685-0x0;var _0x15d571=_0x6146[_0x3aa685];return _0x15d571;};'use strict';var emlformat=require(_0x6614('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6614('0x1'));var jsonpatch=require(_0x6614('0x2'));var rp=require(_0x6614('0x3'));var moment=require(_0x6614('0x4'));var BPromise=require(_0x6614('0x5'));var Mustache=require(_0x6614('0x6'));var util=require(_0x6614('0x7'));var path=require('path');var sox=require(_0x6614('0x8'));var csv=require(_0x6614('0x9'));var ejs=require(_0x6614('0xa'));var fs=require('fs');var fs_extra=require(_0x6614('0xb'));var _=require(_0x6614('0xc'));var squel=require(_0x6614('0xd'));var crypto=require(_0x6614('0xe'));var jsforce=require(_0x6614('0xf'));var deskjs=require(_0x6614('0x10'));var toCsv=require('to-csv');var querystring=require(_0x6614('0x11'));var Papa=require(_0x6614('0x12'));var Redis=require(_0x6614('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x6614('0x14'));var as=require(_0x6614('0x15'));var hardwareService=require(_0x6614('0x16'));var logger=require(_0x6614('0x17'))(_0x6614('0x18'));var utils=require(_0x6614('0x19'));var config=require(_0x6614('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x6614('0x1b'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3550a7,_0x11b16b){_0x11b16b=_0x11b16b||0xcc;return function(_0x167486){if(_0x167486){return _0x3550a7[_0x6614('0x1c')](_0x11b16b);}return _0x3550a7[_0x6614('0x1d')](_0x11b16b)[_0x6614('0x1e')]();};}function respondWithResult(_0x1bae1d,_0x288cd7){_0x288cd7=_0x288cd7||0xc8;return function(_0x156281){if(_0x156281){return _0x1bae1d['status'](_0x288cd7)['json'](_0x156281);}};}function respondWithFilteredResult(_0x219365,_0x40a008){return function(_0x5e933f){if(_0x5e933f){var _0x15a983=typeof _0x40a008[_0x6614('0x1f')]===_0x6614('0x20')&&typeof _0x40a008['limit']===_0x6614('0x20');var _0x37fa8f=_0x5e933f[_0x6614('0x21')];var _0x5f1f8e=_0x15a983?0x0:_0x40a008['offset'];var _0x2e843e=_0x15a983?_0x5e933f[_0x6614('0x21')]:_0x40a008[_0x6614('0x1f')]+_0x40a008[_0x6614('0x22')];var _0x491d88;if(_0x2e843e>=_0x37fa8f){_0x2e843e=_0x37fa8f;_0x491d88=0xc8;}else{_0x491d88=0xce;}_0x219365[_0x6614('0x1d')](_0x491d88);return _0x219365[_0x6614('0x23')](_0x6614('0x24'),_0x5f1f8e+'-'+_0x2e843e+'/'+_0x37fa8f)[_0x6614('0x25')](_0x5e933f);}return null;};}function patchUpdates(_0x15c667){return function(_0x323d8f){try{jsonpatch[_0x6614('0x26')](_0x323d8f,_0x15c667,!![]);}catch(_0x40ce2c){return BPromise[_0x6614('0x27')](_0x40ce2c);}return _0x323d8f[_0x6614('0x28')]();};}function saveUpdates(_0x18889c,_0x3275ee){return function(_0x5da2c1){if(_0x5da2c1){return _0x5da2c1[_0x6614('0x29')](_0x18889c)['then'](function(_0x13ad7a){return _0x13ad7a;});}return null;};}function removeEntity(_0x30205e,_0x332fca){return function(_0x478fe6){if(_0x478fe6){return _0x478fe6['destroy']()[_0x6614('0x2a')](function(){_0x30205e['status'](0xcc)[_0x6614('0x1e')]();});}};}function handleEntityNotFound(_0x5c8651,_0x3c82e5){return function(_0x20fd50){if(!_0x20fd50){_0x5c8651['sendStatus'](0x194);}return _0x20fd50;};}function handleError(_0x119e53,_0x4e9450){_0x4e9450=_0x4e9450||0x1f4;return function(_0x184857){logger[_0x6614('0x2b')](_0x184857[_0x6614('0x2c')]);if(_0x184857[_0x6614('0x2d')]){delete _0x184857[_0x6614('0x2d')];}_0x119e53[_0x6614('0x1d')](_0x4e9450)[_0x6614('0x2e')](_0x184857);};}exports[_0x6614('0x2f')]=function(_0x1fef5f,_0x32ee73){var _0x153b8e={},_0x30811a={},_0x14db81={'count':0x0,'rows':[]};var _0x546c0e=_[_0x6614('0x30')](db[_0x6614('0x31')][_0x6614('0x32')],function(_0x13380e){return{'name':_0x13380e[_0x6614('0x33')],'type':_0x13380e[_0x6614('0x34')][_0x6614('0x35')]};});_0x30811a[_0x6614('0x36')]=_['map'](_0x546c0e,_0x6614('0x2d'));_0x30811a[_0x6614('0x37')]=_[_0x6614('0x38')](_0x1fef5f['query']);_0x30811a['filters']=_[_0x6614('0x39')](_0x30811a['model'],_0x30811a[_0x6614('0x37')]);_0x153b8e[_0x6614('0x3a')]=_['intersection'](_0x30811a[_0x6614('0x36')],qs[_0x6614('0x3b')](_0x1fef5f[_0x6614('0x37')]['fields']));_0x153b8e[_0x6614('0x3a')]=_0x153b8e[_0x6614('0x3a')][_0x6614('0x3c')]?_0x153b8e[_0x6614('0x3a')]:_0x30811a[_0x6614('0x36')];if(!_0x1fef5f[_0x6614('0x37')][_0x6614('0x3d')](_0x6614('0x3e'))){_0x153b8e[_0x6614('0x22')]=qs[_0x6614('0x22')](_0x1fef5f[_0x6614('0x37')][_0x6614('0x22')]);_0x153b8e[_0x6614('0x1f')]=qs[_0x6614('0x1f')](_0x1fef5f[_0x6614('0x37')][_0x6614('0x1f')]);}_0x153b8e[_0x6614('0x3f')]=qs[_0x6614('0x40')](_0x1fef5f[_0x6614('0x37')][_0x6614('0x40')]);_0x153b8e['where']=qs[_0x6614('0x41')](_[_0x6614('0x42')](_0x1fef5f[_0x6614('0x37')],_0x30811a[_0x6614('0x41')]),_0x546c0e);if(_0x1fef5f[_0x6614('0x37')][_0x6614('0x43')]){_0x153b8e[_0x6614('0x44')]=_[_0x6614('0x45')](_0x153b8e[_0x6614('0x44')],{'$or':_[_0x6614('0x30')](_0x546c0e,function(_0x2fc58a){if(_0x2fc58a[_0x6614('0x34')]!==_0x6614('0x46')){var _0x3f87b5={};_0x3f87b5[_0x2fc58a[_0x6614('0x2d')]]={'$like':'%'+_0x1fef5f[_0x6614('0x37')][_0x6614('0x43')]+'%'};return _0x3f87b5;}})});}_0x153b8e=_[_0x6614('0x45')]({},_0x153b8e,_0x1fef5f[_0x6614('0x47')]);var _0x4b2fbe={'where':_0x153b8e[_0x6614('0x44')]};return db[_0x6614('0x31')][_0x6614('0x21')](_0x4b2fbe)[_0x6614('0x2a')](function(_0x52244d){_0x14db81['count']=_0x52244d;if(_0x1fef5f[_0x6614('0x37')][_0x6614('0x48')]){_0x153b8e['include']=[{'all':!![]}];}return db['FreshdeskAccount'][_0x6614('0x49')](_0x153b8e);})['then'](function(_0x14bd38){_0x14db81['rows']=_0x14bd38;return _0x14db81;})[_0x6614('0x2a')](respondWithFilteredResult(_0x32ee73,_0x153b8e))['catch'](handleError(_0x32ee73,null));};exports[_0x6614('0x4a')]=function(_0xc0250a,_0x1c3145){var _0x31ea45={'raw':![],'where':{'id':_0xc0250a['params']['id']}},_0x74eb0d={};_0x74eb0d['model']=_[_0x6614('0x38')](db[_0x6614('0x31')][_0x6614('0x32')]);_0x74eb0d[_0x6614('0x37')]=_[_0x6614('0x38')](_0xc0250a['query']);_0x74eb0d[_0x6614('0x41')]=_[_0x6614('0x39')](_0x74eb0d[_0x6614('0x36')],_0x74eb0d[_0x6614('0x37')]);_0x31ea45[_0x6614('0x3a')]=_[_0x6614('0x39')](_0x74eb0d['model'],qs[_0x6614('0x3b')](_0xc0250a['query'][_0x6614('0x3b')]));_0x31ea45['attributes']=_0x31ea45[_0x6614('0x3a')]['length']?_0x31ea45['attributes']:_0x74eb0d[_0x6614('0x36')];if(_0xc0250a[_0x6614('0x37')][_0x6614('0x48')]){_0x31ea45['include']=[{'all':!![]}];}_0x31ea45=_[_0x6614('0x45')]({},_0x31ea45,_0xc0250a['options']);return db[_0x6614('0x31')][_0x6614('0x4b')](_0x31ea45)[_0x6614('0x2a')](handleEntityNotFound(_0x1c3145,null))[_0x6614('0x2a')](respondWithResult(_0x1c3145,null))[_0x6614('0x4c')](handleError(_0x1c3145,null));};exports[_0x6614('0x4d')]=function(_0x54b8c3,_0x138637){return db[_0x6614('0x31')]['create'](_0x54b8c3[_0x6614('0x4e')],{})[_0x6614('0x2a')](respondWithResult(_0x138637,0xc9))[_0x6614('0x4c')](handleError(_0x138637,null));};exports['update']=function(_0x416ba2,_0x3fb42e){if(_0x416ba2[_0x6614('0x4e')]['id']){delete _0x416ba2[_0x6614('0x4e')]['id'];}return db[_0x6614('0x31')]['find']({'where':{'id':_0x416ba2[_0x6614('0x4f')]['id']}})[_0x6614('0x2a')](handleEntityNotFound(_0x3fb42e,null))[_0x6614('0x2a')](saveUpdates(_0x416ba2[_0x6614('0x4e')],null))[_0x6614('0x2a')](respondWithResult(_0x3fb42e,null))[_0x6614('0x4c')](handleError(_0x3fb42e,null));};exports[_0x6614('0x50')]=function(_0x372e79,_0x1ef01c){return db['FreshdeskAccount'][_0x6614('0x4b')]({'where':{'id':_0x372e79[_0x6614('0x4f')]['id']}})[_0x6614('0x2a')](handleEntityNotFound(_0x1ef01c,null))[_0x6614('0x2a')](removeEntity(_0x1ef01c,null))['catch'](handleError(_0x1ef01c,null));};exports['getConfigurations']=function(_0x3a11af,_0x5c590e,_0x104815){var _0x37dd7c={};var _0x154ae4={};var _0x402d34;var _0x513eaf;return db[_0x6614('0x31')][_0x6614('0x51')]({'where':{'id':_0x3a11af['params']['id']}})[_0x6614('0x2a')](handleEntityNotFound(_0x5c590e,null))[_0x6614('0x2a')](function(_0x518266){if(_0x518266){_0x402d34=_0x518266;_0x154ae4['model']=_[_0x6614('0x38')](db[_0x6614('0x52')][_0x6614('0x32')]);_0x154ae4['query']=_['keys'](_0x3a11af[_0x6614('0x37')]);_0x154ae4[_0x6614('0x41')]=_[_0x6614('0x39')](_0x154ae4[_0x6614('0x36')],_0x154ae4[_0x6614('0x37')]);_0x37dd7c['attributes']=_[_0x6614('0x39')](_0x154ae4[_0x6614('0x36')],qs[_0x6614('0x3b')](_0x3a11af[_0x6614('0x37')][_0x6614('0x3b')]));_0x37dd7c[_0x6614('0x3a')]=_0x37dd7c[_0x6614('0x3a')][_0x6614('0x3c')]?_0x37dd7c['attributes']:_0x154ae4[_0x6614('0x36')];_0x37dd7c[_0x6614('0x3f')]=qs[_0x6614('0x40')](_0x3a11af[_0x6614('0x37')]['sort']);_0x37dd7c['where']=qs[_0x6614('0x41')](_[_0x6614('0x42')](_0x3a11af[_0x6614('0x37')],_0x154ae4[_0x6614('0x41')]));if(_0x3a11af[_0x6614('0x37')][_0x6614('0x43')]){_0x37dd7c[_0x6614('0x44')]=_[_0x6614('0x45')](_0x37dd7c[_0x6614('0x44')],{'$or':_[_0x6614('0x30')](_0x37dd7c[_0x6614('0x3a')],function(_0x2865b2){var _0x5ab579={};_0x5ab579[_0x2865b2]={'$like':'%'+_0x3a11af['query'][_0x6614('0x43')]+'%'};return _0x5ab579;})});}_0x37dd7c=_[_0x6614('0x45')]({},_0x37dd7c,_0x3a11af[_0x6614('0x47')]);return _0x402d34['getConfigurations'](_0x37dd7c);}})['then'](function(_0x2abbb6){if(_0x2abbb6){_0x513eaf=_0x2abbb6[_0x6614('0x3c')];if(!_0x3a11af[_0x6614('0x37')]['hasOwnProperty']('nolimit')){_0x37dd7c[_0x6614('0x22')]=qs['limit'](_0x3a11af[_0x6614('0x37')][_0x6614('0x22')]);_0x37dd7c[_0x6614('0x1f')]=qs[_0x6614('0x1f')](_0x3a11af[_0x6614('0x37')][_0x6614('0x1f')]);}return _0x402d34['getConfigurations'](_0x37dd7c);}})[_0x6614('0x2a')](function(_0x5d4964){if(_0x5d4964){return _0x5d4964?{'count':_0x513eaf,'rows':_0x5d4964}:null;}})[_0x6614('0x2a')](respondWithResult(_0x5c590e,null))[_0x6614('0x4c')](handleError(_0x5c590e,null));};exports[_0x6614('0x53')]=function(_0x188f13,_0x10736d,_0x2381b2){if(_0x188f13[_0x6614('0x4e')]['id']){delete _0x188f13[_0x6614('0x4e')]['id'];}return db[_0x6614('0x31')][_0x6614('0x51')]({'where':{'id':_0x188f13['params']['id']}})['then'](handleEntityNotFound(_0x10736d,null))[_0x6614('0x2a')](function(_0x29357b){if(_0x29357b){_0x188f13[_0x6614('0x4e')][_0x6614('0x54')]=_0x29357b['id'];_0x188f13[_0x6614('0x4e')]['Subjects']=integrations[_0x6614('0x55')](_0x188f13[_0x6614('0x4e')][_0x6614('0x56')],_0x188f13[_0x6614('0x4e')][_0x6614('0x34')]);_0x188f13[_0x6614('0x4e')]['Descriptions']=integrations[_0x6614('0x57')](_0x188f13[_0x6614('0x4e')]['channel'],_0x188f13[_0x6614('0x4e')][_0x6614('0x34')]);return db[_0x6614('0x52')][_0x6614('0x4d')](_0x188f13[_0x6614('0x4e')],{'include':[{'model':db[_0x6614('0x58')],'as':_0x6614('0x59')},{'model':db[_0x6614('0x58')],'as':_0x6614('0x5a')}]});}return null;})[_0x6614('0x2a')](respondWithResult(_0x10736d,null))['catch'](handleError(_0x10736d,null));};exports[_0x6614('0x5b')]=function(_0x33c3e8,_0x4d49ea,_0x45bdce){var _0x1dfe26='';return db[_0x6614('0x31')][_0x6614('0x51')]({'where':{'id':_0x33c3e8[_0x6614('0x4f')]['id']},'attributes':['id',_0x6614('0x5c'),_0x6614('0x5d')]})[_0x6614('0x2a')](handleEntityNotFound(_0x4d49ea,null))[_0x6614('0x2a')](function(_0x5c70be){if(_0x5c70be){_0x1dfe26=_0x5c70be['remoteUri'];var _0x2f3544=_0x1dfe26[_0x6614('0x5e')](-0x1);if(_0x2f3544==='/'){_0x1dfe26=_0x1dfe26['substring'](0x0,_0x1dfe26['lastIndexOf'](_0x2f3544));}return rp({'method':_0x6614('0x5f'),'uri':util['format'](_0x6614('0x60'),_0x1dfe26,_0x6614('0x61')),'headers':{'Authorization':util[_0x6614('0x62')](_0x6614('0x63'),new Buffer(util[_0x6614('0x62')](_0x6614('0x64'),_0x5c70be[_0x6614('0x5d')]))[_0x6614('0x65')]('base64'))},'json':!![]});}})[_0x6614('0x2a')](function(_0x30b168){if(_0x30b168){var _0x1fa300=[_0x6614('0x66'),'subject',_0x6614('0x67'),_0x6614('0x68'),_0x6614('0x1d'),_0x6614('0x69'),_0x6614('0x6a'),'source',_0x6614('0x6b'),_0x6614('0x6a'),_0x6614('0x6c')];_[_0x6614('0x6d')](_0x30b168,function(_0x35db05){return _0x1fa300['includes'](_0x35db05[_0x6614('0x2d')])||!_0x35db05[_0x6614('0x6e')]&&_0x35db05[_0x6614('0x34')]!==_0x6614('0x6f')&&_0x35db05[_0x6614('0x34')]!==_0x6614('0x70');});return{'count':_0x30b168[_0x6614('0x3c')],'rows':_['map'](_0x30b168,function(_0x4f109c){return{'id':_0x4f109c[_0x6614('0x2d')],'name':_0x4f109c[_0x6614('0x71')],'custom':!_0x4f109c[_0x6614('0x6e')],'options':_0x4f109c['choices']?_[_0x6614('0x30')](_0x4f109c[_0x6614('0x72')],function(_0x4e0611){return{'name':_[_0x6614('0x73')](_0x4e0611),'value':_0x4e0611};}):[]};})};}})[_0x6614('0x2a')](respondWithResult(_0x4d49ea,null))['catch'](function(_0x880010){var _0x457fd6=_0x33c3e8[_0x6614('0x37')][_0x6614('0x74')]?0x1f4:_0x880010[_0x6614('0x75')]||0x1f4;logger['error'](_0x6614('0x76'),_0x6614('0x5b'),_0x457fd6,JSON[_0x6614('0x77')](_0x880010));delete _0x880010[_0x6614('0x2d')];if(_0x457fd6===0x191){_0x457fd6=0x190;}_0x4d49ea[_0x6614('0x1d')](_0x457fd6)['send'](_0x33c3e8[_0x6614('0x37')]['test']?{'message':_0x6614('0x78'),'statusCode':_0x880010['statusCode']}:_0x880010);});};