Built motion from commit 43538d75.|2.5.35
[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 _0x1094=['crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','update','destroy','then','stack','name','index','FreshdeskAccount','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','sort','where','filter','merge','options','includeAll','include','findAll','catch','params','length','create','body','find','getConfigurations','FreshdeskConfiguration','order','pick','addConfiguration','findOne','AccountId','getSubjects','Descriptions','getDescriptions','channel','FreshdeskField','Subjects','getFields','remoteUri','apiKey','substring','lastIndexOf','GET','%s/%s','Basic\x20%s','%s:X','toString','requester','subject','agent','description','priority','source','group','remove','default','custom_text','custom_dropdown','choices','capitalize','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x32ce33,_0x621e48){var _0x5e1b10=function(_0x5e97b6){while(--_0x5e97b6){_0x32ce33['push'](_0x32ce33['shift']());}};_0x5e1b10(++_0x621e48);}(_0x1094,0x143));var _0x4109=function(_0x31a938,_0x4daec6){_0x31a938=_0x31a938-0x0;var _0x1bf341=_0x1094[_0x31a938];return _0x1bf341;};'use strict';var emlformat=require(_0x4109('0x0'));var rimraf=require(_0x4109('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4109('0x2'));var rp=require('request-promise');var moment=require(_0x4109('0x3'));var BPromise=require(_0x4109('0x4'));var Mustache=require(_0x4109('0x5'));var util=require(_0x4109('0x6'));var path=require(_0x4109('0x7'));var sox=require('sox');var csv=require(_0x4109('0x8'));var ejs=require(_0x4109('0x9'));var fs=require('fs');var fs_extra=require(_0x4109('0xa'));var _=require(_0x4109('0xb'));var squel=require(_0x4109('0xc'));var crypto=require(_0x4109('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4109('0xe'));var toCsv=require(_0x4109('0x8'));var querystring=require(_0x4109('0xf'));var Papa=require(_0x4109('0x10'));var Redis=require(_0x4109('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4109('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4109('0x13'))(_0x4109('0x14'));var utils=require(_0x4109('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x4109('0x16'));var db=require(_0x4109('0x17'))['db'];var integrations=require(_0x4109('0x18'));function respondWithStatusCode(_0x41e682,_0x2c2c9d){_0x2c2c9d=_0x2c2c9d||0xcc;return function(_0x486b75){if(_0x486b75){return _0x41e682[_0x4109('0x19')](_0x2c2c9d);}return _0x41e682[_0x4109('0x1a')](_0x2c2c9d)[_0x4109('0x1b')]();};}function respondWithResult(_0x3c893a,_0x4a13fc){_0x4a13fc=_0x4a13fc||0xc8;return function(_0x5c2436){if(_0x5c2436){return _0x3c893a[_0x4109('0x1a')](_0x4a13fc)[_0x4109('0x1c')](_0x5c2436);}};}function respondWithFilteredResult(_0x2e8e63,_0x37b444){return function(_0x1d81d8){if(_0x1d81d8){var _0xd7c186=typeof _0x37b444[_0x4109('0x1d')]===_0x4109('0x1e')&&typeof _0x37b444['limit']==='undefined';var _0xc7bd9=_0x1d81d8[_0x4109('0x1f')];var _0x6945ae=_0xd7c186?0x0:_0x37b444[_0x4109('0x1d')];var _0x415e48=_0xd7c186?_0x1d81d8[_0x4109('0x1f')]:_0x37b444[_0x4109('0x1d')]+_0x37b444[_0x4109('0x20')];var _0x12400e;if(_0x415e48>=_0xc7bd9){_0x415e48=_0xc7bd9;_0x12400e=0xc8;}else{_0x12400e=0xce;}_0x2e8e63['status'](_0x12400e);return _0x2e8e63[_0x4109('0x21')](_0x4109('0x22'),_0x6945ae+'-'+_0x415e48+'/'+_0xc7bd9)['json'](_0x1d81d8);}return null;};}function patchUpdates(_0x295f97){return function(_0x1a5eaf){try{jsonpatch['apply'](_0x1a5eaf,_0x295f97,!![]);}catch(_0x596aec){return BPromise[_0x4109('0x23')](_0x596aec);}return _0x1a5eaf['save']();};}function saveUpdates(_0x369de0,_0x45d848){return function(_0x886f67){if(_0x886f67){return _0x886f67[_0x4109('0x24')](_0x369de0)['then'](function(_0x406d35){return _0x406d35;});}return null;};}function removeEntity(_0x438f4f,_0x339cec){return function(_0x517c71){if(_0x517c71){return _0x517c71[_0x4109('0x25')]()[_0x4109('0x26')](function(){_0x438f4f[_0x4109('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5e397f,_0x54d82d){return function(_0x1b7bac){if(!_0x1b7bac){_0x5e397f[_0x4109('0x19')](0x194);}return _0x1b7bac;};}function handleError(_0x103beb,_0x1ef8fb){_0x1ef8fb=_0x1ef8fb||0x1f4;return function(_0x32b17b){logger['error'](_0x32b17b[_0x4109('0x27')]);if(_0x32b17b[_0x4109('0x28')]){delete _0x32b17b['name'];}_0x103beb[_0x4109('0x1a')](_0x1ef8fb)['send'](_0x32b17b);};}exports[_0x4109('0x29')]=function(_0x2bbd38,_0xc1e757){var _0x3165c5={},_0x39d2c1={},_0x49dfe9={'count':0x0,'rows':[]};var _0x3400b1=_['map'](db[_0x4109('0x2a')][_0x4109('0x2b')],function(_0xf662af){return{'name':_0xf662af[_0x4109('0x2c')],'type':_0xf662af[_0x4109('0x2d')][_0x4109('0x2e')]};});_0x39d2c1[_0x4109('0x2f')]=_[_0x4109('0x30')](_0x3400b1,_0x4109('0x28'));_0x39d2c1[_0x4109('0x31')]=_[_0x4109('0x32')](_0x2bbd38[_0x4109('0x31')]);_0x39d2c1[_0x4109('0x33')]=_[_0x4109('0x34')](_0x39d2c1[_0x4109('0x2f')],_0x39d2c1[_0x4109('0x31')]);_0x3165c5['attributes']=_[_0x4109('0x34')](_0x39d2c1[_0x4109('0x2f')],qs[_0x4109('0x35')](_0x2bbd38[_0x4109('0x31')][_0x4109('0x35')]));_0x3165c5[_0x4109('0x36')]=_0x3165c5['attributes']['length']?_0x3165c5[_0x4109('0x36')]:_0x39d2c1[_0x4109('0x2f')];if(!_0x2bbd38[_0x4109('0x31')][_0x4109('0x37')]('nolimit')){_0x3165c5[_0x4109('0x20')]=qs[_0x4109('0x20')](_0x2bbd38[_0x4109('0x31')][_0x4109('0x20')]);_0x3165c5[_0x4109('0x1d')]=qs[_0x4109('0x1d')](_0x2bbd38['query'][_0x4109('0x1d')]);}_0x3165c5['order']=qs[_0x4109('0x38')](_0x2bbd38[_0x4109('0x31')]['sort']);_0x3165c5[_0x4109('0x39')]=qs[_0x4109('0x33')](_['pick'](_0x2bbd38['query'],_0x39d2c1[_0x4109('0x33')]),_0x3400b1);if(_0x2bbd38['query'][_0x4109('0x3a')]){_0x3165c5['where']=_[_0x4109('0x3b')](_0x3165c5[_0x4109('0x39')],{'$or':_[_0x4109('0x30')](_0x3400b1,function(_0x4134b6){if(_0x4134b6['type']!=='VIRTUAL'){var _0x4fc836={};_0x4fc836[_0x4134b6[_0x4109('0x28')]]={'$like':'%'+_0x2bbd38[_0x4109('0x31')][_0x4109('0x3a')]+'%'};return _0x4fc836;}})});}_0x3165c5=_[_0x4109('0x3b')]({},_0x3165c5,_0x2bbd38[_0x4109('0x3c')]);var _0x27277a={'where':_0x3165c5[_0x4109('0x39')]};return db[_0x4109('0x2a')][_0x4109('0x1f')](_0x27277a)[_0x4109('0x26')](function(_0x1960a2){_0x49dfe9[_0x4109('0x1f')]=_0x1960a2;if(_0x2bbd38[_0x4109('0x31')][_0x4109('0x3d')]){_0x3165c5[_0x4109('0x3e')]=[{'all':!![]}];}return db[_0x4109('0x2a')][_0x4109('0x3f')](_0x3165c5);})[_0x4109('0x26')](function(_0x235850){_0x49dfe9['rows']=_0x235850;return _0x49dfe9;})[_0x4109('0x26')](respondWithFilteredResult(_0xc1e757,_0x3165c5))[_0x4109('0x40')](handleError(_0xc1e757,null));};exports['show']=function(_0x58f13a,_0x4d8a10){var _0x17e854={'raw':![],'where':{'id':_0x58f13a[_0x4109('0x41')]['id']}},_0x3c0106={};_0x3c0106[_0x4109('0x2f')]=_[_0x4109('0x32')](db[_0x4109('0x2a')][_0x4109('0x2b')]);_0x3c0106['query']=_['keys'](_0x58f13a['query']);_0x3c0106[_0x4109('0x33')]=_['intersection'](_0x3c0106[_0x4109('0x2f')],_0x3c0106['query']);_0x17e854[_0x4109('0x36')]=_[_0x4109('0x34')](_0x3c0106[_0x4109('0x2f')],qs[_0x4109('0x35')](_0x58f13a[_0x4109('0x31')][_0x4109('0x35')]));_0x17e854[_0x4109('0x36')]=_0x17e854['attributes'][_0x4109('0x42')]?_0x17e854[_0x4109('0x36')]:_0x3c0106[_0x4109('0x2f')];if(_0x58f13a[_0x4109('0x31')][_0x4109('0x3d')]){_0x17e854['include']=[{'all':!![]}];}_0x17e854=_['merge']({},_0x17e854,_0x58f13a[_0x4109('0x3c')]);return db['FreshdeskAccount']['find'](_0x17e854)[_0x4109('0x26')](handleEntityNotFound(_0x4d8a10,null))[_0x4109('0x26')](respondWithResult(_0x4d8a10,null))[_0x4109('0x40')](handleError(_0x4d8a10,null));};exports[_0x4109('0x43')]=function(_0x5ba7ea,_0x4f15f7){return db[_0x4109('0x2a')]['create'](_0x5ba7ea[_0x4109('0x44')],{})['then'](respondWithResult(_0x4f15f7,0xc9))[_0x4109('0x40')](handleError(_0x4f15f7,null));};exports[_0x4109('0x24')]=function(_0x3cb3b2,_0x295c58){if(_0x3cb3b2[_0x4109('0x44')]['id']){delete _0x3cb3b2[_0x4109('0x44')]['id'];}return db['FreshdeskAccount'][_0x4109('0x45')]({'where':{'id':_0x3cb3b2[_0x4109('0x41')]['id']}})['then'](handleEntityNotFound(_0x295c58,null))['then'](saveUpdates(_0x3cb3b2[_0x4109('0x44')],null))[_0x4109('0x26')](respondWithResult(_0x295c58,null))[_0x4109('0x40')](handleError(_0x295c58,null));};exports['destroy']=function(_0x51eb8d,_0x57e01e){return db[_0x4109('0x2a')][_0x4109('0x45')]({'where':{'id':_0x51eb8d[_0x4109('0x41')]['id']}})['then'](handleEntityNotFound(_0x57e01e,null))[_0x4109('0x26')](removeEntity(_0x57e01e,null))['catch'](handleError(_0x57e01e,null));};exports[_0x4109('0x46')]=function(_0x12b85e,_0x568313,_0x36bade){var _0x185e17={};var _0x572753={};var _0x3df5fd;var _0x3b6dbd;return db[_0x4109('0x2a')]['findOne']({'where':{'id':_0x12b85e['params']['id']}})['then'](handleEntityNotFound(_0x568313,null))[_0x4109('0x26')](function(_0x45b5a2){if(_0x45b5a2){_0x3df5fd=_0x45b5a2;_0x572753[_0x4109('0x2f')]=_[_0x4109('0x32')](db[_0x4109('0x47')][_0x4109('0x2b')]);_0x572753[_0x4109('0x31')]=_['keys'](_0x12b85e[_0x4109('0x31')]);_0x572753[_0x4109('0x33')]=_['intersection'](_0x572753[_0x4109('0x2f')],_0x572753[_0x4109('0x31')]);_0x185e17[_0x4109('0x36')]=_[_0x4109('0x34')](_0x572753[_0x4109('0x2f')],qs[_0x4109('0x35')](_0x12b85e[_0x4109('0x31')][_0x4109('0x35')]));_0x185e17[_0x4109('0x36')]=_0x185e17[_0x4109('0x36')][_0x4109('0x42')]?_0x185e17['attributes']:_0x572753[_0x4109('0x2f')];_0x185e17[_0x4109('0x48')]=qs['sort'](_0x12b85e[_0x4109('0x31')]['sort']);_0x185e17[_0x4109('0x39')]=qs[_0x4109('0x33')](_[_0x4109('0x49')](_0x12b85e['query'],_0x572753['filters']));if(_0x12b85e['query']['filter']){_0x185e17[_0x4109('0x39')]=_[_0x4109('0x3b')](_0x185e17['where'],{'$or':_['map'](_0x185e17['attributes'],function(_0x1f2fb5){var _0x3d8d48={};_0x3d8d48[_0x1f2fb5]={'$like':'%'+_0x12b85e[_0x4109('0x31')][_0x4109('0x3a')]+'%'};return _0x3d8d48;})});}_0x185e17=_[_0x4109('0x3b')]({},_0x185e17,_0x12b85e['options']);return _0x3df5fd['getConfigurations'](_0x185e17);}})[_0x4109('0x26')](function(_0x15a449){if(_0x15a449){_0x3b6dbd=_0x15a449['length'];if(!_0x12b85e[_0x4109('0x31')][_0x4109('0x37')]('nolimit')){_0x185e17[_0x4109('0x20')]=qs['limit'](_0x12b85e[_0x4109('0x31')][_0x4109('0x20')]);_0x185e17['offset']=qs[_0x4109('0x1d')](_0x12b85e[_0x4109('0x31')][_0x4109('0x1d')]);}return _0x3df5fd['getConfigurations'](_0x185e17);}})['then'](function(_0x20cca1){if(_0x20cca1){return _0x20cca1?{'count':_0x3b6dbd,'rows':_0x20cca1}:null;}})['then'](respondWithResult(_0x568313,null))[_0x4109('0x40')](handleError(_0x568313,null));};exports[_0x4109('0x4a')]=function(_0x3ece81,_0x2b76ae,_0x37787b){if(_0x3ece81[_0x4109('0x44')]['id']){delete _0x3ece81[_0x4109('0x44')]['id'];}return db[_0x4109('0x2a')][_0x4109('0x4b')]({'where':{'id':_0x3ece81[_0x4109('0x41')]['id']}})[_0x4109('0x26')](handleEntityNotFound(_0x2b76ae,null))['then'](function(_0x4d07ee){if(_0x4d07ee){_0x3ece81['body'][_0x4109('0x4c')]=_0x4d07ee['id'];_0x3ece81['body']['Subjects']=integrations[_0x4109('0x4d')](_0x3ece81[_0x4109('0x44')]['channel'],_0x3ece81['body'][_0x4109('0x2d')]);_0x3ece81[_0x4109('0x44')][_0x4109('0x4e')]=integrations[_0x4109('0x4f')](_0x3ece81['body'][_0x4109('0x50')],_0x3ece81[_0x4109('0x44')][_0x4109('0x2d')]);return db[_0x4109('0x47')]['create'](_0x3ece81[_0x4109('0x44')],{'include':[{'model':db[_0x4109('0x51')],'as':_0x4109('0x52')},{'model':db[_0x4109('0x51')],'as':_0x4109('0x4e')}]});}return null;})[_0x4109('0x26')](respondWithResult(_0x2b76ae,null))['catch'](handleError(_0x2b76ae,null));};exports[_0x4109('0x53')]=function(_0x2265ec,_0x3749b7,_0x574059){var _0x20ba3a='';return db['FreshdeskAccount'][_0x4109('0x4b')]({'where':{'id':_0x2265ec[_0x4109('0x41')]['id']},'attributes':['id',_0x4109('0x54'),_0x4109('0x55')]})[_0x4109('0x26')](handleEntityNotFound(_0x3749b7,null))[_0x4109('0x26')](function(_0x1cc8bf){if(_0x1cc8bf){_0x20ba3a=_0x1cc8bf[_0x4109('0x54')];var _0x2ba480=_0x20ba3a['slice'](-0x1);if(_0x2ba480==='/'){_0x20ba3a=_0x20ba3a[_0x4109('0x56')](0x0,_0x20ba3a[_0x4109('0x57')](_0x2ba480));}return rp({'method':_0x4109('0x58'),'uri':util['format'](_0x4109('0x59'),_0x20ba3a,'api/v2/ticket_fields'),'headers':{'Authorization':util['format'](_0x4109('0x5a'),new Buffer(util['format'](_0x4109('0x5b'),_0x1cc8bf[_0x4109('0x55')]))[_0x4109('0x5c')]('base64'))},'json':!![]});}})[_0x4109('0x26')](function(_0x2411e4){if(_0x2411e4){var _0x1d213d=[_0x4109('0x5d'),_0x4109('0x5e'),_0x4109('0x5f'),_0x4109('0x60'),_0x4109('0x1a'),_0x4109('0x61'),'group',_0x4109('0x62'),'ticket_type',_0x4109('0x63'),'company'];_[_0x4109('0x64')](_0x2411e4,function(_0x247b4a){return _0x1d213d['includes'](_0x247b4a[_0x4109('0x28')])||!_0x247b4a[_0x4109('0x65')]&&_0x247b4a['type']!==_0x4109('0x66')&&_0x247b4a['type']!==_0x4109('0x67');});return{'count':_0x2411e4[_0x4109('0x42')],'rows':_[_0x4109('0x30')](_0x2411e4,function(_0x1d23c7){return{'id':_0x1d23c7[_0x4109('0x28')],'name':_0x1d23c7['label'],'custom':!_0x1d23c7[_0x4109('0x65')],'options':_0x1d23c7[_0x4109('0x68')]?_['map'](_0x1d23c7[_0x4109('0x68')],function(_0x287453){return{'name':_[_0x4109('0x69')](_0x287453),'value':_0x287453};}):[]};})};}})[_0x4109('0x26')](respondWithResult(_0x3749b7,null))[_0x4109('0x40')](function(_0x4d74de){var _0x450a7c=_0x2265ec[_0x4109('0x31')][_0x4109('0x6a')]?0x1f4:_0x4d74de['statusCode']||0x1f4;logger[_0x4109('0x6b')](_0x4109('0x6c'),_0x4109('0x53'),_0x450a7c,JSON[_0x4109('0x6d')](_0x4d74de));delete _0x4d74de[_0x4109('0x28')];if(_0x450a7c===0x191){_0x450a7c=0x190;}_0x3749b7['status'](_0x450a7c)[_0x4109('0x6e')](_0x2265ec[_0x4109('0x31')][_0x4109('0x6a')]?{'message':_0x4109('0x6f'),'statusCode':_0x4d74de['statusCode']}:_0x4d74de);});};