c1eac7b35d422ba611cda655be71de2bdc3214b9
[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 _0xd820=['zip-dir','fast-json-patch','bluebird','mustache','util','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/integrations/configuration','jayson/promise','client','request','then','info','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','ZendeskAccount,\x20%s,\x20%s','message','result','catch','sendStatus','end','status','json','count','offset','limit','set','apply','reject','save','stack','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','model','query','intersection','fields','attributes','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','params','keys','length','create','body','update','find','findOne','ZendeskConfiguration','filters','getConfigurations','hasOwnProperty','addConfiguration','AccountId','Descriptions','getDescriptions','channel','ZendeskField','Subjects','getFields','username','password','token','remoteUri','slice','substring','GET','format','ticket_fields','authType','headers','Basic\x20%s','toString','base64','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','includes','position','title','system_field_options','custom_field_options','test','Wrong\x20credentials','statusCode','html-pdf','eml-format'];(function(_0x4b7d7b,_0x231865){var _0x27b8d0=function(_0x37c32e){while(--_0x37c32e){_0x4b7d7b['push'](_0x4b7d7b['shift']());}};_0x27b8d0(++_0x231865);}(_0xd820,0x16f));var _0x0d82=function(_0x1e0335,_0x23d0aa){_0x1e0335=_0x1e0335-0x0;var _0x50de13=_0xd820[_0x1e0335];return _0x50de13;};'use strict';var pdf=require(_0x0d82('0x0'));var emlformat=require(_0x0d82('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x0d82('0x2'));var jsonpatch=require(_0x0d82('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x0d82('0x4'));var Mustache=require(_0x0d82('0x5'));var util=require(_0x0d82('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x0d82('0x7'));var ejs=require(_0x0d82('0x8'));var fs=require('fs');var _=require(_0x0d82('0x9'));var squel=require(_0x0d82('0xa'));var crypto=require('crypto');var jsforce=require(_0x0d82('0xb'));var deskjs=require(_0x0d82('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0d82('0xd'));var Redis=require(_0x0d82('0xe'));var authService=require(_0x0d82('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0d82('0x10'));var logger=require(_0x0d82('0x11'))(_0x0d82('0x12'));var utils=require(_0x0d82('0x13'));var config=require(_0x0d82('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x0d82('0x15'));var jayson=require(_0x0d82('0x16'));var client=jayson[_0x0d82('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0xfaa66d,_0x32a435,_0x8fe5e1,_0x3ad9dd){return new BPromise(function(_0x288020,_0x11e218){var _0x407a09=_0x3ad9dd||client;return _0x407a09[_0x0d82('0x18')](_0xfaa66d,_0x8fe5e1)[_0x0d82('0x19')](function(_0x55415f){logger[_0x0d82('0x1a')]('ZendeskAccount,\x20%s,\x20%s',_0x32a435,_0x0d82('0x1b'));logger['debug'](_0x0d82('0x1c'),_0x32a435,_0x0d82('0x1b'),JSON[_0x0d82('0x1d')](_0x55415f));if(_0x55415f[_0x0d82('0x1e')]){if(_0x55415f[_0x0d82('0x1e')][_0x0d82('0x1f')]===0x1f4){logger[_0x0d82('0x1e')](_0x0d82('0x20'),_0x32a435,_0x55415f[_0x0d82('0x1e')][_0x0d82('0x21')]);return _0x11e218(_0x55415f[_0x0d82('0x1e')][_0x0d82('0x21')]);}logger[_0x0d82('0x1e')](_0x0d82('0x20'),_0x32a435,_0x55415f['error']['message']);return _0x288020(_0x55415f[_0x0d82('0x1e')][_0x0d82('0x21')]);}else{logger[_0x0d82('0x1a')]('ZendeskAccount,\x20%s,\x20%s',_0x32a435,'request\x20sent');_0x288020(_0x55415f[_0x0d82('0x22')][_0x0d82('0x21')]);}})[_0x0d82('0x23')](function(_0xf9809a){logger[_0x0d82('0x1e')](_0x0d82('0x20'),_0x32a435,_0xf9809a);_0x11e218(_0xf9809a);});});}function respondWithStatusCode(_0x4a2d4d,_0xb04794){_0xb04794=_0xb04794||0xcc;return function(_0x22a85a){if(_0x22a85a){return _0x4a2d4d[_0x0d82('0x24')](_0xb04794);}return _0x4a2d4d['status'](_0xb04794)[_0x0d82('0x25')]();};}function respondWithResult(_0x105c9a,_0x35a614){_0x35a614=_0x35a614||0xc8;return function(_0x51b5a1){if(_0x51b5a1){return _0x105c9a[_0x0d82('0x26')](_0x35a614)[_0x0d82('0x27')](_0x51b5a1);}};}function respondWithFilteredResult(_0xa636f0,_0x5b3307){return function(_0x3258cf){if(_0x3258cf){var _0xc4f851=_0x3258cf[_0x0d82('0x28')],_0x46751f=_0x5b3307['offset'],_0x389623=_0x5b3307[_0x0d82('0x29')]+_0x5b3307[_0x0d82('0x2a')],_0x279da9;if(_0x389623>=_0xc4f851){_0x389623=_0xc4f851;_0x279da9=0xc8;}else{_0x279da9=0xce;}_0xa636f0[_0x0d82('0x26')](_0x279da9);return _0xa636f0[_0x0d82('0x2b')]('Content-Range',_0x46751f+'-'+_0x389623+'/'+_0xc4f851)[_0x0d82('0x27')](_0x3258cf);}return null;};}function patchUpdates(_0x293276){return function(_0xfa03a4){try{jsonpatch[_0x0d82('0x2c')](_0xfa03a4,_0x293276,!![]);}catch(_0x30477f){return BPromise[_0x0d82('0x2d')](_0x30477f);}return _0xfa03a4[_0x0d82('0x2e')]();};}function saveUpdates(_0x4ae2ce,_0x20e2a2){return function(_0x4425ce){if(_0x4425ce){return _0x4425ce['update'](_0x4ae2ce)[_0x0d82('0x19')](function(_0x55b457){return _0x55b457;});}return null;};}function removeEntity(_0x1e0228,_0x24314f){return function(_0x1660ed){if(_0x1660ed){return _0x1660ed['destroy']()[_0x0d82('0x19')](function(){_0x1e0228[_0x0d82('0x26')](0xcc)[_0x0d82('0x25')]();});}};}function handleEntityNotFound(_0x5933fa,_0x25631b){return function(_0x1e31c2){if(!_0x1e31c2){_0x5933fa[_0x0d82('0x24')](0x194);}return _0x1e31c2;};}function handleError(_0x48dc33,_0x417559){_0x417559=_0x417559||0x1f4;return function(_0x302f8c){logger['error'](_0x302f8c[_0x0d82('0x2f')]);if(_0x302f8c['name']){delete _0x302f8c[_0x0d82('0x30')];}_0x48dc33[_0x0d82('0x26')](_0x417559)[_0x0d82('0x31')](_0x302f8c);};}exports[_0x0d82('0x32')]=function(_0x1d11c5,_0x16a4ac){var _0xf3b434={},_0x19cdb7={},_0x453723={'count':0x0,'rows':[]};var _0x1adf23=_[_0x0d82('0x33')](db[_0x0d82('0x34')][_0x0d82('0x35')],function(_0x11d0b7){return{'name':_0x11d0b7[_0x0d82('0x36')],'type':_0x11d0b7[_0x0d82('0x37')][_0x0d82('0x38')]};});_0x19cdb7[_0x0d82('0x39')]=_[_0x0d82('0x33')](_0x1adf23,_0x0d82('0x30'));_0x19cdb7[_0x0d82('0x3a')]=_['keys'](_0x1d11c5[_0x0d82('0x3a')]);_0x19cdb7['filters']=_[_0x0d82('0x3b')](_0x19cdb7[_0x0d82('0x39')],_0x19cdb7[_0x0d82('0x3a')]);_0xf3b434['attributes']=_['intersection'](_0x19cdb7[_0x0d82('0x39')],qs[_0x0d82('0x3c')](_0x1d11c5[_0x0d82('0x3a')][_0x0d82('0x3c')]));_0xf3b434['attributes']=_0xf3b434[_0x0d82('0x3d')]['length']?_0xf3b434[_0x0d82('0x3d')]:_0x19cdb7[_0x0d82('0x39')];if(!_0x1d11c5[_0x0d82('0x3a')]['hasOwnProperty'](_0x0d82('0x3e'))){_0xf3b434[_0x0d82('0x2a')]=qs[_0x0d82('0x2a')](_0x1d11c5[_0x0d82('0x3a')][_0x0d82('0x2a')]);_0xf3b434['offset']=qs[_0x0d82('0x29')](_0x1d11c5[_0x0d82('0x3a')][_0x0d82('0x29')]);}_0xf3b434[_0x0d82('0x3f')]=qs['sort'](_0x1d11c5['query'][_0x0d82('0x40')]);_0xf3b434[_0x0d82('0x41')]=qs['filters'](_[_0x0d82('0x42')](_0x1d11c5[_0x0d82('0x3a')],_0x19cdb7['filters']),_0x1adf23);if(_0x1d11c5[_0x0d82('0x3a')][_0x0d82('0x43')]){_0xf3b434['where']=_[_0x0d82('0x44')](_0xf3b434[_0x0d82('0x41')],{'$or':_[_0x0d82('0x33')](_0x1adf23,function(_0xbada26){if(_0xbada26['type']!=='VIRTUAL'){var _0x51ff47={};_0x51ff47[_0xbada26[_0x0d82('0x30')]]={'$like':'%'+_0x1d11c5[_0x0d82('0x3a')]['filter']+'%'};return _0x51ff47;}})});}_0xf3b434=_['merge']({},_0xf3b434,_0x1d11c5[_0x0d82('0x45')]);var _0x4ac162={'where':_0xf3b434[_0x0d82('0x41')]};return db['ZendeskAccount'][_0x0d82('0x28')](_0x4ac162)[_0x0d82('0x19')](function(_0x2b72aa){_0x453723['count']=_0x2b72aa;if(_0x1d11c5[_0x0d82('0x3a')][_0x0d82('0x46')]){_0xf3b434[_0x0d82('0x47')]=[{'all':!![]}];}return db[_0x0d82('0x34')]['findAll'](_0xf3b434);})[_0x0d82('0x19')](function(_0x3949ae){_0x453723[_0x0d82('0x48')]=_0x3949ae;return _0x453723;})[_0x0d82('0x19')](respondWithFilteredResult(_0x16a4ac,_0xf3b434))[_0x0d82('0x23')](handleError(_0x16a4ac,null));};exports['show']=function(_0x3978f5,_0x217fc6){var _0x17caf3={'raw':![],'where':{'id':_0x3978f5[_0x0d82('0x49')]['id']}},_0x5968ae={};_0x5968ae[_0x0d82('0x39')]=_[_0x0d82('0x4a')](db[_0x0d82('0x34')]['rawAttributes']);_0x5968ae[_0x0d82('0x3a')]=_['keys'](_0x3978f5[_0x0d82('0x3a')]);_0x5968ae['filters']=_[_0x0d82('0x3b')](_0x5968ae[_0x0d82('0x39')],_0x5968ae['query']);_0x17caf3['attributes']=_['intersection'](_0x5968ae[_0x0d82('0x39')],qs['fields'](_0x3978f5[_0x0d82('0x3a')][_0x0d82('0x3c')]));_0x17caf3[_0x0d82('0x3d')]=_0x17caf3['attributes'][_0x0d82('0x4b')]?_0x17caf3['attributes']:_0x5968ae[_0x0d82('0x39')];if(_0x3978f5[_0x0d82('0x3a')][_0x0d82('0x46')]){_0x17caf3[_0x0d82('0x47')]=[{'all':!![]}];}_0x17caf3=_[_0x0d82('0x44')]({},_0x17caf3,_0x3978f5[_0x0d82('0x45')]);return db['ZendeskAccount']['find'](_0x17caf3)['then'](handleEntityNotFound(_0x217fc6,null))[_0x0d82('0x19')](respondWithResult(_0x217fc6,null))[_0x0d82('0x23')](handleError(_0x217fc6,null));};exports[_0x0d82('0x4c')]=function(_0x257051,_0x1a0874){return db[_0x0d82('0x34')][_0x0d82('0x4c')](_0x257051[_0x0d82('0x4d')],{})[_0x0d82('0x19')](respondWithResult(_0x1a0874,0xc9))[_0x0d82('0x23')](handleError(_0x1a0874,null));};exports[_0x0d82('0x4e')]=function(_0x7b37ca,_0x29a3f0){if(_0x7b37ca[_0x0d82('0x4d')]['id']){delete _0x7b37ca[_0x0d82('0x4d')]['id'];}return db[_0x0d82('0x34')]['find']({'where':{'id':_0x7b37ca[_0x0d82('0x49')]['id']}})[_0x0d82('0x19')](handleEntityNotFound(_0x29a3f0,null))[_0x0d82('0x19')](saveUpdates(_0x7b37ca[_0x0d82('0x4d')],null))[_0x0d82('0x19')](respondWithResult(_0x29a3f0,null))[_0x0d82('0x23')](handleError(_0x29a3f0,null));};exports['destroy']=function(_0x3a391f,_0x26003b){return db[_0x0d82('0x34')][_0x0d82('0x4f')]({'where':{'id':_0x3a391f[_0x0d82('0x49')]['id']}})['then'](handleEntityNotFound(_0x26003b,null))[_0x0d82('0x19')](removeEntity(_0x26003b,null))[_0x0d82('0x23')](handleError(_0x26003b,null));};exports['getConfigurations']=function(_0x5964d7,_0x27874b,_0xca84ab){var _0x1d1dce={};var _0x924fc7={};var _0x9e6dd0;var _0x19cdfa;return db[_0x0d82('0x34')][_0x0d82('0x50')]({'where':{'id':_0x5964d7['params']['id']}})[_0x0d82('0x19')](handleEntityNotFound(_0x27874b,null))['then'](function(_0xc145a0){if(_0xc145a0){_0x9e6dd0=_0xc145a0;_0x924fc7[_0x0d82('0x39')]=_[_0x0d82('0x4a')](db[_0x0d82('0x51')][_0x0d82('0x35')]);_0x924fc7['query']=_[_0x0d82('0x4a')](_0x5964d7['query']);_0x924fc7[_0x0d82('0x52')]=_[_0x0d82('0x3b')](_0x924fc7[_0x0d82('0x39')],_0x924fc7[_0x0d82('0x3a')]);_0x1d1dce[_0x0d82('0x3d')]=_[_0x0d82('0x3b')](_0x924fc7['model'],qs[_0x0d82('0x3c')](_0x5964d7[_0x0d82('0x3a')][_0x0d82('0x3c')]));_0x1d1dce[_0x0d82('0x3d')]=_0x1d1dce[_0x0d82('0x3d')][_0x0d82('0x4b')]?_0x1d1dce['attributes']:_0x924fc7[_0x0d82('0x39')];_0x1d1dce[_0x0d82('0x3f')]=qs['sort'](_0x5964d7[_0x0d82('0x3a')][_0x0d82('0x40')]);_0x1d1dce[_0x0d82('0x41')]=qs[_0x0d82('0x52')](_[_0x0d82('0x42')](_0x5964d7['query'],_0x924fc7[_0x0d82('0x52')]));if(_0x5964d7[_0x0d82('0x3a')]['filter']){_0x1d1dce[_0x0d82('0x41')]=_['merge'](_0x1d1dce[_0x0d82('0x41')],{'$or':_[_0x0d82('0x33')](_0x1d1dce[_0x0d82('0x3d')],function(_0x2d7875){var _0x1ae949={};_0x1ae949[_0x2d7875]={'$like':'%'+_0x5964d7[_0x0d82('0x3a')]['filter']+'%'};return _0x1ae949;})});}_0x1d1dce=_[_0x0d82('0x44')]({},_0x1d1dce,_0x5964d7['options']);return _0x9e6dd0[_0x0d82('0x53')](_0x1d1dce);}})[_0x0d82('0x19')](function(_0x585dc2){if(_0x585dc2){_0x19cdfa=_0x585dc2[_0x0d82('0x4b')];if(!_0x5964d7[_0x0d82('0x3a')][_0x0d82('0x54')](_0x0d82('0x3e'))){_0x1d1dce[_0x0d82('0x2a')]=qs[_0x0d82('0x2a')](_0x5964d7[_0x0d82('0x3a')][_0x0d82('0x2a')]);_0x1d1dce[_0x0d82('0x29')]=qs['offset'](_0x5964d7['query'][_0x0d82('0x29')]);}return _0x9e6dd0[_0x0d82('0x53')](_0x1d1dce);}})['then'](function(_0x45a836){if(_0x45a836){return _0x45a836?{'count':_0x19cdfa,'rows':_0x45a836}:null;}})[_0x0d82('0x19')](respondWithResult(_0x27874b,null))[_0x0d82('0x23')](handleError(_0x27874b,null));};exports[_0x0d82('0x55')]=function(_0x49c893,_0x4c1072,_0x425a88){if(_0x49c893[_0x0d82('0x4d')]['id']){delete _0x49c893[_0x0d82('0x4d')]['id'];}return db['ZendeskAccount']['findOne']({'where':{'id':_0x49c893[_0x0d82('0x49')]['id']}})[_0x0d82('0x19')](handleEntityNotFound(_0x4c1072,null))[_0x0d82('0x19')](function(_0x48ab7b){if(_0x48ab7b){_0x49c893[_0x0d82('0x4d')][_0x0d82('0x56')]=_0x48ab7b['id'];_0x49c893['body']['Subjects']=integrations['getSubjects'](_0x49c893[_0x0d82('0x4d')]['channel'],_0x49c893[_0x0d82('0x4d')][_0x0d82('0x37')]);_0x49c893[_0x0d82('0x4d')][_0x0d82('0x57')]=integrations[_0x0d82('0x58')](_0x49c893[_0x0d82('0x4d')][_0x0d82('0x59')],_0x49c893['body'][_0x0d82('0x37')]);return db[_0x0d82('0x51')]['create'](_0x49c893['body'],{'include':[{'model':db[_0x0d82('0x5a')],'as':_0x0d82('0x5b')},{'model':db['ZendeskField'],'as':'Descriptions'}]});}return null;})[_0x0d82('0x19')](respondWithResult(_0x4c1072,null))[_0x0d82('0x23')](handleError(_0x4c1072,null));};exports[_0x0d82('0x5c')]=function(_0x9dddc2,_0x1a970a,_0x5ee601){var _0x5963e6='';return db[_0x0d82('0x34')][_0x0d82('0x50')]({'where':{'id':_0x9dddc2[_0x0d82('0x49')]['id']},'attributes':['id',_0x0d82('0x5d'),_0x0d82('0x5e'),_0x0d82('0x5f'),'authType',_0x0d82('0x60')]})[_0x0d82('0x19')](handleEntityNotFound(_0x1a970a,null))[_0x0d82('0x19')](function(_0x36e931){if(_0x36e931){_0x5963e6=_0x36e931[_0x0d82('0x60')];var _0x3fba0b=_0x5963e6[_0x0d82('0x61')](-0x1);if(_0x3fba0b==='/'){_0x5963e6=_0x5963e6[_0x0d82('0x62')](0x0,_0x5963e6['lastIndexOf'](_0x3fba0b));}var _0x27108c={'method':_0x0d82('0x63'),'uri':util[_0x0d82('0x64')]('%s/%s',_0x5963e6,_0x0d82('0x65')),'json':!![]};switch(_0x36e931[_0x0d82('0x66')]){case'password':_0x27108c[_0x0d82('0x67')]={'Authorization':util['format'](_0x0d82('0x68'),new Buffer(util[_0x0d82('0x64')]('%s:%s',_0x36e931[_0x0d82('0x5d')],_0x36e931['password']))[_0x0d82('0x69')](_0x0d82('0x6a')))};break;case _0x0d82('0x5f'):_0x27108c['headers']={'Authorization':util['format'](_0x0d82('0x68'),new Buffer(util[_0x0d82('0x64')](_0x0d82('0x6b'),_0x36e931[_0x0d82('0x5d')],_0x36e931['token']))['toString'](_0x0d82('0x6a')))};break;default:throw new db[(_0x0d82('0x6c'))][(_0x0d82('0x6d'))](_0x0d82('0x6e'));}return rp(_0x27108c);}})[_0x0d82('0x19')](function(_0x3a513a){if(_0x3a513a){var _0x50a6a5=[_0x0d82('0x6f'),_0x0d82('0x70'),_0x0d82('0x71'),_0x0d82('0x72')];_['remove'](_0x3a513a[_0x0d82('0x65')],function(_0x5eecda){return _0x50a6a5[_0x0d82('0x73')](_0x5eecda[_0x0d82('0x37')]);});return{'count':_0x3a513a[_0x0d82('0x65')][_0x0d82('0x4b')],'rows':_[_0x0d82('0x33')](_0x3a513a[_0x0d82('0x65')],function(_0x5af3fb){return{'id':_0x5af3fb['id'],'name':_0x5af3fb[_0x0d82('0x74')]>0x7?_0x5af3fb[_0x0d82('0x75')]:_0x5af3fb[_0x0d82('0x37')],'custom':_0x5af3fb['position']>0x7?!![]:![],'options':_0x5af3fb[_0x0d82('0x76')]?_0x5af3fb[_0x0d82('0x76')]:_0x5af3fb[_0x0d82('0x77')]?_0x5af3fb[_0x0d82('0x77')]:[]};})};}})[_0x0d82('0x19')](respondWithResult(_0x1a970a,null))[_0x0d82('0x23')](function(_0x12d508){var _0x3cd80e=_0x9dddc2[_0x0d82('0x3a')][_0x0d82('0x78')]?0x1f4:_0x12d508['statusCode']||0x1f4;logger[_0x0d82('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0x0d82('0x5c'),_0x3cd80e,JSON[_0x0d82('0x1d')](_0x12d508));delete _0x12d508[_0x0d82('0x30')];if(_0x3cd80e===0x191){_0x3cd80e=0x190;}_0x1a970a[_0x0d82('0x26')](_0x3cd80e)['send'](_0x9dddc2[_0x0d82('0x3a')]['test']?{'message':_0x0d82('0x79'),'statusCode':_0x12d508[_0x0d82('0x7a')]}:_0x12d508);});};