Built motion from commit 9d1906d1.|2.5.40
[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 _0x12c9=['then','includeAll','findAll','catch','show','params','keys','rawAttributes','merge','find','create','body','getConfigurations','findOne','FreshdeskConfiguration','length','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','apiKey','remoteUri','slice','lastIndexOf','GET','%s/%s','format','toString','requester','agent','description','priority','source','ticket_type','remove','default','custom_text','custom_dropdown','label','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','destroy','error','stack','name','send','index','map','FreshdeskAccount','type','key','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','options'];(function(_0x226b83,_0x179575){var _0x4df08c=function(_0x59dab2){while(--_0x59dab2){_0x226b83['push'](_0x226b83['shift']());}};_0x4df08c(++_0x179575);}(_0x12c9,0x9f));var _0x912c=function(_0xb78c72,_0x163da9){_0xb78c72=_0xb78c72-0x0;var _0xa50e3=_0x12c9[_0xb78c72];return _0xa50e3;};'use strict';var emlformat=require(_0x912c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x912c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x912c('0x2'));var moment=require('moment');var BPromise=require(_0x912c('0x3'));var Mustache=require(_0x912c('0x4'));var util=require(_0x912c('0x5'));var path=require(_0x912c('0x6'));var sox=require(_0x912c('0x7'));var csv=require(_0x912c('0x8'));var ejs=require(_0x912c('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x912c('0xa'));var squel=require(_0x912c('0xb'));var crypto=require(_0x912c('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x912c('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x912c('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x912c('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x912c('0x10'))(_0x912c('0x11'));var utils=require(_0x912c('0x12'));var config=require(_0x912c('0x13'));var licenseUtil=require(_0x912c('0x14'));var db=require(_0x912c('0x15'))['db'];var integrations=require(_0x912c('0x16'));function respondWithStatusCode(_0x5644a5,_0x268b42){_0x268b42=_0x268b42||0xcc;return function(_0x2f1a6d){if(_0x2f1a6d){return _0x5644a5[_0x912c('0x17')](_0x268b42);}return _0x5644a5['status'](_0x268b42)['end']();};}function respondWithResult(_0x1cd77b,_0x28142d){_0x28142d=_0x28142d||0xc8;return function(_0x4ff984){if(_0x4ff984){return _0x1cd77b[_0x912c('0x18')](_0x28142d)[_0x912c('0x19')](_0x4ff984);}};}function respondWithFilteredResult(_0x55ae08,_0x4f0c33){return function(_0x114cf){if(_0x114cf){var _0x46e253=typeof _0x4f0c33[_0x912c('0x1a')]==='undefined'&&typeof _0x4f0c33[_0x912c('0x1b')]===_0x912c('0x1c');var _0x23bac6=_0x114cf[_0x912c('0x1d')];var _0x4b5255=_0x46e253?0x0:_0x4f0c33[_0x912c('0x1a')];var _0x1c3af6=_0x46e253?_0x114cf[_0x912c('0x1d')]:_0x4f0c33[_0x912c('0x1a')]+_0x4f0c33['limit'];var _0x30e978;if(_0x1c3af6>=_0x23bac6){_0x1c3af6=_0x23bac6;_0x30e978=0xc8;}else{_0x30e978=0xce;}_0x55ae08[_0x912c('0x18')](_0x30e978);return _0x55ae08[_0x912c('0x1e')](_0x912c('0x1f'),_0x4b5255+'-'+_0x1c3af6+'/'+_0x23bac6)['json'](_0x114cf);}return null;};}function patchUpdates(_0x2a41a2){return function(_0x5115e4){try{jsonpatch[_0x912c('0x20')](_0x5115e4,_0x2a41a2,!![]);}catch(_0x225f5d){return BPromise['reject'](_0x225f5d);}return _0x5115e4[_0x912c('0x21')]();};}function saveUpdates(_0x27f644,_0x2eb96b){return function(_0xbbe0bc){if(_0xbbe0bc){return _0xbbe0bc[_0x912c('0x22')](_0x27f644)['then'](function(_0x35d2f3){return _0x35d2f3;});}return null;};}function removeEntity(_0x16bf68,_0x4e79ba){return function(_0x57f829){if(_0x57f829){return _0x57f829[_0x912c('0x23')]()['then'](function(){_0x16bf68[_0x912c('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x568291,_0x2ef58b){return function(_0x24130c){if(!_0x24130c){_0x568291['sendStatus'](0x194);}return _0x24130c;};}function handleError(_0x5c6348,_0x1f021a){_0x1f021a=_0x1f021a||0x1f4;return function(_0x59b598){logger[_0x912c('0x24')](_0x59b598[_0x912c('0x25')]);if(_0x59b598[_0x912c('0x26')]){delete _0x59b598[_0x912c('0x26')];}_0x5c6348[_0x912c('0x18')](_0x1f021a)[_0x912c('0x27')](_0x59b598);};}exports[_0x912c('0x28')]=function(_0x442ef3,_0xed7b37){var _0x480cc6={},_0xb88293={},_0x17db80={'count':0x0,'rows':[]};var _0x1cf60d=_[_0x912c('0x29')](db[_0x912c('0x2a')]['rawAttributes'],function(_0x49164e){return{'name':_0x49164e['fieldName'],'type':_0x49164e[_0x912c('0x2b')][_0x912c('0x2c')]};});_0xb88293['model']=_[_0x912c('0x29')](_0x1cf60d,_0x912c('0x26'));_0xb88293[_0x912c('0x2d')]=_['keys'](_0x442ef3[_0x912c('0x2d')]);_0xb88293[_0x912c('0x2e')]=_[_0x912c('0x2f')](_0xb88293[_0x912c('0x30')],_0xb88293[_0x912c('0x2d')]);_0x480cc6[_0x912c('0x31')]=_[_0x912c('0x2f')](_0xb88293['model'],qs[_0x912c('0x32')](_0x442ef3[_0x912c('0x2d')]['fields']));_0x480cc6['attributes']=_0x480cc6[_0x912c('0x31')]['length']?_0x480cc6[_0x912c('0x31')]:_0xb88293['model'];if(!_0x442ef3[_0x912c('0x2d')][_0x912c('0x33')](_0x912c('0x34'))){_0x480cc6[_0x912c('0x1b')]=qs[_0x912c('0x1b')](_0x442ef3[_0x912c('0x2d')][_0x912c('0x1b')]);_0x480cc6[_0x912c('0x1a')]=qs[_0x912c('0x1a')](_0x442ef3['query'][_0x912c('0x1a')]);}_0x480cc6[_0x912c('0x35')]=qs['sort'](_0x442ef3[_0x912c('0x2d')][_0x912c('0x36')]);_0x480cc6[_0x912c('0x37')]=qs[_0x912c('0x2e')](_['pick'](_0x442ef3[_0x912c('0x2d')],_0xb88293['filters']),_0x1cf60d);if(_0x442ef3[_0x912c('0x2d')][_0x912c('0x38')]){_0x480cc6[_0x912c('0x37')]=_['merge'](_0x480cc6[_0x912c('0x37')],{'$or':_[_0x912c('0x29')](_0x1cf60d,function(_0x402a00){if(_0x402a00[_0x912c('0x2b')]!==_0x912c('0x39')){var _0x2ec219={};_0x2ec219[_0x402a00[_0x912c('0x26')]]={'$like':'%'+_0x442ef3[_0x912c('0x2d')][_0x912c('0x38')]+'%'};return _0x2ec219;}})});}_0x480cc6=_['merge']({},_0x480cc6,_0x442ef3[_0x912c('0x3a')]);var _0x3022f5={'where':_0x480cc6[_0x912c('0x37')]};return db['FreshdeskAccount'][_0x912c('0x1d')](_0x3022f5)[_0x912c('0x3b')](function(_0x3f6b86){_0x17db80[_0x912c('0x1d')]=_0x3f6b86;if(_0x442ef3['query'][_0x912c('0x3c')]){_0x480cc6['include']=[{'all':!![]}];}return db[_0x912c('0x2a')][_0x912c('0x3d')](_0x480cc6);})['then'](function(_0xe20a7c){_0x17db80['rows']=_0xe20a7c;return _0x17db80;})[_0x912c('0x3b')](respondWithFilteredResult(_0xed7b37,_0x480cc6))[_0x912c('0x3e')](handleError(_0xed7b37,null));};exports[_0x912c('0x3f')]=function(_0x1d4b30,_0x52e870){var _0x320585={'raw':![],'where':{'id':_0x1d4b30[_0x912c('0x40')]['id']}},_0x103bb9={};_0x103bb9[_0x912c('0x30')]=_[_0x912c('0x41')](db[_0x912c('0x2a')][_0x912c('0x42')]);_0x103bb9[_0x912c('0x2d')]=_[_0x912c('0x41')](_0x1d4b30[_0x912c('0x2d')]);_0x103bb9[_0x912c('0x2e')]=_[_0x912c('0x2f')](_0x103bb9[_0x912c('0x30')],_0x103bb9[_0x912c('0x2d')]);_0x320585['attributes']=_[_0x912c('0x2f')](_0x103bb9[_0x912c('0x30')],qs[_0x912c('0x32')](_0x1d4b30['query']['fields']));_0x320585[_0x912c('0x31')]=_0x320585['attributes']['length']?_0x320585[_0x912c('0x31')]:_0x103bb9[_0x912c('0x30')];if(_0x1d4b30[_0x912c('0x2d')][_0x912c('0x3c')]){_0x320585['include']=[{'all':!![]}];}_0x320585=_[_0x912c('0x43')]({},_0x320585,_0x1d4b30[_0x912c('0x3a')]);return db[_0x912c('0x2a')][_0x912c('0x44')](_0x320585)['then'](handleEntityNotFound(_0x52e870,null))[_0x912c('0x3b')](respondWithResult(_0x52e870,null))[_0x912c('0x3e')](handleError(_0x52e870,null));};exports[_0x912c('0x45')]=function(_0x514a89,_0x4785ef){return db[_0x912c('0x2a')][_0x912c('0x45')](_0x514a89['body'],{})[_0x912c('0x3b')](respondWithResult(_0x4785ef,0xc9))[_0x912c('0x3e')](handleError(_0x4785ef,null));};exports['update']=function(_0x31b145,_0x384925){if(_0x31b145['body']['id']){delete _0x31b145[_0x912c('0x46')]['id'];}return db[_0x912c('0x2a')][_0x912c('0x44')]({'where':{'id':_0x31b145[_0x912c('0x40')]['id']}})['then'](handleEntityNotFound(_0x384925,null))[_0x912c('0x3b')](saveUpdates(_0x31b145[_0x912c('0x46')],null))['then'](respondWithResult(_0x384925,null))[_0x912c('0x3e')](handleError(_0x384925,null));};exports['destroy']=function(_0x132ff4,_0x57ff91){return db[_0x912c('0x2a')]['find']({'where':{'id':_0x132ff4[_0x912c('0x40')]['id']}})[_0x912c('0x3b')](handleEntityNotFound(_0x57ff91,null))['then'](removeEntity(_0x57ff91,null))['catch'](handleError(_0x57ff91,null));};exports[_0x912c('0x47')]=function(_0x56199f,_0x21beec,_0x10144d){var _0x27bf95={};var _0x26bc2e={};var _0x30f70c;var _0x565f31;return db[_0x912c('0x2a')][_0x912c('0x48')]({'where':{'id':_0x56199f[_0x912c('0x40')]['id']}})[_0x912c('0x3b')](handleEntityNotFound(_0x21beec,null))[_0x912c('0x3b')](function(_0x48379a){if(_0x48379a){_0x30f70c=_0x48379a;_0x26bc2e[_0x912c('0x30')]=_[_0x912c('0x41')](db[_0x912c('0x49')]['rawAttributes']);_0x26bc2e[_0x912c('0x2d')]=_['keys'](_0x56199f[_0x912c('0x2d')]);_0x26bc2e[_0x912c('0x2e')]=_['intersection'](_0x26bc2e[_0x912c('0x30')],_0x26bc2e[_0x912c('0x2d')]);_0x27bf95['attributes']=_[_0x912c('0x2f')](_0x26bc2e[_0x912c('0x30')],qs['fields'](_0x56199f['query'][_0x912c('0x32')]));_0x27bf95[_0x912c('0x31')]=_0x27bf95[_0x912c('0x31')][_0x912c('0x4a')]?_0x27bf95[_0x912c('0x31')]:_0x26bc2e[_0x912c('0x30')];_0x27bf95[_0x912c('0x35')]=qs[_0x912c('0x36')](_0x56199f['query'][_0x912c('0x36')]);_0x27bf95[_0x912c('0x37')]=qs[_0x912c('0x2e')](_[_0x912c('0x4b')](_0x56199f[_0x912c('0x2d')],_0x26bc2e[_0x912c('0x2e')]));if(_0x56199f[_0x912c('0x2d')][_0x912c('0x38')]){_0x27bf95[_0x912c('0x37')]=_[_0x912c('0x43')](_0x27bf95[_0x912c('0x37')],{'$or':_[_0x912c('0x29')](_0x27bf95[_0x912c('0x31')],function(_0x2f33ca){var _0x17cf23={};_0x17cf23[_0x2f33ca]={'$like':'%'+_0x56199f[_0x912c('0x2d')][_0x912c('0x38')]+'%'};return _0x17cf23;})});}_0x27bf95=_[_0x912c('0x43')]({},_0x27bf95,_0x56199f[_0x912c('0x3a')]);return _0x30f70c[_0x912c('0x47')](_0x27bf95);}})[_0x912c('0x3b')](function(_0x2a5ddd){if(_0x2a5ddd){_0x565f31=_0x2a5ddd[_0x912c('0x4a')];if(!_0x56199f['query'][_0x912c('0x33')]('nolimit')){_0x27bf95[_0x912c('0x1b')]=qs['limit'](_0x56199f[_0x912c('0x2d')][_0x912c('0x1b')]);_0x27bf95[_0x912c('0x1a')]=qs[_0x912c('0x1a')](_0x56199f[_0x912c('0x2d')]['offset']);}return _0x30f70c[_0x912c('0x47')](_0x27bf95);}})['then'](function(_0x8088ac){if(_0x8088ac){return _0x8088ac?{'count':_0x565f31,'rows':_0x8088ac}:null;}})[_0x912c('0x3b')](respondWithResult(_0x21beec,null))[_0x912c('0x3e')](handleError(_0x21beec,null));};exports[_0x912c('0x4c')]=function(_0x45874e,_0x2575e3,_0x13275b){if(_0x45874e[_0x912c('0x46')]['id']){delete _0x45874e['body']['id'];}return db[_0x912c('0x2a')]['findOne']({'where':{'id':_0x45874e[_0x912c('0x40')]['id']}})[_0x912c('0x3b')](handleEntityNotFound(_0x2575e3,null))[_0x912c('0x3b')](function(_0x16f5d5){if(_0x16f5d5){_0x45874e[_0x912c('0x46')][_0x912c('0x4d')]=_0x16f5d5['id'];_0x45874e[_0x912c('0x46')][_0x912c('0x4e')]=integrations[_0x912c('0x4f')](_0x45874e['body'][_0x912c('0x50')],_0x45874e[_0x912c('0x46')]['type']);_0x45874e[_0x912c('0x46')][_0x912c('0x51')]=integrations[_0x912c('0x52')](_0x45874e['body']['channel'],_0x45874e[_0x912c('0x46')]['type']);return db[_0x912c('0x49')]['create'](_0x45874e[_0x912c('0x46')],{'include':[{'model':db['FreshdeskField'],'as':_0x912c('0x4e')},{'model':db[_0x912c('0x53')],'as':_0x912c('0x51')}]});}return null;})['then'](respondWithResult(_0x2575e3,null))[_0x912c('0x3e')](handleError(_0x2575e3,null));};exports['getFields']=function(_0x21759c,_0x32c782,_0x15b806){var _0x4043bc='';return db['FreshdeskAccount'][_0x912c('0x48')]({'where':{'id':_0x21759c[_0x912c('0x40')]['id']},'attributes':['id','remoteUri',_0x912c('0x54')]})[_0x912c('0x3b')](handleEntityNotFound(_0x32c782,null))[_0x912c('0x3b')](function(_0x597ef5){if(_0x597ef5){_0x4043bc=_0x597ef5[_0x912c('0x55')];var _0x498867=_0x4043bc[_0x912c('0x56')](-0x1);if(_0x498867==='/'){_0x4043bc=_0x4043bc['substring'](0x0,_0x4043bc[_0x912c('0x57')](_0x498867));}return rp({'method':_0x912c('0x58'),'uri':util['format'](_0x912c('0x59'),_0x4043bc,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x912c('0x5a')]('Basic\x20%s',new Buffer(util[_0x912c('0x5a')]('%s:X',_0x597ef5['apiKey']))[_0x912c('0x5b')]('base64'))},'json':!![]});}})[_0x912c('0x3b')](function(_0x5e020c){if(_0x5e020c){var _0x38aa4f=[_0x912c('0x5c'),'subject',_0x912c('0x5d'),_0x912c('0x5e'),_0x912c('0x18'),_0x912c('0x5f'),'group',_0x912c('0x60'),_0x912c('0x61'),'group','company'];_[_0x912c('0x62')](_0x5e020c,function(_0x571bd9){return _0x38aa4f['includes'](_0x571bd9[_0x912c('0x26')])||!_0x571bd9[_0x912c('0x63')]&&_0x571bd9['type']!==_0x912c('0x64')&&_0x571bd9[_0x912c('0x2b')]!==_0x912c('0x65');});return{'count':_0x5e020c[_0x912c('0x4a')],'rows':_['map'](_0x5e020c,function(_0xc3c544){return{'id':_0xc3c544['name'],'name':_0xc3c544[_0x912c('0x66')],'custom':!_0xc3c544['default'],'options':_0xc3c544[_0x912c('0x67')]?_[_0x912c('0x29')](_0xc3c544[_0x912c('0x67')],function(_0x356384){return{'name':_[_0x912c('0x68')](_0x356384),'value':_0x356384};}):[]};})};}})[_0x912c('0x3b')](respondWithResult(_0x32c782,null))[_0x912c('0x3e')](function(_0x38f0c4){var _0x30ce94=_0x21759c[_0x912c('0x2d')]['test']?0x1f4:_0x38f0c4[_0x912c('0x69')]||0x1f4;logger[_0x912c('0x24')](_0x912c('0x6a'),'getFields',_0x30ce94,JSON[_0x912c('0x6b')](_0x38f0c4));delete _0x38f0c4[_0x912c('0x26')];if(_0x30ce94===0x191){_0x30ce94=0x190;}_0x32c782[_0x912c('0x18')](_0x30ce94)[_0x912c('0x27')](_0x21759c[_0x912c('0x2d')]['test']?{'message':_0x912c('0x6c'),'statusCode':_0x38f0c4['statusCode']}:_0x38f0c4);});};