8c906e76b88bdaae4b2ca9d4766c41553974a07f
[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 _0x4a3c=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','FreshdeskAccount','rawAttributes','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','FreshdeskConfiguration','addConfiguration','findOne','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','slice','GET','format','%s/%s','apiKey','toString','base64','requester','agent','description','priority','group','source','ticket_type','company','remove','includes','default','custom_dropdown','label','choices','statusCode','stringify','test','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','jsforce','querystring'];(function(_0x1cf5ad,_0x5c11bb){var _0x5b7d0b=function(_0x14f716){while(--_0x14f716){_0x1cf5ad['push'](_0x1cf5ad['shift']());}};_0x5b7d0b(++_0x5c11bb);}(_0x4a3c,0x13c));var _0xc4a3=function(_0x568303,_0x364b06){_0x568303=_0x568303-0x0;var _0x5903cd=_0x4a3c[_0x568303];return _0x5903cd;};'use strict';var emlformat=require(_0xc4a3('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc4a3('0x1'));var jsonpatch=require(_0xc4a3('0x2'));var rp=require(_0xc4a3('0x3'));var moment=require(_0xc4a3('0x4'));var BPromise=require(_0xc4a3('0x5'));var Mustache=require(_0xc4a3('0x6'));var util=require(_0xc4a3('0x7'));var path=require('path');var sox=require(_0xc4a3('0x8'));var csv=require(_0xc4a3('0x9'));var ejs=require(_0xc4a3('0xa'));var fs=require('fs');var fs_extra=require(_0xc4a3('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xc4a3('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc4a3('0x9'));var querystring=require(_0xc4a3('0xd'));var Papa=require(_0xc4a3('0xe'));var Redis=require(_0xc4a3('0xf'));var authService=require(_0xc4a3('0x10'));var qs=require(_0xc4a3('0x11'));var as=require(_0xc4a3('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xc4a3('0x13'));function respondWithStatusCode(_0x15e13f,_0x27a41f){_0x27a41f=_0x27a41f||0xcc;return function(_0x1e41d6){if(_0x1e41d6){return _0x15e13f['sendStatus'](_0x27a41f);}return _0x15e13f[_0xc4a3('0x14')](_0x27a41f)[_0xc4a3('0x15')]();};}function respondWithResult(_0x54f14b,_0x466e1f){_0x466e1f=_0x466e1f||0xc8;return function(_0x434188){if(_0x434188){return _0x54f14b[_0xc4a3('0x14')](_0x466e1f)[_0xc4a3('0x16')](_0x434188);}};}function respondWithFilteredResult(_0x747bfb,_0x31c331){return function(_0x2b2db2){if(_0x2b2db2){var _0x262a54=typeof _0x31c331[_0xc4a3('0x17')]==='undefined'&&typeof _0x31c331[_0xc4a3('0x18')]===_0xc4a3('0x19');var _0x3c70d6=_0x2b2db2[_0xc4a3('0x1a')];var _0x57e6ed=_0x262a54?0x0:_0x31c331[_0xc4a3('0x17')];var _0x245896=_0x262a54?_0x2b2db2[_0xc4a3('0x1a')]:_0x31c331['offset']+_0x31c331[_0xc4a3('0x18')];var _0x141720;if(_0x245896>=_0x3c70d6){_0x245896=_0x3c70d6;_0x141720=0xc8;}else{_0x141720=0xce;}_0x747bfb[_0xc4a3('0x14')](_0x141720);return _0x747bfb[_0xc4a3('0x1b')](_0xc4a3('0x1c'),_0x57e6ed+'-'+_0x245896+'/'+_0x3c70d6)[_0xc4a3('0x16')](_0x2b2db2);}return null;};}function patchUpdates(_0x30cdf5){return function(_0x5654ed){try{jsonpatch[_0xc4a3('0x1d')](_0x5654ed,_0x30cdf5,!![]);}catch(_0x1799bf){return BPromise[_0xc4a3('0x1e')](_0x1799bf);}return _0x5654ed[_0xc4a3('0x1f')]();};}function saveUpdates(_0x525191,_0x3691b3){return function(_0x5dd62b){if(_0x5dd62b){return _0x5dd62b[_0xc4a3('0x20')](_0x525191)[_0xc4a3('0x21')](function(_0x195bb3){return _0x195bb3;});}return null;};}function removeEntity(_0x3a3f7e,_0x1ca707){return function(_0x353ce1){if(_0x353ce1){return _0x353ce1[_0xc4a3('0x22')]()['then'](function(){_0x3a3f7e[_0xc4a3('0x14')](0xcc)[_0xc4a3('0x15')]();});}};}function handleEntityNotFound(_0x446a24,_0x3d659b){return function(_0x168901){if(!_0x168901){_0x446a24[_0xc4a3('0x23')](0x194);}return _0x168901;};}function handleError(_0xc223b0,_0x1dd70a){_0x1dd70a=_0x1dd70a||0x1f4;return function(_0x2a3679){logger[_0xc4a3('0x24')](_0x2a3679[_0xc4a3('0x25')]);if(_0x2a3679[_0xc4a3('0x26')]){delete _0x2a3679[_0xc4a3('0x26')];}_0xc223b0[_0xc4a3('0x14')](_0x1dd70a)[_0xc4a3('0x27')](_0x2a3679);};}exports[_0xc4a3('0x28')]=function(_0x58d302,_0x1ad1b7){var _0x56bdd3={},_0x23e411={},_0x17d3fc={'count':0x0,'rows':[]};var _0x12a609=_['map'](db[_0xc4a3('0x29')][_0xc4a3('0x2a')],function(_0x3b4367){return{'name':_0x3b4367[_0xc4a3('0x2b')],'type':_0x3b4367['type']['key']};});_0x23e411[_0xc4a3('0x2c')]=_[_0xc4a3('0x2d')](_0x12a609,'name');_0x23e411[_0xc4a3('0x2e')]=_[_0xc4a3('0x2f')](_0x58d302['query']);_0x23e411[_0xc4a3('0x30')]=_[_0xc4a3('0x31')](_0x23e411[_0xc4a3('0x2c')],_0x23e411[_0xc4a3('0x2e')]);_0x56bdd3[_0xc4a3('0x32')]=_[_0xc4a3('0x31')](_0x23e411[_0xc4a3('0x2c')],qs['fields'](_0x58d302[_0xc4a3('0x2e')][_0xc4a3('0x33')]));_0x56bdd3[_0xc4a3('0x32')]=_0x56bdd3[_0xc4a3('0x32')][_0xc4a3('0x34')]?_0x56bdd3['attributes']:_0x23e411[_0xc4a3('0x2c')];if(!_0x58d302[_0xc4a3('0x2e')][_0xc4a3('0x35')](_0xc4a3('0x36'))){_0x56bdd3[_0xc4a3('0x18')]=qs[_0xc4a3('0x18')](_0x58d302[_0xc4a3('0x2e')]['limit']);_0x56bdd3[_0xc4a3('0x17')]=qs[_0xc4a3('0x17')](_0x58d302[_0xc4a3('0x2e')][_0xc4a3('0x17')]);}_0x56bdd3[_0xc4a3('0x37')]=qs['sort'](_0x58d302[_0xc4a3('0x2e')][_0xc4a3('0x38')]);_0x56bdd3[_0xc4a3('0x39')]=qs['filters'](_[_0xc4a3('0x3a')](_0x58d302['query'],_0x23e411[_0xc4a3('0x30')]),_0x12a609);if(_0x58d302[_0xc4a3('0x2e')][_0xc4a3('0x3b')]){_0x56bdd3['where']=_[_0xc4a3('0x3c')](_0x56bdd3[_0xc4a3('0x39')],{'$or':_['map'](_0x12a609,function(_0x1607b6){if(_0x1607b6[_0xc4a3('0x3d')]!==_0xc4a3('0x3e')){var _0x2f7ec9={};_0x2f7ec9[_0x1607b6[_0xc4a3('0x26')]]={'$like':'%'+_0x58d302[_0xc4a3('0x2e')]['filter']+'%'};return _0x2f7ec9;}})});}_0x56bdd3=_[_0xc4a3('0x3c')]({},_0x56bdd3,_0x58d302[_0xc4a3('0x3f')]);var _0x4835e4={'where':_0x56bdd3[_0xc4a3('0x39')]};return db[_0xc4a3('0x29')]['count'](_0x4835e4)[_0xc4a3('0x21')](function(_0x5d447f){_0x17d3fc[_0xc4a3('0x1a')]=_0x5d447f;if(_0x58d302['query'][_0xc4a3('0x40')]){_0x56bdd3[_0xc4a3('0x41')]=[{'all':!![]}];}return db['FreshdeskAccount'][_0xc4a3('0x42')](_0x56bdd3);})[_0xc4a3('0x21')](function(_0xcb4296){_0x17d3fc[_0xc4a3('0x43')]=_0xcb4296;return _0x17d3fc;})[_0xc4a3('0x21')](respondWithFilteredResult(_0x1ad1b7,_0x56bdd3))[_0xc4a3('0x44')](handleError(_0x1ad1b7,null));};exports[_0xc4a3('0x45')]=function(_0x2d6fae,_0x5a1438){var _0x3e7693={'raw':![],'where':{'id':_0x2d6fae[_0xc4a3('0x46')]['id']}},_0x1c07bd={};_0x1c07bd[_0xc4a3('0x2c')]=_['keys'](db[_0xc4a3('0x29')][_0xc4a3('0x2a')]);_0x1c07bd[_0xc4a3('0x2e')]=_[_0xc4a3('0x2f')](_0x2d6fae['query']);_0x1c07bd['filters']=_[_0xc4a3('0x31')](_0x1c07bd[_0xc4a3('0x2c')],_0x1c07bd['query']);_0x3e7693[_0xc4a3('0x32')]=_[_0xc4a3('0x31')](_0x1c07bd[_0xc4a3('0x2c')],qs[_0xc4a3('0x33')](_0x2d6fae[_0xc4a3('0x2e')][_0xc4a3('0x33')]));_0x3e7693[_0xc4a3('0x32')]=_0x3e7693[_0xc4a3('0x32')]['length']?_0x3e7693['attributes']:_0x1c07bd[_0xc4a3('0x2c')];if(_0x2d6fae[_0xc4a3('0x2e')]['includeAll']){_0x3e7693[_0xc4a3('0x41')]=[{'all':!![]}];}_0x3e7693=_[_0xc4a3('0x3c')]({},_0x3e7693,_0x2d6fae[_0xc4a3('0x3f')]);return db[_0xc4a3('0x29')][_0xc4a3('0x47')](_0x3e7693)['then'](handleEntityNotFound(_0x5a1438,null))[_0xc4a3('0x21')](respondWithResult(_0x5a1438,null))['catch'](handleError(_0x5a1438,null));};exports[_0xc4a3('0x48')]=function(_0x20e0c1,_0x1b3bd4){return db['FreshdeskAccount'][_0xc4a3('0x48')](_0x20e0c1[_0xc4a3('0x49')],{})[_0xc4a3('0x21')](respondWithResult(_0x1b3bd4,0xc9))[_0xc4a3('0x44')](handleError(_0x1b3bd4,null));};exports[_0xc4a3('0x20')]=function(_0xb3d32d,_0xc586b5){if(_0xb3d32d[_0xc4a3('0x49')]['id']){delete _0xb3d32d[_0xc4a3('0x49')]['id'];}return db[_0xc4a3('0x29')]['find']({'where':{'id':_0xb3d32d[_0xc4a3('0x46')]['id']}})[_0xc4a3('0x21')](handleEntityNotFound(_0xc586b5,null))['then'](saveUpdates(_0xb3d32d[_0xc4a3('0x49')],null))[_0xc4a3('0x21')](respondWithResult(_0xc586b5,null))[_0xc4a3('0x44')](handleError(_0xc586b5,null));};exports[_0xc4a3('0x22')]=function(_0x9a397e,_0xfa0abf){return db[_0xc4a3('0x29')][_0xc4a3('0x47')]({'where':{'id':_0x9a397e[_0xc4a3('0x46')]['id']}})[_0xc4a3('0x21')](handleEntityNotFound(_0xfa0abf,null))['then'](removeEntity(_0xfa0abf,null))[_0xc4a3('0x44')](handleError(_0xfa0abf,null));};exports[_0xc4a3('0x4a')]=function(_0x580880,_0x4b15f1,_0x5eccda){var _0x41d289={};var _0x59b7e6={};var _0x53c99d;var _0x117f70;return db[_0xc4a3('0x29')]['findOne']({'where':{'id':_0x580880[_0xc4a3('0x46')]['id']}})[_0xc4a3('0x21')](handleEntityNotFound(_0x4b15f1,null))['then'](function(_0x599272){if(_0x599272){_0x53c99d=_0x599272;_0x59b7e6[_0xc4a3('0x2c')]=_['keys'](db[_0xc4a3('0x4b')][_0xc4a3('0x2a')]);_0x59b7e6[_0xc4a3('0x2e')]=_[_0xc4a3('0x2f')](_0x580880[_0xc4a3('0x2e')]);_0x59b7e6[_0xc4a3('0x30')]=_[_0xc4a3('0x31')](_0x59b7e6[_0xc4a3('0x2c')],_0x59b7e6['query']);_0x41d289[_0xc4a3('0x32')]=_[_0xc4a3('0x31')](_0x59b7e6[_0xc4a3('0x2c')],qs[_0xc4a3('0x33')](_0x580880[_0xc4a3('0x2e')][_0xc4a3('0x33')]));_0x41d289[_0xc4a3('0x32')]=_0x41d289[_0xc4a3('0x32')][_0xc4a3('0x34')]?_0x41d289[_0xc4a3('0x32')]:_0x59b7e6['model'];_0x41d289[_0xc4a3('0x37')]=qs['sort'](_0x580880['query'][_0xc4a3('0x38')]);_0x41d289[_0xc4a3('0x39')]=qs['filters'](_['pick'](_0x580880[_0xc4a3('0x2e')],_0x59b7e6[_0xc4a3('0x30')]));if(_0x580880[_0xc4a3('0x2e')][_0xc4a3('0x3b')]){_0x41d289[_0xc4a3('0x39')]=_[_0xc4a3('0x3c')](_0x41d289[_0xc4a3('0x39')],{'$or':_['map'](_0x41d289[_0xc4a3('0x32')],function(_0x4954f0){var _0x174323={};_0x174323[_0x4954f0]={'$like':'%'+_0x580880[_0xc4a3('0x2e')][_0xc4a3('0x3b')]+'%'};return _0x174323;})});}_0x41d289=_[_0xc4a3('0x3c')]({},_0x41d289,_0x580880[_0xc4a3('0x3f')]);return _0x53c99d[_0xc4a3('0x4a')](_0x41d289);}})[_0xc4a3('0x21')](function(_0x33b9a9){if(_0x33b9a9){_0x117f70=_0x33b9a9[_0xc4a3('0x34')];if(!_0x580880[_0xc4a3('0x2e')]['hasOwnProperty'](_0xc4a3('0x36'))){_0x41d289[_0xc4a3('0x18')]=qs[_0xc4a3('0x18')](_0x580880[_0xc4a3('0x2e')][_0xc4a3('0x18')]);_0x41d289[_0xc4a3('0x17')]=qs[_0xc4a3('0x17')](_0x580880[_0xc4a3('0x2e')][_0xc4a3('0x17')]);}return _0x53c99d['getConfigurations'](_0x41d289);}})['then'](function(_0x3d0c7a){if(_0x3d0c7a){return _0x3d0c7a?{'count':_0x117f70,'rows':_0x3d0c7a}:null;}})[_0xc4a3('0x21')](respondWithResult(_0x4b15f1,null))[_0xc4a3('0x44')](handleError(_0x4b15f1,null));};exports[_0xc4a3('0x4c')]=function(_0x4f7de6,_0x16c269,_0x2f8c68){if(_0x4f7de6[_0xc4a3('0x49')]['id']){delete _0x4f7de6[_0xc4a3('0x49')]['id'];}return db[_0xc4a3('0x29')][_0xc4a3('0x4d')]({'where':{'id':_0x4f7de6[_0xc4a3('0x46')]['id']}})['then'](handleEntityNotFound(_0x16c269,null))[_0xc4a3('0x21')](function(_0x5b75ff){if(_0x5b75ff){_0x4f7de6[_0xc4a3('0x49')]['AccountId']=_0x5b75ff['id'];_0x4f7de6[_0xc4a3('0x49')][_0xc4a3('0x4e')]=integrations[_0xc4a3('0x4f')](_0x4f7de6[_0xc4a3('0x49')][_0xc4a3('0x50')],_0x4f7de6[_0xc4a3('0x49')]['type']);_0x4f7de6[_0xc4a3('0x49')][_0xc4a3('0x51')]=integrations[_0xc4a3('0x52')](_0x4f7de6[_0xc4a3('0x49')][_0xc4a3('0x50')],_0x4f7de6['body'][_0xc4a3('0x3d')]);return db[_0xc4a3('0x4b')][_0xc4a3('0x48')](_0x4f7de6[_0xc4a3('0x49')],{'include':[{'model':db[_0xc4a3('0x53')],'as':_0xc4a3('0x4e')},{'model':db[_0xc4a3('0x53')],'as':_0xc4a3('0x51')}]});}return null;})[_0xc4a3('0x21')](respondWithResult(_0x16c269,null))[_0xc4a3('0x44')](handleError(_0x16c269,null));};exports[_0xc4a3('0x54')]=function(_0x11b2ef,_0x421086,_0xbc74f5){var _0x49bfe7='';return db[_0xc4a3('0x29')][_0xc4a3('0x4d')]({'where':{'id':_0x11b2ef[_0xc4a3('0x46')]['id']},'attributes':['id',_0xc4a3('0x55'),'apiKey']})['then'](handleEntityNotFound(_0x421086,null))[_0xc4a3('0x21')](function(_0x54be73){if(_0x54be73){_0x49bfe7=_0x54be73[_0xc4a3('0x55')];var _0x34e6bb=_0x49bfe7[_0xc4a3('0x56')](-0x1);if(_0x34e6bb==='/'){_0x49bfe7=_0x49bfe7['substring'](0x0,_0x49bfe7['lastIndexOf'](_0x34e6bb));}return rp({'method':_0xc4a3('0x57'),'uri':util[_0xc4a3('0x58')](_0xc4a3('0x59'),_0x49bfe7,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xc4a3('0x58')]('Basic\x20%s',new Buffer(util[_0xc4a3('0x58')]('%s:X',_0x54be73[_0xc4a3('0x5a')]))[_0xc4a3('0x5b')](_0xc4a3('0x5c')))},'json':!![]});}})[_0xc4a3('0x21')](function(_0x26e234){if(_0x26e234){var _0xc7df05=[_0xc4a3('0x5d'),'subject',_0xc4a3('0x5e'),_0xc4a3('0x5f'),_0xc4a3('0x14'),_0xc4a3('0x60'),_0xc4a3('0x61'),_0xc4a3('0x62'),_0xc4a3('0x63'),_0xc4a3('0x61'),_0xc4a3('0x64')];_[_0xc4a3('0x65')](_0x26e234,function(_0x368f2c){return _0xc7df05[_0xc4a3('0x66')](_0x368f2c[_0xc4a3('0x26')])||!_0x368f2c[_0xc4a3('0x67')]&&_0x368f2c[_0xc4a3('0x3d')]!=='custom_text'&&_0x368f2c[_0xc4a3('0x3d')]!==_0xc4a3('0x68');});return{'count':_0x26e234[_0xc4a3('0x34')],'rows':_[_0xc4a3('0x2d')](_0x26e234,function(_0x3bac0c){return{'id':_0x3bac0c['name'],'name':_0x3bac0c[_0xc4a3('0x69')],'custom':!_0x3bac0c[_0xc4a3('0x67')],'options':_0x3bac0c[_0xc4a3('0x6a')]?_[_0xc4a3('0x2d')](_0x3bac0c[_0xc4a3('0x6a')],function(_0x18f0b3){return{'name':_['capitalize'](_0x18f0b3),'value':_0x18f0b3};}):[]};})};}})[_0xc4a3('0x21')](respondWithResult(_0x421086,null))['catch'](function(_0x27e7d9){var _0x5d7eb0=_0x11b2ef[_0xc4a3('0x2e')]['test']?0x1f4:_0x27e7d9[_0xc4a3('0x6b')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x5d7eb0,JSON[_0xc4a3('0x6c')](_0x27e7d9));delete _0x27e7d9[_0xc4a3('0x26')];if(_0x5d7eb0===0x191){_0x5d7eb0=0x190;}_0x421086[_0xc4a3('0x14')](_0x5d7eb0)[_0xc4a3('0x27')](_0x11b2ef[_0xc4a3('0x2e')][_0xc4a3('0x6d')]?{'message':'Wrong\x20credentials','statusCode':_0x27e7d9[_0xc4a3('0x6b')]}:_0x27e7d9);});};