5f90f2170a2fcbdddbafba8747358d8617894ce5
[motion2.git] / server / api / intZendeskAccount / intZendeskAccount.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 _0x34b7=['format','%s/%s','ticket_fields','headers','%s:%s','toString','base64','Basic\x20%s','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','description','group','assignee','includes','position','system_field_options','custom_field_options','statusCode','test','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','VIRTUAL','merge','ZendeskAccount','includeAll','include','rows','catch','options','find','create','body','params','getConfigurations','findOne','ZendeskConfiguration','filters','pick','addConfiguration','AccountId','getSubjects','channel','Descriptions','ZendeskField','Subjects','getFields','username','password','token','authType','slice','lastIndexOf','GET'];(function(_0x59cf8a,_0x163bb9){var _0x22dde8=function(_0x59b38a){while(--_0x59b38a){_0x59cf8a['push'](_0x59cf8a['shift']());}};_0x22dde8(++_0x163bb9);}(_0x34b7,0x196));var _0x734b=function(_0x5f2668,_0x29630f){_0x5f2668=_0x5f2668-0x0;var _0x42df13=_0x34b7[_0x5f2668];return _0x42df13;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x734b('0x0'));var zipdir=require(_0x734b('0x1'));var jsonpatch=require(_0x734b('0x2'));var rp=require(_0x734b('0x3'));var moment=require(_0x734b('0x4'));var BPromise=require(_0x734b('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x734b('0x6'));var sox=require(_0x734b('0x7'));var csv=require(_0x734b('0x8'));var ejs=require(_0x734b('0x9'));var fs=require('fs');var _=require(_0x734b('0xa'));var squel=require(_0x734b('0xb'));var crypto=require('crypto');var jsforce=require(_0x734b('0xc'));var deskjs=require(_0x734b('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x734b('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x734b('0xf'));var as=require(_0x734b('0x10'));var hardwareService=require(_0x734b('0x11'));var logger=require(_0x734b('0x12'))(_0x734b('0x13'));var utils=require(_0x734b('0x14'));var config=require(_0x734b('0x15'));var licenseUtil=require(_0x734b('0x16'));var db=require(_0x734b('0x17'))['db'];var integrations=require(_0x734b('0x18'));var jayson=require(_0x734b('0x19'));var client=jayson[_0x734b('0x1a')][_0x734b('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x1c893d,_0x5a5613,_0x18fc18,_0x252510){return new BPromise(function(_0x47791c,_0xd1ab2a){var _0x19f427=_0x252510||client;return _0x19f427[_0x734b('0x1c')](_0x1c893d,_0x18fc18)[_0x734b('0x1d')](function(_0x2c03bd){logger[_0x734b('0x1e')](_0x734b('0x1f'),_0x5a5613,_0x734b('0x20'));logger['debug'](_0x734b('0x21'),_0x5a5613,_0x734b('0x20'),JSON[_0x734b('0x22')](_0x2c03bd));if(_0x2c03bd[_0x734b('0x23')]){if(_0x2c03bd['error']['code']===0x1f4){logger[_0x734b('0x23')](_0x734b('0x1f'),_0x5a5613,_0x2c03bd[_0x734b('0x23')][_0x734b('0x24')]);return _0xd1ab2a(_0x2c03bd[_0x734b('0x23')][_0x734b('0x24')]);}logger[_0x734b('0x23')](_0x734b('0x1f'),_0x5a5613,_0x2c03bd[_0x734b('0x23')][_0x734b('0x24')]);return _0x47791c(_0x2c03bd[_0x734b('0x23')][_0x734b('0x24')]);}else{logger[_0x734b('0x1e')](_0x734b('0x1f'),_0x5a5613,'request\x20sent');_0x47791c(_0x2c03bd[_0x734b('0x25')][_0x734b('0x24')]);}})['catch'](function(_0x38154d){logger[_0x734b('0x23')](_0x734b('0x1f'),_0x5a5613,_0x38154d);_0xd1ab2a(_0x38154d);});});}function respondWithStatusCode(_0x11fb8e,_0x46d432){_0x46d432=_0x46d432||0xcc;return function(_0x26d118){if(_0x26d118){return _0x11fb8e[_0x734b('0x26')](_0x46d432);}return _0x11fb8e[_0x734b('0x27')](_0x46d432)[_0x734b('0x28')]();};}function respondWithResult(_0x3abbe6,_0x44ffa9){_0x44ffa9=_0x44ffa9||0xc8;return function(_0x148abe){if(_0x148abe){return _0x3abbe6[_0x734b('0x27')](_0x44ffa9)['json'](_0x148abe);}};}function respondWithFilteredResult(_0x49732b,_0x13cc5a){return function(_0x3680a0){if(_0x3680a0){var _0x47a0a9=_0x3680a0[_0x734b('0x29')],_0x32ea00=_0x13cc5a[_0x734b('0x2a')],_0x2dd51a=_0x13cc5a[_0x734b('0x2a')]+_0x13cc5a[_0x734b('0x2b')],_0x1d8e51;if(_0x2dd51a>=_0x47a0a9){_0x2dd51a=_0x47a0a9;_0x1d8e51=0xc8;}else{_0x1d8e51=0xce;}_0x49732b['status'](_0x1d8e51);return _0x49732b[_0x734b('0x2c')](_0x734b('0x2d'),_0x32ea00+'-'+_0x2dd51a+'/'+_0x47a0a9)[_0x734b('0x2e')](_0x3680a0);}return null;};}function patchUpdates(_0x241c89){return function(_0x729431){try{jsonpatch[_0x734b('0x2f')](_0x729431,_0x241c89,!![]);}catch(_0x1fed72){return BPromise[_0x734b('0x30')](_0x1fed72);}return _0x729431[_0x734b('0x31')]();};}function saveUpdates(_0x3065b0,_0x5dcabf){return function(_0xe999c5){if(_0xe999c5){return _0xe999c5[_0x734b('0x32')](_0x3065b0)['then'](function(_0xbbe037){return _0xbbe037;});}return null;};}function removeEntity(_0x3cfce2,_0xf4ef21){return function(_0x2fe7d5){if(_0x2fe7d5){return _0x2fe7d5[_0x734b('0x33')]()[_0x734b('0x1d')](function(){_0x3cfce2[_0x734b('0x27')](0xcc)[_0x734b('0x28')]();});}};}function handleEntityNotFound(_0x1e53fb,_0x17c6e0){return function(_0x24ef4f){if(!_0x24ef4f){_0x1e53fb[_0x734b('0x26')](0x194);}return _0x24ef4f;};}function handleError(_0xab8aa6,_0x34a851){_0x34a851=_0x34a851||0x1f4;return function(_0x4512fc){logger['error'](_0x4512fc[_0x734b('0x34')]);if(_0x4512fc['name']){delete _0x4512fc[_0x734b('0x35')];}_0xab8aa6[_0x734b('0x27')](_0x34a851)[_0x734b('0x36')](_0x4512fc);};}exports[_0x734b('0x37')]=function(_0x19f94d,_0x16ab66){var _0x55bd2e={},_0x5da77e={},_0x3460a0={'count':0x0,'rows':[]};var _0x5ee908=_[_0x734b('0x38')](db['ZendeskAccount'][_0x734b('0x39')],function(_0x4b30eb){return{'name':_0x4b30eb[_0x734b('0x3a')],'type':_0x4b30eb['type'][_0x734b('0x3b')]};});_0x5da77e[_0x734b('0x3c')]=_[_0x734b('0x38')](_0x5ee908,_0x734b('0x35'));_0x5da77e[_0x734b('0x3d')]=_[_0x734b('0x3e')](_0x19f94d[_0x734b('0x3d')]);_0x5da77e['filters']=_[_0x734b('0x3f')](_0x5da77e[_0x734b('0x3c')],_0x5da77e['query']);_0x55bd2e[_0x734b('0x40')]=_[_0x734b('0x3f')](_0x5da77e[_0x734b('0x3c')],qs[_0x734b('0x41')](_0x19f94d['query'][_0x734b('0x41')]));_0x55bd2e[_0x734b('0x40')]=_0x55bd2e['attributes'][_0x734b('0x42')]?_0x55bd2e[_0x734b('0x40')]:_0x5da77e['model'];if(!_0x19f94d[_0x734b('0x3d')][_0x734b('0x43')](_0x734b('0x44'))){_0x55bd2e[_0x734b('0x2b')]=qs['limit'](_0x19f94d['query'][_0x734b('0x2b')]);_0x55bd2e['offset']=qs['offset'](_0x19f94d[_0x734b('0x3d')]['offset']);}_0x55bd2e[_0x734b('0x45')]=qs['sort'](_0x19f94d[_0x734b('0x3d')][_0x734b('0x46')]);_0x55bd2e[_0x734b('0x47')]=qs['filters'](_['pick'](_0x19f94d[_0x734b('0x3d')],_0x5da77e['filters']),_0x5ee908);if(_0x19f94d['query'][_0x734b('0x48')]){_0x55bd2e[_0x734b('0x47')]=_['merge'](_0x55bd2e[_0x734b('0x47')],{'$or':_['map'](_0x5ee908,function(_0x2e5208){if(_0x2e5208[_0x734b('0x49')]!==_0x734b('0x4a')){var _0x5430cf={};_0x5430cf[_0x2e5208[_0x734b('0x35')]]={'$like':'%'+_0x19f94d[_0x734b('0x3d')][_0x734b('0x48')]+'%'};return _0x5430cf;}})});}_0x55bd2e=_[_0x734b('0x4b')]({},_0x55bd2e,_0x19f94d['options']);var _0x5b84c8={'where':_0x55bd2e['where']};return db[_0x734b('0x4c')]['count'](_0x5b84c8)['then'](function(_0x1625ff){_0x3460a0['count']=_0x1625ff;if(_0x19f94d[_0x734b('0x3d')][_0x734b('0x4d')]){_0x55bd2e[_0x734b('0x4e')]=[{'all':!![]}];}return db[_0x734b('0x4c')]['findAll'](_0x55bd2e);})[_0x734b('0x1d')](function(_0x503a6b){_0x3460a0[_0x734b('0x4f')]=_0x503a6b;return _0x3460a0;})[_0x734b('0x1d')](respondWithFilteredResult(_0x16ab66,_0x55bd2e))[_0x734b('0x50')](handleError(_0x16ab66,null));};exports['show']=function(_0x370326,_0x4c3efb){var _0x357ae4={'raw':![],'where':{'id':_0x370326['params']['id']}},_0x331a87={};_0x331a87[_0x734b('0x3c')]=_[_0x734b('0x3e')](db[_0x734b('0x4c')][_0x734b('0x39')]);_0x331a87[_0x734b('0x3d')]=_['keys'](_0x370326[_0x734b('0x3d')]);_0x331a87['filters']=_[_0x734b('0x3f')](_0x331a87['model'],_0x331a87[_0x734b('0x3d')]);_0x357ae4[_0x734b('0x40')]=_[_0x734b('0x3f')](_0x331a87[_0x734b('0x3c')],qs[_0x734b('0x41')](_0x370326['query']['fields']));_0x357ae4['attributes']=_0x357ae4[_0x734b('0x40')][_0x734b('0x42')]?_0x357ae4['attributes']:_0x331a87[_0x734b('0x3c')];if(_0x370326[_0x734b('0x3d')]['includeAll']){_0x357ae4[_0x734b('0x4e')]=[{'all':!![]}];}_0x357ae4=_[_0x734b('0x4b')]({},_0x357ae4,_0x370326[_0x734b('0x51')]);return db['ZendeskAccount'][_0x734b('0x52')](_0x357ae4)[_0x734b('0x1d')](handleEntityNotFound(_0x4c3efb,null))[_0x734b('0x1d')](respondWithResult(_0x4c3efb,null))[_0x734b('0x50')](handleError(_0x4c3efb,null));};exports['create']=function(_0x44cc7d,_0x44e654){return db[_0x734b('0x4c')][_0x734b('0x53')](_0x44cc7d['body'],{})[_0x734b('0x1d')](respondWithResult(_0x44e654,0xc9))['catch'](handleError(_0x44e654,null));};exports[_0x734b('0x32')]=function(_0x3e3f98,_0x1f3594){if(_0x3e3f98[_0x734b('0x54')]['id']){delete _0x3e3f98['body']['id'];}return db[_0x734b('0x4c')][_0x734b('0x52')]({'where':{'id':_0x3e3f98['params']['id']}})['then'](handleEntityNotFound(_0x1f3594,null))[_0x734b('0x1d')](saveUpdates(_0x3e3f98['body'],null))[_0x734b('0x1d')](respondWithResult(_0x1f3594,null))[_0x734b('0x50')](handleError(_0x1f3594,null));};exports[_0x734b('0x33')]=function(_0x5eddd9,_0x1ad7f1){return db['ZendeskAccount'][_0x734b('0x52')]({'where':{'id':_0x5eddd9[_0x734b('0x55')]['id']}})[_0x734b('0x1d')](handleEntityNotFound(_0x1ad7f1,null))[_0x734b('0x1d')](removeEntity(_0x1ad7f1,null))['catch'](handleError(_0x1ad7f1,null));};exports[_0x734b('0x56')]=function(_0x50224e,_0x6b198c,_0x415a52){var _0x52e45={};var _0x59b7d8={};var _0x18e187;var _0x55c699;return db[_0x734b('0x4c')][_0x734b('0x57')]({'where':{'id':_0x50224e[_0x734b('0x55')]['id']}})[_0x734b('0x1d')](handleEntityNotFound(_0x6b198c,null))['then'](function(_0x35f742){if(_0x35f742){_0x18e187=_0x35f742;_0x59b7d8['model']=_[_0x734b('0x3e')](db[_0x734b('0x58')][_0x734b('0x39')]);_0x59b7d8['query']=_[_0x734b('0x3e')](_0x50224e[_0x734b('0x3d')]);_0x59b7d8[_0x734b('0x59')]=_[_0x734b('0x3f')](_0x59b7d8[_0x734b('0x3c')],_0x59b7d8[_0x734b('0x3d')]);_0x52e45[_0x734b('0x40')]=_['intersection'](_0x59b7d8[_0x734b('0x3c')],qs[_0x734b('0x41')](_0x50224e[_0x734b('0x3d')]['fields']));_0x52e45['attributes']=_0x52e45[_0x734b('0x40')][_0x734b('0x42')]?_0x52e45[_0x734b('0x40')]:_0x59b7d8[_0x734b('0x3c')];_0x52e45['order']=qs['sort'](_0x50224e['query'][_0x734b('0x46')]);_0x52e45[_0x734b('0x47')]=qs[_0x734b('0x59')](_[_0x734b('0x5a')](_0x50224e[_0x734b('0x3d')],_0x59b7d8[_0x734b('0x59')]));if(_0x50224e[_0x734b('0x3d')][_0x734b('0x48')]){_0x52e45[_0x734b('0x47')]=_[_0x734b('0x4b')](_0x52e45[_0x734b('0x47')],{'$or':_[_0x734b('0x38')](_0x52e45[_0x734b('0x40')],function(_0x467b1){var _0x35be77={};_0x35be77[_0x467b1]={'$like':'%'+_0x50224e[_0x734b('0x3d')][_0x734b('0x48')]+'%'};return _0x35be77;})});}_0x52e45=_[_0x734b('0x4b')]({},_0x52e45,_0x50224e[_0x734b('0x51')]);return _0x18e187[_0x734b('0x56')](_0x52e45);}})[_0x734b('0x1d')](function(_0x591d5e){if(_0x591d5e){_0x55c699=_0x591d5e[_0x734b('0x42')];if(!_0x50224e[_0x734b('0x3d')][_0x734b('0x43')](_0x734b('0x44'))){_0x52e45[_0x734b('0x2b')]=qs['limit'](_0x50224e[_0x734b('0x3d')][_0x734b('0x2b')]);_0x52e45[_0x734b('0x2a')]=qs[_0x734b('0x2a')](_0x50224e[_0x734b('0x3d')][_0x734b('0x2a')]);}return _0x18e187['getConfigurations'](_0x52e45);}})['then'](function(_0x48645f){if(_0x48645f){return _0x48645f?{'count':_0x55c699,'rows':_0x48645f}:null;}})['then'](respondWithResult(_0x6b198c,null))['catch'](handleError(_0x6b198c,null));};exports[_0x734b('0x5b')]=function(_0x30ffea,_0x16c9d2,_0xb23b61){if(_0x30ffea['body']['id']){delete _0x30ffea['body']['id'];}return db[_0x734b('0x4c')][_0x734b('0x57')]({'where':{'id':_0x30ffea[_0x734b('0x55')]['id']}})[_0x734b('0x1d')](handleEntityNotFound(_0x16c9d2,null))['then'](function(_0x3b364c){if(_0x3b364c){_0x30ffea[_0x734b('0x54')][_0x734b('0x5c')]=_0x3b364c['id'];_0x30ffea[_0x734b('0x54')]['Subjects']=integrations[_0x734b('0x5d')](_0x30ffea['body'][_0x734b('0x5e')],_0x30ffea[_0x734b('0x54')][_0x734b('0x49')]);_0x30ffea[_0x734b('0x54')][_0x734b('0x5f')]=integrations['getDescriptions'](_0x30ffea[_0x734b('0x54')][_0x734b('0x5e')],_0x30ffea[_0x734b('0x54')][_0x734b('0x49')]);return db[_0x734b('0x58')]['create'](_0x30ffea[_0x734b('0x54')],{'include':[{'model':db[_0x734b('0x60')],'as':_0x734b('0x61')},{'model':db[_0x734b('0x60')],'as':'Descriptions'}]});}return null;})[_0x734b('0x1d')](respondWithResult(_0x16c9d2,null))[_0x734b('0x50')](handleError(_0x16c9d2,null));};exports[_0x734b('0x62')]=function(_0x407006,_0x2182fd,_0x5c2222){var _0x3303c2='';return db['ZendeskAccount'][_0x734b('0x57')]({'where':{'id':_0x407006[_0x734b('0x55')]['id']},'attributes':['id',_0x734b('0x63'),_0x734b('0x64'),_0x734b('0x65'),_0x734b('0x66'),'remoteUri']})['then'](handleEntityNotFound(_0x2182fd,null))['then'](function(_0x470938){if(_0x470938){_0x3303c2=_0x470938['remoteUri'];var _0x2efbe1=_0x3303c2[_0x734b('0x67')](-0x1);if(_0x2efbe1==='/'){_0x3303c2=_0x3303c2['substring'](0x0,_0x3303c2[_0x734b('0x68')](_0x2efbe1));}var _0x3ec9e1={'method':_0x734b('0x69'),'uri':util[_0x734b('0x6a')](_0x734b('0x6b'),_0x3303c2,_0x734b('0x6c')),'json':!![]};switch(_0x470938[_0x734b('0x66')]){case _0x734b('0x64'):_0x3ec9e1[_0x734b('0x6d')]={'Authorization':util[_0x734b('0x6a')]('Basic\x20%s',new Buffer(util[_0x734b('0x6a')](_0x734b('0x6e'),_0x470938[_0x734b('0x63')],_0x470938['password']))[_0x734b('0x6f')](_0x734b('0x70')))};break;case _0x734b('0x65'):_0x3ec9e1[_0x734b('0x6d')]={'Authorization':util[_0x734b('0x6a')](_0x734b('0x71'),new Buffer(util[_0x734b('0x6a')](_0x734b('0x72'),_0x470938['username'],_0x470938[_0x734b('0x65')]))[_0x734b('0x6f')](_0x734b('0x70')))};break;default:throw new db[(_0x734b('0x73'))][(_0x734b('0x74'))](_0x734b('0x75'));}return rp(_0x3ec9e1);}})[_0x734b('0x1d')](function(_0x9106c9){if(_0x9106c9){var _0x599a20=['subject',_0x734b('0x76'),_0x734b('0x77'),_0x734b('0x78')];_['remove'](_0x9106c9[_0x734b('0x6c')],function(_0x2fde66){return _0x599a20[_0x734b('0x79')](_0x2fde66[_0x734b('0x49')]);});return{'count':_0x9106c9[_0x734b('0x6c')][_0x734b('0x42')],'rows':_['map'](_0x9106c9[_0x734b('0x6c')],function(_0x55f880){return{'id':_0x55f880['id'],'name':_0x55f880['position']>0x7?_0x55f880['title']:_0x55f880['type'],'custom':_0x55f880[_0x734b('0x7a')]>0x7?!![]:![],'options':_0x55f880[_0x734b('0x7b')]?_0x55f880[_0x734b('0x7b')]:_0x55f880[_0x734b('0x7c')]?_0x55f880['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x2182fd,null))[_0x734b('0x50')](function(_0x4c5b70){var _0x3243f7=_0x407006[_0x734b('0x3d')]['test']?0x1f4:_0x4c5b70[_0x734b('0x7d')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x3243f7,JSON[_0x734b('0x22')](_0x4c5b70));delete _0x4c5b70[_0x734b('0x35')];if(_0x3243f7===0x191){_0x3243f7=0x190;}_0x2182fd[_0x734b('0x27')](_0x3243f7)[_0x734b('0x36')](_0x407006['query'][_0x734b('0x7e')]?{'message':_0x734b('0x7f'),'statusCode':_0x4c5b70['statusCode']}:_0x4c5b70);});};