Built motion from commit 449495f6.|2.6.27
[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 _0xe13e=['statusCode','Wrong\x20credentials','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','include','findAll','catch','params','includeAll','merge','find','create','body','update','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','format','%s/%s','api/v2/ticket_fields','base64','requester','subject','agent','priority','group','ticket_type','company','remove','includes','default','custom_dropdown','label','choices','test'];(function(_0x3cdf50,_0x3e8eb2){var _0x22d47a=function(_0xdc5336){while(--_0xdc5336){_0x3cdf50['push'](_0x3cdf50['shift']());}};_0x22d47a(++_0x3e8eb2);}(_0xe13e,0xde));var _0xee13=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe13e[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xee13('0x0'));var jsonpatch=require(_0xee13('0x1'));var rp=require(_0xee13('0x2'));var moment=require(_0xee13('0x3'));var BPromise=require(_0xee13('0x4'));var Mustache=require(_0xee13('0x5'));var util=require(_0xee13('0x6'));var path=require(_0xee13('0x7'));var sox=require(_0xee13('0x8'));var csv=require(_0xee13('0x9'));var ejs=require(_0xee13('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xee13('0xb'));var squel=require(_0xee13('0xc'));var crypto=require(_0xee13('0xd'));var jsforce=require(_0xee13('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xee13('0x9'));var querystring=require(_0xee13('0xf'));var Papa=require(_0xee13('0x10'));var Redis=require(_0xee13('0x11'));var authService=require(_0xee13('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xee13('0x13'));var hardwareService=require(_0xee13('0x14'));var logger=require('../../config/logger')(_0xee13('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xee13('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3060d8,_0x43f002){_0x43f002=_0x43f002||0xcc;return function(_0x1bbc15){if(_0x1bbc15){return _0x3060d8[_0xee13('0x17')](_0x43f002);}return _0x3060d8[_0xee13('0x18')](_0x43f002)[_0xee13('0x19')]();};}function respondWithResult(_0x2f7cd3,_0x50fd97){_0x50fd97=_0x50fd97||0xc8;return function(_0x383ca0){if(_0x383ca0){return _0x2f7cd3[_0xee13('0x18')](_0x50fd97)[_0xee13('0x1a')](_0x383ca0);}};}function respondWithFilteredResult(_0x53e5a5,_0x38eb56){return function(_0x6de406){if(_0x6de406){var _0x4cc57c=typeof _0x38eb56[_0xee13('0x1b')]===_0xee13('0x1c')&&typeof _0x38eb56[_0xee13('0x1d')]===_0xee13('0x1c');var _0x2513b2=_0x6de406[_0xee13('0x1e')];var _0xd353d0=_0x4cc57c?0x0:_0x38eb56[_0xee13('0x1b')];var _0x3806b0=_0x4cc57c?_0x6de406[_0xee13('0x1e')]:_0x38eb56['offset']+_0x38eb56[_0xee13('0x1d')];var _0x1ab3f8;if(_0x3806b0>=_0x2513b2){_0x3806b0=_0x2513b2;_0x1ab3f8=0xc8;}else{_0x1ab3f8=0xce;}_0x53e5a5['status'](_0x1ab3f8);return _0x53e5a5[_0xee13('0x1f')]('Content-Range',_0xd353d0+'-'+_0x3806b0+'/'+_0x2513b2)[_0xee13('0x1a')](_0x6de406);}return null;};}function patchUpdates(_0x4a49c0){return function(_0x364769){try{jsonpatch[_0xee13('0x20')](_0x364769,_0x4a49c0,!![]);}catch(_0x51e2d0){return BPromise[_0xee13('0x21')](_0x51e2d0);}return _0x364769[_0xee13('0x22')]();};}function saveUpdates(_0x3f9dfd,_0x3231b0){return function(_0x3d5354){if(_0x3d5354){return _0x3d5354['update'](_0x3f9dfd)[_0xee13('0x23')](function(_0x46bd44){return _0x46bd44;});}return null;};}function removeEntity(_0x4c705c,_0x255ff2){return function(_0x4fe9b8){if(_0x4fe9b8){return _0x4fe9b8[_0xee13('0x24')]()['then'](function(){_0x4c705c['status'](0xcc)[_0xee13('0x19')]();});}};}function handleEntityNotFound(_0x323e1e,_0x49eddd){return function(_0x2b5f64){if(!_0x2b5f64){_0x323e1e[_0xee13('0x17')](0x194);}return _0x2b5f64;};}function handleError(_0x19096f,_0x48b604){_0x48b604=_0x48b604||0x1f4;return function(_0x4aec7a){logger[_0xee13('0x25')](_0x4aec7a[_0xee13('0x26')]);if(_0x4aec7a[_0xee13('0x27')]){delete _0x4aec7a[_0xee13('0x27')];}_0x19096f[_0xee13('0x18')](_0x48b604)[_0xee13('0x28')](_0x4aec7a);};}exports[_0xee13('0x29')]=function(_0x29ddad,_0x28d237){var _0x458e12={},_0x3aeaac={},_0x37f57d={'count':0x0,'rows':[]};var _0x352c4a=_[_0xee13('0x2a')](db[_0xee13('0x2b')][_0xee13('0x2c')],function(_0x4bc1f6){return{'name':_0x4bc1f6['fieldName'],'type':_0x4bc1f6[_0xee13('0x2d')][_0xee13('0x2e')]};});_0x3aeaac[_0xee13('0x2f')]=_[_0xee13('0x2a')](_0x352c4a,'name');_0x3aeaac[_0xee13('0x30')]=_[_0xee13('0x31')](_0x29ddad[_0xee13('0x30')]);_0x3aeaac[_0xee13('0x32')]=_[_0xee13('0x33')](_0x3aeaac[_0xee13('0x2f')],_0x3aeaac[_0xee13('0x30')]);_0x458e12[_0xee13('0x34')]=_[_0xee13('0x33')](_0x3aeaac['model'],qs[_0xee13('0x35')](_0x29ddad['query']['fields']));_0x458e12[_0xee13('0x34')]=_0x458e12['attributes'][_0xee13('0x36')]?_0x458e12['attributes']:_0x3aeaac[_0xee13('0x2f')];if(!_0x29ddad[_0xee13('0x30')][_0xee13('0x37')](_0xee13('0x38'))){_0x458e12[_0xee13('0x1d')]=qs[_0xee13('0x1d')](_0x29ddad[_0xee13('0x30')][_0xee13('0x1d')]);_0x458e12[_0xee13('0x1b')]=qs['offset'](_0x29ddad[_0xee13('0x30')][_0xee13('0x1b')]);}_0x458e12[_0xee13('0x39')]=qs['sort'](_0x29ddad[_0xee13('0x30')][_0xee13('0x3a')]);_0x458e12[_0xee13('0x3b')]=qs[_0xee13('0x32')](_[_0xee13('0x3c')](_0x29ddad[_0xee13('0x30')],_0x3aeaac['filters']),_0x352c4a);if(_0x29ddad[_0xee13('0x30')][_0xee13('0x3d')]){_0x458e12[_0xee13('0x3b')]=_['merge'](_0x458e12[_0xee13('0x3b')],{'$or':_[_0xee13('0x2a')](_0x352c4a,function(_0x54e788){if(_0x54e788[_0xee13('0x2d')]!==_0xee13('0x3e')){var _0x2da61b={};_0x2da61b[_0x54e788[_0xee13('0x27')]]={'$like':'%'+_0x29ddad[_0xee13('0x30')]['filter']+'%'};return _0x2da61b;}})});}_0x458e12=_['merge']({},_0x458e12,_0x29ddad[_0xee13('0x3f')]);var _0x28869e={'where':_0x458e12[_0xee13('0x3b')]};return db[_0xee13('0x2b')][_0xee13('0x1e')](_0x28869e)[_0xee13('0x23')](function(_0x3f5cca){_0x37f57d[_0xee13('0x1e')]=_0x3f5cca;if(_0x29ddad[_0xee13('0x30')]['includeAll']){_0x458e12[_0xee13('0x40')]=[{'all':!![]}];}return db[_0xee13('0x2b')][_0xee13('0x41')](_0x458e12);})[_0xee13('0x23')](function(_0x51ed87){_0x37f57d['rows']=_0x51ed87;return _0x37f57d;})['then'](respondWithFilteredResult(_0x28d237,_0x458e12))[_0xee13('0x42')](handleError(_0x28d237,null));};exports['show']=function(_0x4b5288,_0x16d84a){var _0x4a7ce6={'raw':![],'where':{'id':_0x4b5288[_0xee13('0x43')]['id']}},_0x37cc44={};_0x37cc44[_0xee13('0x2f')]=_['keys'](db[_0xee13('0x2b')][_0xee13('0x2c')]);_0x37cc44['query']=_['keys'](_0x4b5288['query']);_0x37cc44[_0xee13('0x32')]=_['intersection'](_0x37cc44[_0xee13('0x2f')],_0x37cc44[_0xee13('0x30')]);_0x4a7ce6[_0xee13('0x34')]=_[_0xee13('0x33')](_0x37cc44[_0xee13('0x2f')],qs[_0xee13('0x35')](_0x4b5288[_0xee13('0x30')][_0xee13('0x35')]));_0x4a7ce6[_0xee13('0x34')]=_0x4a7ce6[_0xee13('0x34')][_0xee13('0x36')]?_0x4a7ce6[_0xee13('0x34')]:_0x37cc44[_0xee13('0x2f')];if(_0x4b5288[_0xee13('0x30')][_0xee13('0x44')]){_0x4a7ce6[_0xee13('0x40')]=[{'all':!![]}];}_0x4a7ce6=_[_0xee13('0x45')]({},_0x4a7ce6,_0x4b5288[_0xee13('0x3f')]);return db[_0xee13('0x2b')][_0xee13('0x46')](_0x4a7ce6)[_0xee13('0x23')](handleEntityNotFound(_0x16d84a,null))[_0xee13('0x23')](respondWithResult(_0x16d84a,null))[_0xee13('0x42')](handleError(_0x16d84a,null));};exports[_0xee13('0x47')]=function(_0x33676c,_0x313c74){return db['FreshdeskAccount'][_0xee13('0x47')](_0x33676c[_0xee13('0x48')],{})[_0xee13('0x23')](respondWithResult(_0x313c74,0xc9))[_0xee13('0x42')](handleError(_0x313c74,null));};exports[_0xee13('0x49')]=function(_0x587642,_0x599343){if(_0x587642['body']['id']){delete _0x587642[_0xee13('0x48')]['id'];}return db[_0xee13('0x2b')][_0xee13('0x46')]({'where':{'id':_0x587642[_0xee13('0x43')]['id']}})[_0xee13('0x23')](handleEntityNotFound(_0x599343,null))[_0xee13('0x23')](saveUpdates(_0x587642[_0xee13('0x48')],null))['then'](respondWithResult(_0x599343,null))[_0xee13('0x42')](handleError(_0x599343,null));};exports[_0xee13('0x24')]=function(_0x225eda,_0x2d0a07){return db['FreshdeskAccount'][_0xee13('0x46')]({'where':{'id':_0x225eda[_0xee13('0x43')]['id']}})['then'](handleEntityNotFound(_0x2d0a07,null))['then'](removeEntity(_0x2d0a07,null))[_0xee13('0x42')](handleError(_0x2d0a07,null));};exports[_0xee13('0x4a')]=function(_0x37fe13,_0xb1c8d,_0x1d6157){var _0x43d530={};var _0x39bbf1={};var _0x17a8ec;var _0x4b3ea2;return db[_0xee13('0x2b')][_0xee13('0x4b')]({'where':{'id':_0x37fe13[_0xee13('0x43')]['id']}})[_0xee13('0x23')](handleEntityNotFound(_0xb1c8d,null))['then'](function(_0x2d8889){if(_0x2d8889){_0x17a8ec=_0x2d8889;_0x39bbf1['model']=_['keys'](db[_0xee13('0x4c')]['rawAttributes']);_0x39bbf1[_0xee13('0x30')]=_[_0xee13('0x31')](_0x37fe13[_0xee13('0x30')]);_0x39bbf1[_0xee13('0x32')]=_[_0xee13('0x33')](_0x39bbf1['model'],_0x39bbf1[_0xee13('0x30')]);_0x43d530['attributes']=_[_0xee13('0x33')](_0x39bbf1[_0xee13('0x2f')],qs[_0xee13('0x35')](_0x37fe13[_0xee13('0x30')][_0xee13('0x35')]));_0x43d530[_0xee13('0x34')]=_0x43d530[_0xee13('0x34')][_0xee13('0x36')]?_0x43d530['attributes']:_0x39bbf1[_0xee13('0x2f')];_0x43d530[_0xee13('0x39')]=qs['sort'](_0x37fe13[_0xee13('0x30')][_0xee13('0x3a')]);_0x43d530[_0xee13('0x3b')]=qs[_0xee13('0x32')](_['pick'](_0x37fe13[_0xee13('0x30')],_0x39bbf1[_0xee13('0x32')]));if(_0x37fe13[_0xee13('0x30')][_0xee13('0x3d')]){_0x43d530[_0xee13('0x3b')]=_[_0xee13('0x45')](_0x43d530['where'],{'$or':_[_0xee13('0x2a')](_0x43d530['attributes'],function(_0x3409ba){var _0x23ba4b={};_0x23ba4b[_0x3409ba]={'$like':'%'+_0x37fe13['query'][_0xee13('0x3d')]+'%'};return _0x23ba4b;})});}_0x43d530=_[_0xee13('0x45')]({},_0x43d530,_0x37fe13[_0xee13('0x3f')]);return _0x17a8ec['getConfigurations'](_0x43d530);}})[_0xee13('0x23')](function(_0x4ee2e1){if(_0x4ee2e1){_0x4b3ea2=_0x4ee2e1[_0xee13('0x36')];if(!_0x37fe13['query'][_0xee13('0x37')](_0xee13('0x38'))){_0x43d530[_0xee13('0x1d')]=qs[_0xee13('0x1d')](_0x37fe13[_0xee13('0x30')]['limit']);_0x43d530[_0xee13('0x1b')]=qs['offset'](_0x37fe13[_0xee13('0x30')][_0xee13('0x1b')]);}return _0x17a8ec[_0xee13('0x4a')](_0x43d530);}})['then'](function(_0x57e4c8){if(_0x57e4c8){return _0x57e4c8?{'count':_0x4b3ea2,'rows':_0x57e4c8}:null;}})[_0xee13('0x23')](respondWithResult(_0xb1c8d,null))[_0xee13('0x42')](handleError(_0xb1c8d,null));};exports[_0xee13('0x4d')]=function(_0x33eeb1,_0x3453c2,_0x567ab3){if(_0x33eeb1[_0xee13('0x48')]['id']){delete _0x33eeb1['body']['id'];}return db[_0xee13('0x2b')][_0xee13('0x4b')]({'where':{'id':_0x33eeb1[_0xee13('0x43')]['id']}})[_0xee13('0x23')](handleEntityNotFound(_0x3453c2,null))[_0xee13('0x23')](function(_0x25ef35){if(_0x25ef35){_0x33eeb1[_0xee13('0x48')][_0xee13('0x4e')]=_0x25ef35['id'];_0x33eeb1[_0xee13('0x48')][_0xee13('0x4f')]=integrations['getSubjects'](_0x33eeb1[_0xee13('0x48')][_0xee13('0x50')],_0x33eeb1[_0xee13('0x48')][_0xee13('0x2d')]);_0x33eeb1['body'][_0xee13('0x51')]=integrations[_0xee13('0x52')](_0x33eeb1['body']['channel'],_0x33eeb1[_0xee13('0x48')]['type']);return db[_0xee13('0x4c')][_0xee13('0x47')](_0x33eeb1[_0xee13('0x48')],{'include':[{'model':db['FreshdeskField'],'as':'Subjects'},{'model':db[_0xee13('0x53')],'as':_0xee13('0x51')}]});}return null;})[_0xee13('0x23')](respondWithResult(_0x3453c2,null))[_0xee13('0x42')](handleError(_0x3453c2,null));};exports[_0xee13('0x54')]=function(_0x5d0906,_0x16bc95,_0x3f208a){var _0x2cdb7c='';return db[_0xee13('0x2b')][_0xee13('0x4b')]({'where':{'id':_0x5d0906[_0xee13('0x43')]['id']},'attributes':['id',_0xee13('0x55'),_0xee13('0x56')]})[_0xee13('0x23')](handleEntityNotFound(_0x16bc95,null))[_0xee13('0x23')](function(_0x30ae31){if(_0x30ae31){_0x2cdb7c=_0x30ae31['remoteUri'];var _0x576d3c=_0x2cdb7c[_0xee13('0x57')](-0x1);if(_0x576d3c==='/'){_0x2cdb7c=_0x2cdb7c[_0xee13('0x58')](0x0,_0x2cdb7c[_0xee13('0x59')](_0x576d3c));}return rp({'method':'GET','uri':util[_0xee13('0x5a')](_0xee13('0x5b'),_0x2cdb7c,_0xee13('0x5c')),'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0xee13('0x5a')]('%s:X',_0x30ae31[_0xee13('0x56')]))['toString'](_0xee13('0x5d')))},'json':!![]});}})[_0xee13('0x23')](function(_0x534a43){if(_0x534a43){var _0x3dd4c9=[_0xee13('0x5e'),_0xee13('0x5f'),_0xee13('0x60'),'description',_0xee13('0x18'),_0xee13('0x61'),_0xee13('0x62'),'source',_0xee13('0x63'),_0xee13('0x62'),_0xee13('0x64')];_[_0xee13('0x65')](_0x534a43,function(_0x2420d2){return _0x3dd4c9[_0xee13('0x66')](_0x2420d2[_0xee13('0x27')])||!_0x2420d2[_0xee13('0x67')]&&_0x2420d2[_0xee13('0x2d')]!=='custom_text'&&_0x2420d2[_0xee13('0x2d')]!==_0xee13('0x68');});return{'count':_0x534a43[_0xee13('0x36')],'rows':_[_0xee13('0x2a')](_0x534a43,function(_0x5f0200){return{'id':_0x5f0200[_0xee13('0x27')],'name':_0x5f0200[_0xee13('0x69')],'custom':!_0x5f0200[_0xee13('0x67')],'options':_0x5f0200[_0xee13('0x6a')]?_[_0xee13('0x2a')](_0x5f0200['choices'],function(_0x1060e3){return{'name':_['capitalize'](_0x1060e3),'value':_0x1060e3};}):[]};})};}})[_0xee13('0x23')](respondWithResult(_0x16bc95,null))[_0xee13('0x42')](function(_0x828108){var _0x1d7b0e=_0x5d0906['query'][_0xee13('0x6b')]?0x1f4:_0x828108[_0xee13('0x6c')]||0x1f4;logger[_0xee13('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0xee13('0x54'),_0x1d7b0e,JSON['stringify'](_0x828108));delete _0x828108[_0xee13('0x27')];if(_0x1d7b0e===0x191){_0x1d7b0e=0x190;}_0x16bc95[_0xee13('0x18')](_0x1d7b0e)[_0xee13('0x28')](_0x5d0906[_0xee13('0x30')][_0xee13('0x6b')]?{'message':_0xee13('0x6d'),'statusCode':_0x828108[_0xee13('0x6c')]}:_0x828108);});};