Built motion from commit a61a4a20.|2.5.46
[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 _0xe205=['sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','create','body','find','destroy','getConfigurations','findOne','order','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','description','group','source','remove','includes','default','custom_text','custom_dropdown','label','choices','test','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','reject','update','then','end','sendStatus','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x3e0f52,_0x3754e6){var _0xc558fd=function(_0xdebfaf){while(--_0xdebfaf){_0x3e0f52['push'](_0x3e0f52['shift']());}};_0xc558fd(++_0x3754e6);}(_0xe205,0xa7));var _0x5e20=function(_0x4ed65c,_0x17ad1c){_0x4ed65c=_0x4ed65c-0x0;var _0x7b08bc=_0xe205[_0x4ed65c];return _0x7b08bc;};'use strict';var emlformat=require(_0x5e20('0x0'));var rimraf=require(_0x5e20('0x1'));var zipdir=require(_0x5e20('0x2'));var jsonpatch=require(_0x5e20('0x3'));var rp=require(_0x5e20('0x4'));var moment=require(_0x5e20('0x5'));var BPromise=require(_0x5e20('0x6'));var Mustache=require(_0x5e20('0x7'));var util=require(_0x5e20('0x8'));var path=require('path');var sox=require(_0x5e20('0x9'));var csv=require(_0x5e20('0xa'));var ejs=require(_0x5e20('0xb'));var fs=require('fs');var fs_extra=require(_0x5e20('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x5e20('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5e20('0xa'));var querystring=require(_0x5e20('0xe'));var Papa=require('papaparse');var Redis=require(_0x5e20('0xf'));var authService=require(_0x5e20('0x10'));var qs=require(_0x5e20('0x11'));var as=require(_0x5e20('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5e20('0x13'))(_0x5e20('0x14'));var utils=require(_0x5e20('0x15'));var config=require(_0x5e20('0x16'));var licenseUtil=require(_0x5e20('0x17'));var db=require(_0x5e20('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x19eacf,_0x29b7a2){_0x29b7a2=_0x29b7a2||0xcc;return function(_0x22540d){if(_0x22540d){return _0x19eacf['sendStatus'](_0x29b7a2);}return _0x19eacf[_0x5e20('0x19')](_0x29b7a2)['end']();};}function respondWithResult(_0x1f47f3,_0x5ba833){_0x5ba833=_0x5ba833||0xc8;return function(_0x15587b){if(_0x15587b){return _0x1f47f3[_0x5e20('0x19')](_0x5ba833)[_0x5e20('0x1a')](_0x15587b);}};}function respondWithFilteredResult(_0x148ada,_0x294df8){return function(_0x542b3c){if(_0x542b3c){var _0xeaeb77=typeof _0x294df8[_0x5e20('0x1b')]===_0x5e20('0x1c')&&typeof _0x294df8[_0x5e20('0x1d')]===_0x5e20('0x1c');var _0x3b353f=_0x542b3c[_0x5e20('0x1e')];var _0xf3488f=_0xeaeb77?0x0:_0x294df8['offset'];var _0x434686=_0xeaeb77?_0x542b3c[_0x5e20('0x1e')]:_0x294df8['offset']+_0x294df8[_0x5e20('0x1d')];var _0x1b1457;if(_0x434686>=_0x3b353f){_0x434686=_0x3b353f;_0x1b1457=0xc8;}else{_0x1b1457=0xce;}_0x148ada[_0x5e20('0x19')](_0x1b1457);return _0x148ada[_0x5e20('0x1f')]('Content-Range',_0xf3488f+'-'+_0x434686+'/'+_0x3b353f)[_0x5e20('0x1a')](_0x542b3c);}return null;};}function patchUpdates(_0x50f222){return function(_0x4a3587){try{jsonpatch['apply'](_0x4a3587,_0x50f222,!![]);}catch(_0x5d0d1a){return BPromise[_0x5e20('0x20')](_0x5d0d1a);}return _0x4a3587['save']();};}function saveUpdates(_0x3d89e4,_0x29b111){return function(_0x30d849){if(_0x30d849){return _0x30d849[_0x5e20('0x21')](_0x3d89e4)[_0x5e20('0x22')](function(_0x2d4614){return _0x2d4614;});}return null;};}function removeEntity(_0x4c5732,_0x15705f){return function(_0x5a755f){if(_0x5a755f){return _0x5a755f['destroy']()[_0x5e20('0x22')](function(){_0x4c5732[_0x5e20('0x19')](0xcc)[_0x5e20('0x23')]();});}};}function handleEntityNotFound(_0x1b01af,_0xbf7a24){return function(_0x200774){if(!_0x200774){_0x1b01af[_0x5e20('0x24')](0x194);}return _0x200774;};}function handleError(_0x5809fd,_0x3bf4f4){_0x3bf4f4=_0x3bf4f4||0x1f4;return function(_0x420f63){logger[_0x5e20('0x25')](_0x420f63[_0x5e20('0x26')]);if(_0x420f63['name']){delete _0x420f63[_0x5e20('0x27')];}_0x5809fd[_0x5e20('0x19')](_0x3bf4f4)[_0x5e20('0x28')](_0x420f63);};}exports[_0x5e20('0x29')]=function(_0xbed73a,_0x19709b){var _0x5ec45b={},_0xbc2b0e={},_0x34a3d6={'count':0x0,'rows':[]};var _0x543c29=_[_0x5e20('0x2a')](db[_0x5e20('0x2b')][_0x5e20('0x2c')],function(_0x4196a3){return{'name':_0x4196a3[_0x5e20('0x2d')],'type':_0x4196a3[_0x5e20('0x2e')]['key']};});_0xbc2b0e[_0x5e20('0x2f')]=_[_0x5e20('0x2a')](_0x543c29,_0x5e20('0x27'));_0xbc2b0e[_0x5e20('0x30')]=_[_0x5e20('0x31')](_0xbed73a[_0x5e20('0x30')]);_0xbc2b0e[_0x5e20('0x32')]=_[_0x5e20('0x33')](_0xbc2b0e[_0x5e20('0x2f')],_0xbc2b0e[_0x5e20('0x30')]);_0x5ec45b[_0x5e20('0x34')]=_['intersection'](_0xbc2b0e[_0x5e20('0x2f')],qs[_0x5e20('0x35')](_0xbed73a[_0x5e20('0x30')]['fields']));_0x5ec45b[_0x5e20('0x34')]=_0x5ec45b[_0x5e20('0x34')][_0x5e20('0x36')]?_0x5ec45b[_0x5e20('0x34')]:_0xbc2b0e[_0x5e20('0x2f')];if(!_0xbed73a[_0x5e20('0x30')][_0x5e20('0x37')](_0x5e20('0x38'))){_0x5ec45b[_0x5e20('0x1d')]=qs[_0x5e20('0x1d')](_0xbed73a[_0x5e20('0x30')][_0x5e20('0x1d')]);_0x5ec45b[_0x5e20('0x1b')]=qs[_0x5e20('0x1b')](_0xbed73a['query'][_0x5e20('0x1b')]);}_0x5ec45b['order']=qs['sort'](_0xbed73a[_0x5e20('0x30')][_0x5e20('0x39')]);_0x5ec45b['where']=qs[_0x5e20('0x32')](_[_0x5e20('0x3a')](_0xbed73a['query'],_0xbc2b0e[_0x5e20('0x32')]),_0x543c29);if(_0xbed73a[_0x5e20('0x30')][_0x5e20('0x3b')]){_0x5ec45b[_0x5e20('0x3c')]=_[_0x5e20('0x3d')](_0x5ec45b[_0x5e20('0x3c')],{'$or':_[_0x5e20('0x2a')](_0x543c29,function(_0x3d9354){if(_0x3d9354[_0x5e20('0x2e')]!==_0x5e20('0x3e')){var _0x473b69={};_0x473b69[_0x3d9354[_0x5e20('0x27')]]={'$like':'%'+_0xbed73a[_0x5e20('0x30')][_0x5e20('0x3b')]+'%'};return _0x473b69;}})});}_0x5ec45b=_[_0x5e20('0x3d')]({},_0x5ec45b,_0xbed73a[_0x5e20('0x3f')]);var _0x20e83d={'where':_0x5ec45b[_0x5e20('0x3c')]};return db['FreshdeskAccount'][_0x5e20('0x1e')](_0x20e83d)[_0x5e20('0x22')](function(_0x377afc){_0x34a3d6[_0x5e20('0x1e')]=_0x377afc;if(_0xbed73a[_0x5e20('0x30')]['includeAll']){_0x5ec45b[_0x5e20('0x40')]=[{'all':!![]}];}return db[_0x5e20('0x2b')][_0x5e20('0x41')](_0x5ec45b);})[_0x5e20('0x22')](function(_0x4d973a){_0x34a3d6[_0x5e20('0x42')]=_0x4d973a;return _0x34a3d6;})['then'](respondWithFilteredResult(_0x19709b,_0x5ec45b))[_0x5e20('0x43')](handleError(_0x19709b,null));};exports[_0x5e20('0x44')]=function(_0xa52d83,_0x5a21f0){var _0x2b031d={'raw':![],'where':{'id':_0xa52d83[_0x5e20('0x45')]['id']}},_0x33bd92={};_0x33bd92[_0x5e20('0x2f')]=_[_0x5e20('0x31')](db[_0x5e20('0x2b')][_0x5e20('0x2c')]);_0x33bd92[_0x5e20('0x30')]=_['keys'](_0xa52d83[_0x5e20('0x30')]);_0x33bd92[_0x5e20('0x32')]=_[_0x5e20('0x33')](_0x33bd92['model'],_0x33bd92[_0x5e20('0x30')]);_0x2b031d['attributes']=_[_0x5e20('0x33')](_0x33bd92[_0x5e20('0x2f')],qs[_0x5e20('0x35')](_0xa52d83[_0x5e20('0x30')][_0x5e20('0x35')]));_0x2b031d['attributes']=_0x2b031d[_0x5e20('0x34')]['length']?_0x2b031d['attributes']:_0x33bd92[_0x5e20('0x2f')];if(_0xa52d83[_0x5e20('0x30')][_0x5e20('0x46')]){_0x2b031d[_0x5e20('0x40')]=[{'all':!![]}];}_0x2b031d=_[_0x5e20('0x3d')]({},_0x2b031d,_0xa52d83[_0x5e20('0x3f')]);return db[_0x5e20('0x2b')]['find'](_0x2b031d)['then'](handleEntityNotFound(_0x5a21f0,null))[_0x5e20('0x22')](respondWithResult(_0x5a21f0,null))[_0x5e20('0x43')](handleError(_0x5a21f0,null));};exports['create']=function(_0x22b84e,_0x27d41c){return db[_0x5e20('0x2b')][_0x5e20('0x47')](_0x22b84e[_0x5e20('0x48')],{})['then'](respondWithResult(_0x27d41c,0xc9))[_0x5e20('0x43')](handleError(_0x27d41c,null));};exports[_0x5e20('0x21')]=function(_0x25491e,_0x2a705f){if(_0x25491e[_0x5e20('0x48')]['id']){delete _0x25491e[_0x5e20('0x48')]['id'];}return db[_0x5e20('0x2b')][_0x5e20('0x49')]({'where':{'id':_0x25491e['params']['id']}})['then'](handleEntityNotFound(_0x2a705f,null))['then'](saveUpdates(_0x25491e[_0x5e20('0x48')],null))[_0x5e20('0x22')](respondWithResult(_0x2a705f,null))['catch'](handleError(_0x2a705f,null));};exports[_0x5e20('0x4a')]=function(_0x4bfea7,_0x61a3f1){return db['FreshdeskAccount'][_0x5e20('0x49')]({'where':{'id':_0x4bfea7['params']['id']}})[_0x5e20('0x22')](handleEntityNotFound(_0x61a3f1,null))[_0x5e20('0x22')](removeEntity(_0x61a3f1,null))[_0x5e20('0x43')](handleError(_0x61a3f1,null));};exports[_0x5e20('0x4b')]=function(_0x2a64ba,_0x200094,_0x4292f9){var _0x2a8929={};var _0x19c128={};var _0x43e890;var _0x13b716;return db[_0x5e20('0x2b')][_0x5e20('0x4c')]({'where':{'id':_0x2a64ba[_0x5e20('0x45')]['id']}})[_0x5e20('0x22')](handleEntityNotFound(_0x200094,null))[_0x5e20('0x22')](function(_0x1619fa){if(_0x1619fa){_0x43e890=_0x1619fa;_0x19c128[_0x5e20('0x2f')]=_['keys'](db['FreshdeskConfiguration'][_0x5e20('0x2c')]);_0x19c128['query']=_[_0x5e20('0x31')](_0x2a64ba[_0x5e20('0x30')]);_0x19c128[_0x5e20('0x32')]=_['intersection'](_0x19c128[_0x5e20('0x2f')],_0x19c128[_0x5e20('0x30')]);_0x2a8929[_0x5e20('0x34')]=_['intersection'](_0x19c128['model'],qs['fields'](_0x2a64ba[_0x5e20('0x30')][_0x5e20('0x35')]));_0x2a8929[_0x5e20('0x34')]=_0x2a8929[_0x5e20('0x34')][_0x5e20('0x36')]?_0x2a8929[_0x5e20('0x34')]:_0x19c128['model'];_0x2a8929[_0x5e20('0x4d')]=qs['sort'](_0x2a64ba[_0x5e20('0x30')]['sort']);_0x2a8929[_0x5e20('0x3c')]=qs[_0x5e20('0x32')](_[_0x5e20('0x3a')](_0x2a64ba['query'],_0x19c128[_0x5e20('0x32')]));if(_0x2a64ba[_0x5e20('0x30')][_0x5e20('0x3b')]){_0x2a8929[_0x5e20('0x3c')]=_[_0x5e20('0x3d')](_0x2a8929[_0x5e20('0x3c')],{'$or':_[_0x5e20('0x2a')](_0x2a8929['attributes'],function(_0x3b059f){var _0x3e7239={};_0x3e7239[_0x3b059f]={'$like':'%'+_0x2a64ba[_0x5e20('0x30')][_0x5e20('0x3b')]+'%'};return _0x3e7239;})});}_0x2a8929=_['merge']({},_0x2a8929,_0x2a64ba[_0x5e20('0x3f')]);return _0x43e890[_0x5e20('0x4b')](_0x2a8929);}})[_0x5e20('0x22')](function(_0x1fcd2b){if(_0x1fcd2b){_0x13b716=_0x1fcd2b['length'];if(!_0x2a64ba[_0x5e20('0x30')][_0x5e20('0x37')](_0x5e20('0x38'))){_0x2a8929['limit']=qs['limit'](_0x2a64ba['query'][_0x5e20('0x1d')]);_0x2a8929[_0x5e20('0x1b')]=qs['offset'](_0x2a64ba[_0x5e20('0x30')][_0x5e20('0x1b')]);}return _0x43e890[_0x5e20('0x4b')](_0x2a8929);}})['then'](function(_0x39743a){if(_0x39743a){return _0x39743a?{'count':_0x13b716,'rows':_0x39743a}:null;}})[_0x5e20('0x22')](respondWithResult(_0x200094,null))['catch'](handleError(_0x200094,null));};exports[_0x5e20('0x4e')]=function(_0x2a8bb6,_0x52171c,_0x3f2164){if(_0x2a8bb6[_0x5e20('0x48')]['id']){delete _0x2a8bb6[_0x5e20('0x48')]['id'];}return db[_0x5e20('0x2b')]['findOne']({'where':{'id':_0x2a8bb6[_0x5e20('0x45')]['id']}})['then'](handleEntityNotFound(_0x52171c,null))['then'](function(_0x1dc6dc){if(_0x1dc6dc){_0x2a8bb6[_0x5e20('0x48')][_0x5e20('0x4f')]=_0x1dc6dc['id'];_0x2a8bb6[_0x5e20('0x48')][_0x5e20('0x50')]=integrations[_0x5e20('0x51')](_0x2a8bb6['body']['channel'],_0x2a8bb6[_0x5e20('0x48')][_0x5e20('0x2e')]);_0x2a8bb6[_0x5e20('0x48')]['Descriptions']=integrations[_0x5e20('0x52')](_0x2a8bb6[_0x5e20('0x48')]['channel'],_0x2a8bb6[_0x5e20('0x48')]['type']);return db['FreshdeskConfiguration'][_0x5e20('0x47')](_0x2a8bb6['body'],{'include':[{'model':db[_0x5e20('0x53')],'as':_0x5e20('0x50')},{'model':db[_0x5e20('0x53')],'as':'Descriptions'}]});}return null;})[_0x5e20('0x22')](respondWithResult(_0x52171c,null))[_0x5e20('0x43')](handleError(_0x52171c,null));};exports[_0x5e20('0x54')]=function(_0x136002,_0x3e6dd9,_0x4e60f0){var _0x9d676='';return db[_0x5e20('0x2b')]['findOne']({'where':{'id':_0x136002[_0x5e20('0x45')]['id']},'attributes':['id',_0x5e20('0x55'),_0x5e20('0x56')]})['then'](handleEntityNotFound(_0x3e6dd9,null))[_0x5e20('0x22')](function(_0x2531f8){if(_0x2531f8){_0x9d676=_0x2531f8[_0x5e20('0x55')];var _0x324a2d=_0x9d676[_0x5e20('0x57')](-0x1);if(_0x324a2d==='/'){_0x9d676=_0x9d676['substring'](0x0,_0x9d676[_0x5e20('0x58')](_0x324a2d));}return rp({'method':_0x5e20('0x59'),'uri':util[_0x5e20('0x5a')](_0x5e20('0x5b'),_0x9d676,_0x5e20('0x5c')),'headers':{'Authorization':util['format'](_0x5e20('0x5d'),new Buffer(util[_0x5e20('0x5a')](_0x5e20('0x5e'),_0x2531f8[_0x5e20('0x56')]))[_0x5e20('0x5f')](_0x5e20('0x60')))},'json':!![]});}})[_0x5e20('0x22')](function(_0x2dee41){if(_0x2dee41){var _0x55306e=[_0x5e20('0x61'),'subject','agent',_0x5e20('0x62'),_0x5e20('0x19'),'priority',_0x5e20('0x63'),_0x5e20('0x64'),'ticket_type',_0x5e20('0x63'),'company'];_[_0x5e20('0x65')](_0x2dee41,function(_0x5bfc1c){return _0x55306e[_0x5e20('0x66')](_0x5bfc1c[_0x5e20('0x27')])||!_0x5bfc1c[_0x5e20('0x67')]&&_0x5bfc1c[_0x5e20('0x2e')]!==_0x5e20('0x68')&&_0x5bfc1c['type']!==_0x5e20('0x69');});return{'count':_0x2dee41['length'],'rows':_[_0x5e20('0x2a')](_0x2dee41,function(_0x4a502c){return{'id':_0x4a502c[_0x5e20('0x27')],'name':_0x4a502c[_0x5e20('0x6a')],'custom':!_0x4a502c[_0x5e20('0x67')],'options':_0x4a502c[_0x5e20('0x6b')]?_['map'](_0x4a502c[_0x5e20('0x6b')],function(_0x39eabb){return{'name':_['capitalize'](_0x39eabb),'value':_0x39eabb};}):[]};})};}})['then'](respondWithResult(_0x3e6dd9,null))[_0x5e20('0x43')](function(_0x40bdd7){var _0x175da2=_0x136002[_0x5e20('0x30')][_0x5e20('0x6c')]?0x1f4:_0x40bdd7['statusCode']||0x1f4;logger[_0x5e20('0x25')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x175da2,JSON[_0x5e20('0x6d')](_0x40bdd7));delete _0x40bdd7['name'];if(_0x175da2===0x191){_0x175da2=0x190;}_0x3e6dd9['status'](_0x175da2)[_0x5e20('0x28')](_0x136002[_0x5e20('0x30')]['test']?{'message':_0x5e20('0x6e'),'statusCode':_0x40bdd7[_0x5e20('0x6f')]}:_0x40bdd7);});};