e3b1e83046b981b2f653039d3ee53ffffac8a088
[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 _0x915a=['result','sendStatus','end','status','json','count','offset','limit','Content-Range','apply','save','update','destroy','stack','name','send','ZendeskAccount','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','ZendeskConfiguration','map','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username','password','authType','remoteUri','slice','substring','GET','Basic\x20%s','format','%s:%s','base64','token','headers','%s/token:%s','toString','Sequelize','ValidationError','subject','description','assignee','remove','ticket_fields','includes','position','title','system_field_options','custom_field_options','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../components/integrations/configuration','client','request','then','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info'];(function(_0x130990,_0x38a2b1){var _0x111fe8=function(_0x8608d4){while(--_0x8608d4){_0x130990['push'](_0x130990['shift']());}};_0x111fe8(++_0x38a2b1);}(_0x915a,0x1d2));var _0xa915=function(_0x755111,_0x1926a0){_0x755111=_0x755111-0x0;var _0x4bd1ff=_0x915a[_0x755111];return _0x4bd1ff;};'use strict';var pdf=require(_0xa915('0x0'));var emlformat=require(_0xa915('0x1'));var rimraf=require(_0xa915('0x2'));var zipdir=require(_0xa915('0x3'));var jsonpatch=require(_0xa915('0x4'));var rp=require('request-promise');var moment=require(_0xa915('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xa915('0x6'));var path=require(_0xa915('0x7'));var sox=require(_0xa915('0x8'));var csv=require(_0xa915('0x9'));var ejs=require(_0xa915('0xa'));var fs=require('fs');var _=require(_0xa915('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa915('0xc'));var deskjs=require(_0xa915('0xd'));var toCsv=require(_0xa915('0x9'));var querystring=require(_0xa915('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa915('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa915('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa915('0x11'))(_0xa915('0x12'));var utils=require(_0xa915('0x13'));var config=require(_0xa915('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xa915('0x15'));var jayson=require('jayson/promise');var client=jayson[_0xa915('0x16')]['http']({'port':0x232a});function respondWithRpcPromise(_0xb897e2,_0x3aae6f,_0x22b588,_0x21d782){return new BPromise(function(_0x3ecf23,_0x229a83){var _0x4c3f35=_0x21d782||client;return _0x4c3f35[_0xa915('0x17')](_0xb897e2,_0x22b588)[_0xa915('0x18')](function(_0xf9f02c){logger['info'](_0xa915('0x19'),_0x3aae6f,_0xa915('0x1a'));logger[_0xa915('0x1b')](_0xa915('0x1c'),_0x3aae6f,_0xa915('0x1a'),JSON[_0xa915('0x1d')](_0xf9f02c));if(_0xf9f02c[_0xa915('0x1e')]){if(_0xf9f02c[_0xa915('0x1e')][_0xa915('0x1f')]===0x1f4){logger[_0xa915('0x1e')](_0xa915('0x19'),_0x3aae6f,_0xf9f02c['error'][_0xa915('0x20')]);return _0x229a83(_0xf9f02c['error'][_0xa915('0x20')]);}logger[_0xa915('0x1e')](_0xa915('0x19'),_0x3aae6f,_0xf9f02c[_0xa915('0x1e')][_0xa915('0x20')]);return _0x3ecf23(_0xf9f02c['error'][_0xa915('0x20')]);}else{logger[_0xa915('0x21')](_0xa915('0x19'),_0x3aae6f,_0xa915('0x1a'));_0x3ecf23(_0xf9f02c[_0xa915('0x22')][_0xa915('0x20')]);}})['catch'](function(_0x401207){logger[_0xa915('0x1e')](_0xa915('0x19'),_0x3aae6f,_0x401207);_0x229a83(_0x401207);});});}function respondWithStatusCode(_0x23515d,_0x5a3eac){_0x5a3eac=_0x5a3eac||0xcc;return function(_0x52471d){if(_0x52471d){return _0x23515d[_0xa915('0x23')](_0x5a3eac);}return _0x23515d['status'](_0x5a3eac)[_0xa915('0x24')]();};}function respondWithResult(_0x3b8cbb,_0x3898cc){_0x3898cc=_0x3898cc||0xc8;return function(_0x462b94){if(_0x462b94){return _0x3b8cbb[_0xa915('0x25')](_0x3898cc)[_0xa915('0x26')](_0x462b94);}};}function respondWithFilteredResult(_0x116246,_0x525f55){return function(_0x152d6e){if(_0x152d6e){var _0x1bb9e4=_0x152d6e[_0xa915('0x27')],_0x5cd3f2=_0x525f55[_0xa915('0x28')],_0x1bee59=_0x525f55['offset']+_0x525f55[_0xa915('0x29')],_0x1645d5;if(_0x1bee59>=_0x1bb9e4){_0x1bee59=_0x1bb9e4;_0x1645d5=0xc8;}else{_0x1645d5=0xce;}_0x116246[_0xa915('0x25')](_0x1645d5);return _0x116246['set'](_0xa915('0x2a'),_0x5cd3f2+'-'+_0x1bee59+'/'+_0x1bb9e4)[_0xa915('0x26')](_0x152d6e);}return null;};}function patchUpdates(_0x13aea0){return function(_0x2f847e){try{jsonpatch[_0xa915('0x2b')](_0x2f847e,_0x13aea0,!![]);}catch(_0x1a0276){return BPromise['reject'](_0x1a0276);}return _0x2f847e[_0xa915('0x2c')]();};}function saveUpdates(_0x319238,_0x119d36){return function(_0x501bf1){if(_0x501bf1){return _0x501bf1[_0xa915('0x2d')](_0x319238)[_0xa915('0x18')](function(_0x430fa6){return _0x430fa6;});}return null;};}function removeEntity(_0x4a367d,_0x3e20c8){return function(_0x39482f){if(_0x39482f){return _0x39482f[_0xa915('0x2e')]()[_0xa915('0x18')](function(){_0x4a367d['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2cf0f0,_0x3dc789){return function(_0x267b3f){if(!_0x267b3f){_0x2cf0f0['sendStatus'](0x194);}return _0x267b3f;};}function handleError(_0xe82283,_0x4fcb1c){_0x4fcb1c=_0x4fcb1c||0x1f4;return function(_0x680b13){logger[_0xa915('0x1e')](_0x680b13[_0xa915('0x2f')]);if(_0x680b13[_0xa915('0x30')]){delete _0x680b13[_0xa915('0x30')];}_0xe82283[_0xa915('0x25')](_0x4fcb1c)[_0xa915('0x31')](_0x680b13);};}exports['index']=function(_0x252643,_0x3ab97d){var _0x42a0f7={},_0x10edbf={},_0x67cec1={'count':0x0,'rows':[]};var _0x3bc4d0=_['map'](db[_0xa915('0x32')][_0xa915('0x33')],function(_0xb327ce){return{'name':_0xb327ce[_0xa915('0x34')],'type':_0xb327ce[_0xa915('0x35')][_0xa915('0x36')]};});_0x10edbf[_0xa915('0x37')]=_['map'](_0x3bc4d0,'name');_0x10edbf['query']=_[_0xa915('0x38')](_0x252643[_0xa915('0x39')]);_0x10edbf[_0xa915('0x3a')]=_[_0xa915('0x3b')](_0x10edbf[_0xa915('0x37')],_0x10edbf[_0xa915('0x39')]);_0x42a0f7[_0xa915('0x3c')]=_[_0xa915('0x3b')](_0x10edbf[_0xa915('0x37')],qs[_0xa915('0x3d')](_0x252643[_0xa915('0x39')][_0xa915('0x3d')]));_0x42a0f7[_0xa915('0x3c')]=_0x42a0f7[_0xa915('0x3c')][_0xa915('0x3e')]?_0x42a0f7['attributes']:_0x10edbf[_0xa915('0x37')];if(!_0x252643[_0xa915('0x39')][_0xa915('0x3f')](_0xa915('0x40'))){_0x42a0f7[_0xa915('0x29')]=qs['limit'](_0x252643[_0xa915('0x39')][_0xa915('0x29')]);_0x42a0f7[_0xa915('0x28')]=qs[_0xa915('0x28')](_0x252643['query'][_0xa915('0x28')]);}_0x42a0f7[_0xa915('0x41')]=qs[_0xa915('0x42')](_0x252643[_0xa915('0x39')][_0xa915('0x42')]);_0x42a0f7[_0xa915('0x43')]=qs[_0xa915('0x3a')](_[_0xa915('0x44')](_0x252643['query'],_0x10edbf[_0xa915('0x3a')]),_0x3bc4d0);if(_0x252643[_0xa915('0x39')][_0xa915('0x45')]){_0x42a0f7[_0xa915('0x43')]=_['merge'](_0x42a0f7[_0xa915('0x43')],{'$or':_['map'](_0x3bc4d0,function(_0x41606e){if(_0x41606e[_0xa915('0x35')]!=='VIRTUAL'){var _0x1d266c={};_0x1d266c[_0x41606e['name']]={'$like':'%'+_0x252643['query'][_0xa915('0x45')]+'%'};return _0x1d266c;}})});}_0x42a0f7=_[_0xa915('0x46')]({},_0x42a0f7,_0x252643[_0xa915('0x47')]);var _0x1c2293={'where':_0x42a0f7[_0xa915('0x43')]};return db[_0xa915('0x32')]['count'](_0x1c2293)[_0xa915('0x18')](function(_0x6cc2c5){_0x67cec1[_0xa915('0x27')]=_0x6cc2c5;if(_0x252643[_0xa915('0x39')][_0xa915('0x48')]){_0x42a0f7[_0xa915('0x49')]=[{'all':!![]}];}return db[_0xa915('0x32')][_0xa915('0x4a')](_0x42a0f7);})['then'](function(_0x4e2df0){_0x67cec1[_0xa915('0x4b')]=_0x4e2df0;return _0x67cec1;})[_0xa915('0x18')](respondWithFilteredResult(_0x3ab97d,_0x42a0f7))[_0xa915('0x4c')](handleError(_0x3ab97d,null));};exports[_0xa915('0x4d')]=function(_0x19bb91,_0x22b82d){var _0x4cba1e={'raw':![],'where':{'id':_0x19bb91[_0xa915('0x4e')]['id']}},_0x263c4a={};_0x263c4a[_0xa915('0x37')]=_[_0xa915('0x38')](db[_0xa915('0x32')][_0xa915('0x33')]);_0x263c4a[_0xa915('0x39')]=_[_0xa915('0x38')](_0x19bb91['query']);_0x263c4a[_0xa915('0x3a')]=_[_0xa915('0x3b')](_0x263c4a[_0xa915('0x37')],_0x263c4a[_0xa915('0x39')]);_0x4cba1e[_0xa915('0x3c')]=_[_0xa915('0x3b')](_0x263c4a[_0xa915('0x37')],qs[_0xa915('0x3d')](_0x19bb91[_0xa915('0x39')][_0xa915('0x3d')]));_0x4cba1e['attributes']=_0x4cba1e['attributes']['length']?_0x4cba1e[_0xa915('0x3c')]:_0x263c4a[_0xa915('0x37')];if(_0x19bb91[_0xa915('0x39')][_0xa915('0x48')]){_0x4cba1e['include']=[{'all':!![]}];}_0x4cba1e=_[_0xa915('0x46')]({},_0x4cba1e,_0x19bb91[_0xa915('0x47')]);return db[_0xa915('0x32')][_0xa915('0x4f')](_0x4cba1e)[_0xa915('0x18')](handleEntityNotFound(_0x22b82d,null))[_0xa915('0x18')](respondWithResult(_0x22b82d,null))[_0xa915('0x4c')](handleError(_0x22b82d,null));};exports['create']=function(_0x43b5b9,_0xf156df){return db[_0xa915('0x32')][_0xa915('0x50')](_0x43b5b9[_0xa915('0x51')],{})['then'](respondWithResult(_0xf156df,0xc9))[_0xa915('0x4c')](handleError(_0xf156df,null));};exports['update']=function(_0x5a2362,_0x4c6f0d){if(_0x5a2362[_0xa915('0x51')]['id']){delete _0x5a2362[_0xa915('0x51')]['id'];}return db[_0xa915('0x32')][_0xa915('0x4f')]({'where':{'id':_0x5a2362['params']['id']}})[_0xa915('0x18')](handleEntityNotFound(_0x4c6f0d,null))[_0xa915('0x18')](saveUpdates(_0x5a2362[_0xa915('0x51')],null))[_0xa915('0x18')](respondWithResult(_0x4c6f0d,null))[_0xa915('0x4c')](handleError(_0x4c6f0d,null));};exports[_0xa915('0x2e')]=function(_0x1286e7,_0x459500){return db[_0xa915('0x32')][_0xa915('0x4f')]({'where':{'id':_0x1286e7[_0xa915('0x4e')]['id']}})['then'](handleEntityNotFound(_0x459500,null))[_0xa915('0x18')](removeEntity(_0x459500,null))[_0xa915('0x4c')](handleError(_0x459500,null));};exports[_0xa915('0x52')]=function(_0x3f281c,_0x2efa4d,_0x34cc2b){var _0x29cb0d={};var _0x534d20={};var _0x4fe0d8;var _0x2d8031;return db[_0xa915('0x32')]['findOne']({'where':{'id':_0x3f281c[_0xa915('0x4e')]['id']}})[_0xa915('0x18')](handleEntityNotFound(_0x2efa4d,null))['then'](function(_0x3370e4){if(_0x3370e4){_0x4fe0d8=_0x3370e4;_0x534d20[_0xa915('0x37')]=_['keys'](db[_0xa915('0x53')][_0xa915('0x33')]);_0x534d20['query']=_[_0xa915('0x38')](_0x3f281c[_0xa915('0x39')]);_0x534d20[_0xa915('0x3a')]=_[_0xa915('0x3b')](_0x534d20['model'],_0x534d20['query']);_0x29cb0d[_0xa915('0x3c')]=_[_0xa915('0x3b')](_0x534d20[_0xa915('0x37')],qs[_0xa915('0x3d')](_0x3f281c[_0xa915('0x39')][_0xa915('0x3d')]));_0x29cb0d[_0xa915('0x3c')]=_0x29cb0d[_0xa915('0x3c')]['length']?_0x29cb0d[_0xa915('0x3c')]:_0x534d20[_0xa915('0x37')];_0x29cb0d[_0xa915('0x41')]=qs[_0xa915('0x42')](_0x3f281c[_0xa915('0x39')][_0xa915('0x42')]);_0x29cb0d[_0xa915('0x43')]=qs[_0xa915('0x3a')](_[_0xa915('0x44')](_0x3f281c['query'],_0x534d20[_0xa915('0x3a')]));if(_0x3f281c[_0xa915('0x39')][_0xa915('0x45')]){_0x29cb0d[_0xa915('0x43')]=_['merge'](_0x29cb0d[_0xa915('0x43')],{'$or':_[_0xa915('0x54')](_0x29cb0d[_0xa915('0x3c')],function(_0x104e1f){var _0x451cf9={};_0x451cf9[_0x104e1f]={'$like':'%'+_0x3f281c[_0xa915('0x39')]['filter']+'%'};return _0x451cf9;})});}_0x29cb0d=_[_0xa915('0x46')]({},_0x29cb0d,_0x3f281c['options']);return _0x4fe0d8[_0xa915('0x52')](_0x29cb0d);}})[_0xa915('0x18')](function(_0x362204){if(_0x362204){_0x2d8031=_0x362204[_0xa915('0x3e')];if(!_0x3f281c[_0xa915('0x39')][_0xa915('0x3f')](_0xa915('0x40'))){_0x29cb0d[_0xa915('0x29')]=qs['limit'](_0x3f281c[_0xa915('0x39')][_0xa915('0x29')]);_0x29cb0d['offset']=qs[_0xa915('0x28')](_0x3f281c[_0xa915('0x39')][_0xa915('0x28')]);}return _0x4fe0d8[_0xa915('0x52')](_0x29cb0d);}})[_0xa915('0x18')](function(_0x28f724){if(_0x28f724){return _0x28f724?{'count':_0x2d8031,'rows':_0x28f724}:null;}})[_0xa915('0x18')](respondWithResult(_0x2efa4d,null))[_0xa915('0x4c')](handleError(_0x2efa4d,null));};exports[_0xa915('0x55')]=function(_0x5c69fe,_0x4fa2e6,_0x1add21){if(_0x5c69fe['body']['id']){delete _0x5c69fe['body']['id'];}return db[_0xa915('0x32')][_0xa915('0x56')]({'where':{'id':_0x5c69fe[_0xa915('0x4e')]['id']}})[_0xa915('0x18')](handleEntityNotFound(_0x4fa2e6,null))[_0xa915('0x18')](function(_0x427890){if(_0x427890){_0x5c69fe[_0xa915('0x51')][_0xa915('0x57')]=_0x427890['id'];_0x5c69fe[_0xa915('0x51')][_0xa915('0x58')]=integrations[_0xa915('0x59')](_0x5c69fe['body'][_0xa915('0x5a')],_0x5c69fe[_0xa915('0x51')][_0xa915('0x35')]);_0x5c69fe['body'][_0xa915('0x5b')]=integrations[_0xa915('0x5c')](_0x5c69fe[_0xa915('0x51')][_0xa915('0x5a')],_0x5c69fe[_0xa915('0x51')]['type']);return db[_0xa915('0x53')][_0xa915('0x50')](_0x5c69fe['body'],{'include':[{'model':db[_0xa915('0x5d')],'as':'Subjects'},{'model':db[_0xa915('0x5d')],'as':_0xa915('0x5b')}]});}return null;})[_0xa915('0x18')](respondWithResult(_0x4fa2e6,null))[_0xa915('0x4c')](handleError(_0x4fa2e6,null));};exports[_0xa915('0x5e')]=function(_0x3104f7,_0x2c9553,_0x317887){var _0x80a555='';return db['ZendeskAccount']['findOne']({'where':{'id':_0x3104f7[_0xa915('0x4e')]['id']},'attributes':['id',_0xa915('0x5f'),_0xa915('0x60'),'token',_0xa915('0x61'),_0xa915('0x62')]})[_0xa915('0x18')](handleEntityNotFound(_0x2c9553,null))[_0xa915('0x18')](function(_0x5d8d44){if(_0x5d8d44){_0x80a555=_0x5d8d44[_0xa915('0x62')];var _0x518263=_0x80a555[_0xa915('0x63')](-0x1);if(_0x518263==='/'){_0x80a555=_0x80a555[_0xa915('0x64')](0x0,_0x80a555['lastIndexOf'](_0x518263));}var _0x398f4c={'method':_0xa915('0x65'),'uri':util['format']('%s/%s',_0x80a555,'ticket_fields'),'json':!![]};switch(_0x5d8d44[_0xa915('0x61')]){case _0xa915('0x60'):_0x398f4c['headers']={'Authorization':util['format'](_0xa915('0x66'),new Buffer(util[_0xa915('0x67')](_0xa915('0x68'),_0x5d8d44[_0xa915('0x5f')],_0x5d8d44[_0xa915('0x60')]))['toString'](_0xa915('0x69')))};break;case _0xa915('0x6a'):_0x398f4c[_0xa915('0x6b')]={'Authorization':util[_0xa915('0x67')]('Basic\x20%s',new Buffer(util['format'](_0xa915('0x6c'),_0x5d8d44[_0xa915('0x5f')],_0x5d8d44[_0xa915('0x6a')]))[_0xa915('0x6d')](_0xa915('0x69')))};break;default:throw new db[(_0xa915('0x6e'))][(_0xa915('0x6f'))]('Unknown\x20authentication\x20type');}return rp(_0x398f4c);}})[_0xa915('0x18')](function(_0x578915){if(_0x578915){var _0x31099f=[_0xa915('0x70'),_0xa915('0x71'),'group',_0xa915('0x72')];_[_0xa915('0x73')](_0x578915[_0xa915('0x74')],function(_0x113717){return _0x31099f[_0xa915('0x75')](_0x113717[_0xa915('0x35')]);});return{'count':_0x578915[_0xa915('0x74')][_0xa915('0x3e')],'rows':_[_0xa915('0x54')](_0x578915['ticket_fields'],function(_0x1cc72f){return{'id':_0x1cc72f['id'],'name':_0x1cc72f[_0xa915('0x76')]>0x7?_0x1cc72f[_0xa915('0x77')]:_0x1cc72f['type'],'custom':_0x1cc72f[_0xa915('0x76')]>0x7?!![]:![],'options':_0x1cc72f[_0xa915('0x78')]?_0x1cc72f['system_field_options']:_0x1cc72f[_0xa915('0x79')]?_0x1cc72f['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x2c9553,null))[_0xa915('0x4c')](function(_0x3b0e9e){var _0x2b6d51=_0x3104f7['query'][_0xa915('0x7a')]?0x1f4:_0x3b0e9e[_0xa915('0x7b')]||0x1f4;logger[_0xa915('0x1e')]('getFields,\x20%s,\x20%s,\x20%s',_0xa915('0x5e'),_0x2b6d51,JSON[_0xa915('0x1d')](_0x3b0e9e));delete _0x3b0e9e[_0xa915('0x30')];if(_0x2b6d51===0x191){_0x2b6d51=0x190;}_0x2c9553[_0xa915('0x25')](_0x2b6d51)[_0xa915('0x31')](_0x3104f7[_0xa915('0x39')][_0xa915('0x7a')]?{'message':_0xa915('0x7c'),'statusCode':_0x3b0e9e[_0xa915('0x7b')]}:_0x3b0e9e);});};