Built motion from commit (unavailable).|2.5.26
[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 _0x8c33=['source','ticket_type','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../components/integrations/configuration','jayson/promise','http','then','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','status','end','json','count','offset','limit','set','reject','update','sendStatus','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','FreshdeskAccount','includeAll','include','findAll','rows','show','find','create','body','catch','params','destroy','getConfigurations','findOne','length','nolimit','addConfiguration','Subjects','getSubjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','subject','agent','description','group'];(function(_0x108051,_0x49d00e){var _0x33c663=function(_0x3a0734){while(--_0x3a0734){_0x108051['push'](_0x108051['shift']());}};_0x33c663(++_0x49d00e);}(_0x8c33,0x100));var _0x38c3=function(_0x49d958,_0x4af761){_0x49d958=_0x49d958-0x0;var _0x4107a3=_0x8c33[_0x49d958];return _0x4107a3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x38c3('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x38c3('0x1'));var rp=require(_0x38c3('0x2'));var moment=require(_0x38c3('0x3'));var BPromise=require(_0x38c3('0x4'));var Mustache=require(_0x38c3('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x38c3('0x6'));var ejs=require(_0x38c3('0x7'));var fs=require('fs');var fs_extra=require(_0x38c3('0x8'));var _=require(_0x38c3('0x9'));var squel=require(_0x38c3('0xa'));var crypto=require(_0x38c3('0xb'));var jsforce=require(_0x38c3('0xc'));var deskjs=require(_0x38c3('0xd'));var toCsv=require(_0x38c3('0x6'));var querystring=require('querystring');var Papa=require(_0x38c3('0xe'));var Redis=require(_0x38c3('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x38c3('0x10'));var as=require(_0x38c3('0x11'));var hardwareService=require(_0x38c3('0x12'));var logger=require(_0x38c3('0x13'))(_0x38c3('0x14'));var utils=require('../../config/utils');var config=require(_0x38c3('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x38c3('0x16'));var jayson=require(_0x38c3('0x17'));var client=jayson['client'][_0x38c3('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x4a0cee,_0x19cfe2,_0x486a8f,_0x521192){return new BPromise(function(_0x61a124,_0x45adec){var _0x1e962d=_0x521192||client;return _0x1e962d['request'](_0x4a0cee,_0x486a8f)[_0x38c3('0x19')](function(_0x376005){logger[_0x38c3('0x1a')](_0x38c3('0x1b'),_0x19cfe2,_0x38c3('0x1c'));logger[_0x38c3('0x1d')](_0x38c3('0x1e'),_0x19cfe2,'request\x20sent',JSON[_0x38c3('0x1f')](_0x376005));if(_0x376005[_0x38c3('0x20')]){if(_0x376005[_0x38c3('0x20')][_0x38c3('0x21')]===0x1f4){logger[_0x38c3('0x20')](_0x38c3('0x1b'),_0x19cfe2,_0x376005[_0x38c3('0x20')][_0x38c3('0x22')]);return _0x45adec(_0x376005[_0x38c3('0x20')][_0x38c3('0x22')]);}logger[_0x38c3('0x20')](_0x38c3('0x1b'),_0x19cfe2,_0x376005[_0x38c3('0x20')][_0x38c3('0x22')]);return _0x61a124(_0x376005[_0x38c3('0x20')]['message']);}else{logger[_0x38c3('0x1a')](_0x38c3('0x1b'),_0x19cfe2,_0x38c3('0x1c'));_0x61a124(_0x376005[_0x38c3('0x23')][_0x38c3('0x22')]);}})['catch'](function(_0x487c35){logger[_0x38c3('0x20')]('FreshdeskAccount,\x20%s,\x20%s',_0x19cfe2,_0x487c35);_0x45adec(_0x487c35);});});}function respondWithStatusCode(_0x205b59,_0x68dd11){_0x68dd11=_0x68dd11||0xcc;return function(_0x31e8ab){if(_0x31e8ab){return _0x205b59['sendStatus'](_0x68dd11);}return _0x205b59[_0x38c3('0x24')](_0x68dd11)[_0x38c3('0x25')]();};}function respondWithResult(_0x148f54,_0x205b93){_0x205b93=_0x205b93||0xc8;return function(_0x570e45){if(_0x570e45){return _0x148f54[_0x38c3('0x24')](_0x205b93)[_0x38c3('0x26')](_0x570e45);}};}function respondWithFilteredResult(_0x164aa8,_0x214bf8){return function(_0x4855d0){if(_0x4855d0){var _0x2845f0=_0x4855d0[_0x38c3('0x27')],_0x6ec5cc=_0x214bf8[_0x38c3('0x28')],_0x380f0f=_0x214bf8['offset']+_0x214bf8[_0x38c3('0x29')],_0x24f2d3;if(_0x380f0f>=_0x2845f0){_0x380f0f=_0x2845f0;_0x24f2d3=0xc8;}else{_0x24f2d3=0xce;}_0x164aa8[_0x38c3('0x24')](_0x24f2d3);return _0x164aa8[_0x38c3('0x2a')]('Content-Range',_0x6ec5cc+'-'+_0x380f0f+'/'+_0x2845f0)[_0x38c3('0x26')](_0x4855d0);}return null;};}function patchUpdates(_0x3a3fba){return function(_0x595559){try{jsonpatch['apply'](_0x595559,_0x3a3fba,!![]);}catch(_0x587f46){return BPromise[_0x38c3('0x2b')](_0x587f46);}return _0x595559['save']();};}function saveUpdates(_0x4d330b,_0xfb3ad5){return function(_0x1d40a4){if(_0x1d40a4){return _0x1d40a4[_0x38c3('0x2c')](_0x4d330b)[_0x38c3('0x19')](function(_0xda4ed4){return _0xda4ed4;});}return null;};}function removeEntity(_0x55cbce,_0x51f6c4){return function(_0x1bf08b){if(_0x1bf08b){return _0x1bf08b['destroy']()[_0x38c3('0x19')](function(){_0x55cbce['status'](0xcc)[_0x38c3('0x25')]();});}};}function handleEntityNotFound(_0x1ce338,_0x400c19){return function(_0x10016b){if(!_0x10016b){_0x1ce338[_0x38c3('0x2d')](0x194);}return _0x10016b;};}function handleError(_0x46c44e,_0x2a457d){_0x2a457d=_0x2a457d||0x1f4;return function(_0xca94e2){logger['error'](_0xca94e2[_0x38c3('0x2e')]);if(_0xca94e2[_0x38c3('0x2f')]){delete _0xca94e2[_0x38c3('0x2f')];}_0x46c44e[_0x38c3('0x24')](_0x2a457d)[_0x38c3('0x30')](_0xca94e2);};}exports[_0x38c3('0x31')]=function(_0x19df54,_0x2f26cc){var _0x4b5a60={},_0x13b686={},_0x583039={'count':0x0,'rows':[]};var _0x59bacc=_[_0x38c3('0x32')](db['FreshdeskAccount'][_0x38c3('0x33')],function(_0x19ff56){return{'name':_0x19ff56['fieldName'],'type':_0x19ff56[_0x38c3('0x34')][_0x38c3('0x35')]};});_0x13b686[_0x38c3('0x36')]=_[_0x38c3('0x32')](_0x59bacc,_0x38c3('0x2f'));_0x13b686[_0x38c3('0x37')]=_[_0x38c3('0x38')](_0x19df54[_0x38c3('0x37')]);_0x13b686[_0x38c3('0x39')]=_[_0x38c3('0x3a')](_0x13b686[_0x38c3('0x36')],_0x13b686['query']);_0x4b5a60[_0x38c3('0x3b')]=_[_0x38c3('0x3a')](_0x13b686['model'],qs[_0x38c3('0x3c')](_0x19df54[_0x38c3('0x37')][_0x38c3('0x3c')]));_0x4b5a60[_0x38c3('0x3b')]=_0x4b5a60[_0x38c3('0x3b')]['length']?_0x4b5a60[_0x38c3('0x3b')]:_0x13b686['model'];if(!_0x19df54['query'][_0x38c3('0x3d')]('nolimit')){_0x4b5a60['limit']=qs[_0x38c3('0x29')](_0x19df54['query']['limit']);_0x4b5a60[_0x38c3('0x28')]=qs['offset'](_0x19df54[_0x38c3('0x37')][_0x38c3('0x28')]);}_0x4b5a60[_0x38c3('0x3e')]=qs[_0x38c3('0x3f')](_0x19df54[_0x38c3('0x37')][_0x38c3('0x3f')]);_0x4b5a60['where']=qs[_0x38c3('0x39')](_[_0x38c3('0x40')](_0x19df54['query'],_0x13b686[_0x38c3('0x39')]),_0x59bacc);if(_0x19df54[_0x38c3('0x37')][_0x38c3('0x41')]){_0x4b5a60[_0x38c3('0x42')]=_[_0x38c3('0x43')](_0x4b5a60[_0x38c3('0x42')],{'$or':_[_0x38c3('0x32')](_0x59bacc,function(_0x5e2e9f){if(_0x5e2e9f[_0x38c3('0x34')]!==_0x38c3('0x44')){var _0x342c52={};_0x342c52[_0x5e2e9f['name']]={'$like':'%'+_0x19df54['query'][_0x38c3('0x41')]+'%'};return _0x342c52;}})});}_0x4b5a60=_[_0x38c3('0x43')]({},_0x4b5a60,_0x19df54[_0x38c3('0x45')]);var _0x1321b2={'where':_0x4b5a60[_0x38c3('0x42')]};return db[_0x38c3('0x46')][_0x38c3('0x27')](_0x1321b2)[_0x38c3('0x19')](function(_0xb747c2){_0x583039[_0x38c3('0x27')]=_0xb747c2;if(_0x19df54[_0x38c3('0x37')][_0x38c3('0x47')]){_0x4b5a60[_0x38c3('0x48')]=[{'all':!![]}];}return db[_0x38c3('0x46')][_0x38c3('0x49')](_0x4b5a60);})[_0x38c3('0x19')](function(_0x589a1d){_0x583039[_0x38c3('0x4a')]=_0x589a1d;return _0x583039;})[_0x38c3('0x19')](respondWithFilteredResult(_0x2f26cc,_0x4b5a60))['catch'](handleError(_0x2f26cc,null));};exports[_0x38c3('0x4b')]=function(_0x1910e7,_0x15b244){var _0x218e59={'raw':![],'where':{'id':_0x1910e7['params']['id']}},_0xb37d08={};_0xb37d08[_0x38c3('0x36')]=_['keys'](db[_0x38c3('0x46')][_0x38c3('0x33')]);_0xb37d08[_0x38c3('0x37')]=_[_0x38c3('0x38')](_0x1910e7['query']);_0xb37d08[_0x38c3('0x39')]=_[_0x38c3('0x3a')](_0xb37d08['model'],_0xb37d08[_0x38c3('0x37')]);_0x218e59['attributes']=_[_0x38c3('0x3a')](_0xb37d08[_0x38c3('0x36')],qs[_0x38c3('0x3c')](_0x1910e7[_0x38c3('0x37')][_0x38c3('0x3c')]));_0x218e59[_0x38c3('0x3b')]=_0x218e59[_0x38c3('0x3b')]['length']?_0x218e59[_0x38c3('0x3b')]:_0xb37d08['model'];if(_0x1910e7['query'][_0x38c3('0x47')]){_0x218e59['include']=[{'all':!![]}];}_0x218e59=_[_0x38c3('0x43')]({},_0x218e59,_0x1910e7[_0x38c3('0x45')]);return db[_0x38c3('0x46')][_0x38c3('0x4c')](_0x218e59)[_0x38c3('0x19')](handleEntityNotFound(_0x15b244,null))[_0x38c3('0x19')](respondWithResult(_0x15b244,null))['catch'](handleError(_0x15b244,null));};exports[_0x38c3('0x4d')]=function(_0x531a04,_0x5ec8ab){return db[_0x38c3('0x46')]['create'](_0x531a04[_0x38c3('0x4e')],{})[_0x38c3('0x19')](respondWithResult(_0x5ec8ab,0xc9))[_0x38c3('0x4f')](handleError(_0x5ec8ab,null));};exports[_0x38c3('0x2c')]=function(_0xedefec,_0x15fa71){if(_0xedefec[_0x38c3('0x4e')]['id']){delete _0xedefec[_0x38c3('0x4e')]['id'];}return db[_0x38c3('0x46')][_0x38c3('0x4c')]({'where':{'id':_0xedefec[_0x38c3('0x50')]['id']}})['then'](handleEntityNotFound(_0x15fa71,null))[_0x38c3('0x19')](saveUpdates(_0xedefec[_0x38c3('0x4e')],null))['then'](respondWithResult(_0x15fa71,null))[_0x38c3('0x4f')](handleError(_0x15fa71,null));};exports[_0x38c3('0x51')]=function(_0x37de3a,_0x4ce8b1){return db[_0x38c3('0x46')]['find']({'where':{'id':_0x37de3a['params']['id']}})[_0x38c3('0x19')](handleEntityNotFound(_0x4ce8b1,null))[_0x38c3('0x19')](removeEntity(_0x4ce8b1,null))[_0x38c3('0x4f')](handleError(_0x4ce8b1,null));};exports[_0x38c3('0x52')]=function(_0x53542b,_0x22ce95,_0x113e55){var _0x16c350={};var _0x2a484b={};var _0x45439f;var _0x3c6169;return db[_0x38c3('0x46')][_0x38c3('0x53')]({'where':{'id':_0x53542b[_0x38c3('0x50')]['id']}})['then'](handleEntityNotFound(_0x22ce95,null))[_0x38c3('0x19')](function(_0x4965b6){if(_0x4965b6){_0x45439f=_0x4965b6;_0x2a484b[_0x38c3('0x36')]=_[_0x38c3('0x38')](db['FreshdeskConfiguration'][_0x38c3('0x33')]);_0x2a484b['query']=_['keys'](_0x53542b[_0x38c3('0x37')]);_0x2a484b[_0x38c3('0x39')]=_[_0x38c3('0x3a')](_0x2a484b[_0x38c3('0x36')],_0x2a484b[_0x38c3('0x37')]);_0x16c350[_0x38c3('0x3b')]=_[_0x38c3('0x3a')](_0x2a484b['model'],qs[_0x38c3('0x3c')](_0x53542b[_0x38c3('0x37')][_0x38c3('0x3c')]));_0x16c350[_0x38c3('0x3b')]=_0x16c350[_0x38c3('0x3b')][_0x38c3('0x54')]?_0x16c350[_0x38c3('0x3b')]:_0x2a484b[_0x38c3('0x36')];_0x16c350[_0x38c3('0x3e')]=qs[_0x38c3('0x3f')](_0x53542b[_0x38c3('0x37')][_0x38c3('0x3f')]);_0x16c350[_0x38c3('0x42')]=qs[_0x38c3('0x39')](_['pick'](_0x53542b[_0x38c3('0x37')],_0x2a484b[_0x38c3('0x39')]));if(_0x53542b['query']['filter']){_0x16c350['where']=_[_0x38c3('0x43')](_0x16c350[_0x38c3('0x42')],{'$or':_[_0x38c3('0x32')](_0x16c350[_0x38c3('0x3b')],function(_0x54aee0){var _0x2538a4={};_0x2538a4[_0x54aee0]={'$like':'%'+_0x53542b[_0x38c3('0x37')][_0x38c3('0x41')]+'%'};return _0x2538a4;})});}_0x16c350=_[_0x38c3('0x43')]({},_0x16c350,_0x53542b[_0x38c3('0x45')]);return _0x45439f['getConfigurations'](_0x16c350);}})[_0x38c3('0x19')](function(_0x179df1){if(_0x179df1){_0x3c6169=_0x179df1[_0x38c3('0x54')];if(!_0x53542b['query']['hasOwnProperty'](_0x38c3('0x55'))){_0x16c350[_0x38c3('0x29')]=qs[_0x38c3('0x29')](_0x53542b[_0x38c3('0x37')][_0x38c3('0x29')]);_0x16c350[_0x38c3('0x28')]=qs['offset'](_0x53542b['query'][_0x38c3('0x28')]);}return _0x45439f['getConfigurations'](_0x16c350);}})[_0x38c3('0x19')](function(_0x87ce80){if(_0x87ce80){return _0x87ce80?{'count':_0x3c6169,'rows':_0x87ce80}:null;}})['then'](respondWithResult(_0x22ce95,null))[_0x38c3('0x4f')](handleError(_0x22ce95,null));};exports[_0x38c3('0x56')]=function(_0x5e4a21,_0x475c3c,_0x140f8b){if(_0x5e4a21[_0x38c3('0x4e')]['id']){delete _0x5e4a21['body']['id'];}return db[_0x38c3('0x46')][_0x38c3('0x53')]({'where':{'id':_0x5e4a21['params']['id']}})['then'](handleEntityNotFound(_0x475c3c,null))[_0x38c3('0x19')](function(_0x263201){if(_0x263201){_0x5e4a21[_0x38c3('0x4e')]['AccountId']=_0x263201['id'];_0x5e4a21['body'][_0x38c3('0x57')]=integrations[_0x38c3('0x58')](_0x5e4a21[_0x38c3('0x4e')][_0x38c3('0x59')],_0x5e4a21[_0x38c3('0x4e')]['type']);_0x5e4a21['body']['Descriptions']=integrations[_0x38c3('0x5a')](_0x5e4a21[_0x38c3('0x4e')][_0x38c3('0x59')],_0x5e4a21[_0x38c3('0x4e')]['type']);return db['FreshdeskConfiguration']['create'](_0x5e4a21[_0x38c3('0x4e')],{'include':[{'model':db[_0x38c3('0x5b')],'as':'Subjects'},{'model':db[_0x38c3('0x5b')],'as':_0x38c3('0x5c')}]});}return null;})[_0x38c3('0x19')](respondWithResult(_0x475c3c,null))[_0x38c3('0x4f')](handleError(_0x475c3c,null));};exports[_0x38c3('0x5d')]=function(_0x3a95e1,_0x4d0240,_0x39b9f6){var _0x26d7b4='';return db[_0x38c3('0x46')][_0x38c3('0x53')]({'where':{'id':_0x3a95e1[_0x38c3('0x50')]['id']},'attributes':['id',_0x38c3('0x5e'),_0x38c3('0x5f')]})[_0x38c3('0x19')](handleEntityNotFound(_0x4d0240,null))[_0x38c3('0x19')](function(_0x5f3203){if(_0x5f3203){_0x26d7b4=_0x5f3203[_0x38c3('0x5e')];var _0x38093b=_0x26d7b4['slice'](-0x1);if(_0x38093b==='/'){_0x26d7b4=_0x26d7b4['substring'](0x0,_0x26d7b4[_0x38c3('0x60')](_0x38093b));}return rp({'method':_0x38c3('0x61'),'uri':util[_0x38c3('0x62')](_0x38c3('0x63'),_0x26d7b4,_0x38c3('0x64')),'headers':{'Authorization':util[_0x38c3('0x62')](_0x38c3('0x65'),new Buffer(util[_0x38c3('0x62')](_0x38c3('0x66'),_0x5f3203[_0x38c3('0x5f')]))[_0x38c3('0x67')](_0x38c3('0x68')))},'json':!![]});}})[_0x38c3('0x19')](function(_0x26057a){if(_0x26057a){var _0x5765e1=[_0x38c3('0x69'),_0x38c3('0x6a'),_0x38c3('0x6b'),_0x38c3('0x6c'),_0x38c3('0x24'),'priority',_0x38c3('0x6d'),_0x38c3('0x6e'),_0x38c3('0x6f'),_0x38c3('0x6d'),'company'];_['remove'](_0x26057a,function(_0x2b94e3){return _0x5765e1[_0x38c3('0x70')](_0x2b94e3[_0x38c3('0x2f')])||!_0x2b94e3[_0x38c3('0x71')]&&_0x2b94e3['type']!==_0x38c3('0x72')&&_0x2b94e3[_0x38c3('0x34')]!==_0x38c3('0x73');});return{'count':_0x26057a[_0x38c3('0x54')],'rows':_['map'](_0x26057a,function(_0x549137){return{'id':_0x549137[_0x38c3('0x2f')],'name':_0x549137[_0x38c3('0x74')],'custom':!_0x549137[_0x38c3('0x71')],'options':_0x549137[_0x38c3('0x75')]?_[_0x38c3('0x32')](_0x549137[_0x38c3('0x75')],function(_0x230276){return{'name':_[_0x38c3('0x76')](_0x230276),'value':_0x230276};}):[]};})};}})[_0x38c3('0x19')](respondWithResult(_0x4d0240,null))['catch'](function(_0x16d835){var _0x5d2b9c=_0x3a95e1[_0x38c3('0x37')][_0x38c3('0x77')]?0x1f4:_0x16d835[_0x38c3('0x78')]||0x1f4;logger['error'](_0x38c3('0x79'),_0x38c3('0x5d'),_0x5d2b9c,JSON[_0x38c3('0x1f')](_0x16d835));delete _0x16d835[_0x38c3('0x2f')];if(_0x5d2b9c===0x191){_0x5d2b9c=0x190;}_0x4d0240[_0x38c3('0x24')](_0x5d2b9c)[_0x38c3('0x30')](_0x3a95e1['query'][_0x38c3('0x77')]?{'message':'Wrong\x20credentials','statusCode':_0x16d835[_0x38c3('0x78')]}:_0x16d835);});};