Built motion from commit (unavailable).|2.5.22
[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 _0x2621=['save','update','destroy','end','sendStatus','send','index','map','ZendeskAccount','rawAttributes','key','model','query','attributes','fields','order','sort','where','filters','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','keys','intersection','find','create','body','params','getConfigurations','findOne','ZendeskConfiguration','length','pick','hasOwnProperty','addConfiguration','Subjects','channel','Descriptions','getDescriptions','ZendeskField','username','password','token','authType','remoteUri','slice','substring','lastIndexOf','GET','format','ticket_fields','headers','%s:%s','toString','base64','Basic\x20%s','%s/token:%s','Sequelize','ValidationError','subject','description','group','assignee','includes','title','position','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','name','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','request','then','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','ZendeskAccount,\x20%s,\x20%s','status','json','count','offset','limit','set','apply','reject'];(function(_0x1a73c6,_0x1c7624){var _0x31908b=function(_0xe6fecd){while(--_0xe6fecd){_0x1a73c6['push'](_0x1a73c6['shift']());}};_0x31908b(++_0x1c7624);}(_0x2621,0x1d2));var _0x1262=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2621[_0x14add3];return _0x4a174f;};'use strict';var pdf=require(_0x1262('0x0'));var emlformat=require(_0x1262('0x1'));var rimraf=require(_0x1262('0x2'));var zipdir=require(_0x1262('0x3'));var jsonpatch=require(_0x1262('0x4'));var rp=require(_0x1262('0x5'));var moment=require(_0x1262('0x6'));var BPromise=require(_0x1262('0x7'));var Mustache=require(_0x1262('0x8'));var util=require(_0x1262('0x9'));var path=require(_0x1262('0xa'));var sox=require(_0x1262('0xb'));var csv=require(_0x1262('0xc'));var ejs=require(_0x1262('0xd'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1262('0xe'));var crypto=require('crypto');var jsforce=require(_0x1262('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1262('0xc'));var querystring=require(_0x1262('0x10'));var Papa=require(_0x1262('0x11'));var Redis=require('ioredis');var authService=require(_0x1262('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x1262('0x13'));var hardwareService=require(_0x1262('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x1262('0x15'));var config=require(_0x1262('0x16'));var licenseUtil=require(_0x1262('0x17'));var db=require(_0x1262('0x18'))['db'];var integrations=require(_0x1262('0x19'));var jayson=require(_0x1262('0x1a'));var client=jayson['client'][_0x1262('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x16ee80,_0x1e5837,_0x566bb2,_0x36b4ee){return new BPromise(function(_0x3a66b0,_0x4bb535){var _0x58df0c=_0x36b4ee||client;return _0x58df0c[_0x1262('0x1c')](_0x16ee80,_0x566bb2)[_0x1262('0x1d')](function(_0x5a91b7){logger[_0x1262('0x1e')]('ZendeskAccount,\x20%s,\x20%s',_0x1e5837,_0x1262('0x1f'));logger[_0x1262('0x20')](_0x1262('0x21'),_0x1e5837,_0x1262('0x1f'),JSON[_0x1262('0x22')](_0x5a91b7));if(_0x5a91b7[_0x1262('0x23')]){if(_0x5a91b7[_0x1262('0x23')]['code']===0x1f4){logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x1e5837,_0x5a91b7[_0x1262('0x23')][_0x1262('0x24')]);return _0x4bb535(_0x5a91b7['error']['message']);}logger[_0x1262('0x23')](_0x1262('0x25'),_0x1e5837,_0x5a91b7['error'][_0x1262('0x24')]);return _0x3a66b0(_0x5a91b7[_0x1262('0x23')][_0x1262('0x24')]);}else{logger['info']('ZendeskAccount,\x20%s,\x20%s',_0x1e5837,_0x1262('0x1f'));_0x3a66b0(_0x5a91b7['result']['message']);}})['catch'](function(_0x1fe803){logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x1e5837,_0x1fe803);_0x4bb535(_0x1fe803);});});}function respondWithStatusCode(_0x2aa124,_0x386b91){_0x386b91=_0x386b91||0xcc;return function(_0x5b6786){if(_0x5b6786){return _0x2aa124['sendStatus'](_0x386b91);}return _0x2aa124[_0x1262('0x26')](_0x386b91)['end']();};}function respondWithResult(_0x4e8b70,_0x343bd1){_0x343bd1=_0x343bd1||0xc8;return function(_0x4e285e){if(_0x4e285e){return _0x4e8b70[_0x1262('0x26')](_0x343bd1)[_0x1262('0x27')](_0x4e285e);}};}function respondWithFilteredResult(_0x167db1,_0xac1fb6){return function(_0x26af44){if(_0x26af44){var _0x3b6533=_0x26af44[_0x1262('0x28')],_0x3044f6=_0xac1fb6[_0x1262('0x29')],_0x1229da=_0xac1fb6[_0x1262('0x29')]+_0xac1fb6[_0x1262('0x2a')],_0x39a53b;if(_0x1229da>=_0x3b6533){_0x1229da=_0x3b6533;_0x39a53b=0xc8;}else{_0x39a53b=0xce;}_0x167db1[_0x1262('0x26')](_0x39a53b);return _0x167db1[_0x1262('0x2b')]('Content-Range',_0x3044f6+'-'+_0x1229da+'/'+_0x3b6533)[_0x1262('0x27')](_0x26af44);}return null;};}function patchUpdates(_0x179b32){return function(_0x58af53){try{jsonpatch[_0x1262('0x2c')](_0x58af53,_0x179b32,!![]);}catch(_0x53c596){return BPromise[_0x1262('0x2d')](_0x53c596);}return _0x58af53[_0x1262('0x2e')]();};}function saveUpdates(_0x37e5a0,_0x2fe4ba){return function(_0x341488){if(_0x341488){return _0x341488[_0x1262('0x2f')](_0x37e5a0)[_0x1262('0x1d')](function(_0x331bc7){return _0x331bc7;});}return null;};}function removeEntity(_0x2a58d1,_0x5465fd){return function(_0x135b12){if(_0x135b12){return _0x135b12[_0x1262('0x30')]()['then'](function(){_0x2a58d1[_0x1262('0x26')](0xcc)[_0x1262('0x31')]();});}};}function handleEntityNotFound(_0x190bf0,_0x1ac818){return function(_0x5c05b4){if(!_0x5c05b4){_0x190bf0[_0x1262('0x32')](0x194);}return _0x5c05b4;};}function handleError(_0x108627,_0x12fd63){_0x12fd63=_0x12fd63||0x1f4;return function(_0x5f4d25){logger[_0x1262('0x23')](_0x5f4d25['stack']);if(_0x5f4d25['name']){delete _0x5f4d25['name'];}_0x108627[_0x1262('0x26')](_0x12fd63)[_0x1262('0x33')](_0x5f4d25);};}exports[_0x1262('0x34')]=function(_0x52a815,_0x57bb3b){var _0xb4275e={},_0x4540a2={},_0x29b931={'count':0x0,'rows':[]};var _0x1df965=_[_0x1262('0x35')](db[_0x1262('0x36')][_0x1262('0x37')],function(_0x35b70c){return{'name':_0x35b70c['fieldName'],'type':_0x35b70c['type'][_0x1262('0x38')]};});_0x4540a2[_0x1262('0x39')]=_[_0x1262('0x35')](_0x1df965,'name');_0x4540a2[_0x1262('0x3a')]=_['keys'](_0x52a815[_0x1262('0x3a')]);_0x4540a2['filters']=_['intersection'](_0x4540a2['model'],_0x4540a2[_0x1262('0x3a')]);_0xb4275e[_0x1262('0x3b')]=_['intersection'](_0x4540a2[_0x1262('0x39')],qs['fields'](_0x52a815[_0x1262('0x3a')][_0x1262('0x3c')]));_0xb4275e['attributes']=_0xb4275e[_0x1262('0x3b')]['length']?_0xb4275e[_0x1262('0x3b')]:_0x4540a2[_0x1262('0x39')];if(!_0x52a815[_0x1262('0x3a')]['hasOwnProperty']('nolimit')){_0xb4275e['limit']=qs[_0x1262('0x2a')](_0x52a815[_0x1262('0x3a')][_0x1262('0x2a')]);_0xb4275e[_0x1262('0x29')]=qs[_0x1262('0x29')](_0x52a815[_0x1262('0x3a')][_0x1262('0x29')]);}_0xb4275e[_0x1262('0x3d')]=qs[_0x1262('0x3e')](_0x52a815[_0x1262('0x3a')][_0x1262('0x3e')]);_0xb4275e[_0x1262('0x3f')]=qs[_0x1262('0x40')](_['pick'](_0x52a815['query'],_0x4540a2['filters']),_0x1df965);if(_0x52a815['query']['filter']){_0xb4275e['where']=_[_0x1262('0x41')](_0xb4275e[_0x1262('0x3f')],{'$or':_['map'](_0x1df965,function(_0x56440a){if(_0x56440a[_0x1262('0x42')]!==_0x1262('0x43')){var _0x6d9c73={};_0x6d9c73[_0x56440a['name']]={'$like':'%'+_0x52a815[_0x1262('0x3a')][_0x1262('0x44')]+'%'};return _0x6d9c73;}})});}_0xb4275e=_[_0x1262('0x41')]({},_0xb4275e,_0x52a815[_0x1262('0x45')]);var _0x3bd2b7={'where':_0xb4275e[_0x1262('0x3f')]};return db[_0x1262('0x36')]['count'](_0x3bd2b7)[_0x1262('0x1d')](function(_0x26fce9){_0x29b931[_0x1262('0x28')]=_0x26fce9;if(_0x52a815[_0x1262('0x3a')][_0x1262('0x46')]){_0xb4275e[_0x1262('0x47')]=[{'all':!![]}];}return db[_0x1262('0x36')][_0x1262('0x48')](_0xb4275e);})[_0x1262('0x1d')](function(_0x52a4c4){_0x29b931[_0x1262('0x49')]=_0x52a4c4;return _0x29b931;})[_0x1262('0x1d')](respondWithFilteredResult(_0x57bb3b,_0xb4275e))[_0x1262('0x4a')](handleError(_0x57bb3b,null));};exports[_0x1262('0x4b')]=function(_0x3a232c,_0x24185b){var _0x523bfd={'raw':![],'where':{'id':_0x3a232c['params']['id']}},_0x4f4e74={};_0x4f4e74[_0x1262('0x39')]=_[_0x1262('0x4c')](db[_0x1262('0x36')][_0x1262('0x37')]);_0x4f4e74[_0x1262('0x3a')]=_[_0x1262('0x4c')](_0x3a232c[_0x1262('0x3a')]);_0x4f4e74[_0x1262('0x40')]=_[_0x1262('0x4d')](_0x4f4e74['model'],_0x4f4e74[_0x1262('0x3a')]);_0x523bfd[_0x1262('0x3b')]=_['intersection'](_0x4f4e74[_0x1262('0x39')],qs[_0x1262('0x3c')](_0x3a232c[_0x1262('0x3a')][_0x1262('0x3c')]));_0x523bfd[_0x1262('0x3b')]=_0x523bfd[_0x1262('0x3b')]['length']?_0x523bfd['attributes']:_0x4f4e74[_0x1262('0x39')];if(_0x3a232c['query'][_0x1262('0x46')]){_0x523bfd[_0x1262('0x47')]=[{'all':!![]}];}_0x523bfd=_['merge']({},_0x523bfd,_0x3a232c[_0x1262('0x45')]);return db[_0x1262('0x36')][_0x1262('0x4e')](_0x523bfd)[_0x1262('0x1d')](handleEntityNotFound(_0x24185b,null))[_0x1262('0x1d')](respondWithResult(_0x24185b,null))[_0x1262('0x4a')](handleError(_0x24185b,null));};exports[_0x1262('0x4f')]=function(_0x2d04b1,_0x46d60f){return db[_0x1262('0x36')][_0x1262('0x4f')](_0x2d04b1[_0x1262('0x50')],{})[_0x1262('0x1d')](respondWithResult(_0x46d60f,0xc9))[_0x1262('0x4a')](handleError(_0x46d60f,null));};exports[_0x1262('0x2f')]=function(_0x5453a2,_0x48bd43){if(_0x5453a2['body']['id']){delete _0x5453a2['body']['id'];}return db[_0x1262('0x36')][_0x1262('0x4e')]({'where':{'id':_0x5453a2[_0x1262('0x51')]['id']}})[_0x1262('0x1d')](handleEntityNotFound(_0x48bd43,null))['then'](saveUpdates(_0x5453a2['body'],null))[_0x1262('0x1d')](respondWithResult(_0x48bd43,null))[_0x1262('0x4a')](handleError(_0x48bd43,null));};exports[_0x1262('0x30')]=function(_0x33d5fd,_0x1fbbea){return db['ZendeskAccount'][_0x1262('0x4e')]({'where':{'id':_0x33d5fd[_0x1262('0x51')]['id']}})[_0x1262('0x1d')](handleEntityNotFound(_0x1fbbea,null))[_0x1262('0x1d')](removeEntity(_0x1fbbea,null))[_0x1262('0x4a')](handleError(_0x1fbbea,null));};exports[_0x1262('0x52')]=function(_0x333547,_0x212cd2,_0x41c009){var _0x1340db={};var _0x56e70e={};var _0x3944d2;var _0xdcb1a;return db[_0x1262('0x36')][_0x1262('0x53')]({'where':{'id':_0x333547['params']['id']}})[_0x1262('0x1d')](handleEntityNotFound(_0x212cd2,null))[_0x1262('0x1d')](function(_0x357dea){if(_0x357dea){_0x3944d2=_0x357dea;_0x56e70e[_0x1262('0x39')]=_['keys'](db[_0x1262('0x54')]['rawAttributes']);_0x56e70e[_0x1262('0x3a')]=_[_0x1262('0x4c')](_0x333547[_0x1262('0x3a')]);_0x56e70e['filters']=_[_0x1262('0x4d')](_0x56e70e[_0x1262('0x39')],_0x56e70e['query']);_0x1340db[_0x1262('0x3b')]=_['intersection'](_0x56e70e[_0x1262('0x39')],qs['fields'](_0x333547[_0x1262('0x3a')][_0x1262('0x3c')]));_0x1340db[_0x1262('0x3b')]=_0x1340db[_0x1262('0x3b')][_0x1262('0x55')]?_0x1340db[_0x1262('0x3b')]:_0x56e70e[_0x1262('0x39')];_0x1340db[_0x1262('0x3d')]=qs[_0x1262('0x3e')](_0x333547['query'][_0x1262('0x3e')]);_0x1340db[_0x1262('0x3f')]=qs[_0x1262('0x40')](_[_0x1262('0x56')](_0x333547['query'],_0x56e70e[_0x1262('0x40')]));if(_0x333547[_0x1262('0x3a')][_0x1262('0x44')]){_0x1340db[_0x1262('0x3f')]=_[_0x1262('0x41')](_0x1340db[_0x1262('0x3f')],{'$or':_['map'](_0x1340db[_0x1262('0x3b')],function(_0x4f0588){var _0x4792a5={};_0x4792a5[_0x4f0588]={'$like':'%'+_0x333547[_0x1262('0x3a')][_0x1262('0x44')]+'%'};return _0x4792a5;})});}_0x1340db=_[_0x1262('0x41')]({},_0x1340db,_0x333547[_0x1262('0x45')]);return _0x3944d2[_0x1262('0x52')](_0x1340db);}})[_0x1262('0x1d')](function(_0x3abb41){if(_0x3abb41){_0xdcb1a=_0x3abb41[_0x1262('0x55')];if(!_0x333547[_0x1262('0x3a')][_0x1262('0x57')]('nolimit')){_0x1340db[_0x1262('0x2a')]=qs[_0x1262('0x2a')](_0x333547[_0x1262('0x3a')]['limit']);_0x1340db[_0x1262('0x29')]=qs[_0x1262('0x29')](_0x333547[_0x1262('0x3a')]['offset']);}return _0x3944d2[_0x1262('0x52')](_0x1340db);}})[_0x1262('0x1d')](function(_0x17ea32){if(_0x17ea32){return _0x17ea32?{'count':_0xdcb1a,'rows':_0x17ea32}:null;}})['then'](respondWithResult(_0x212cd2,null))[_0x1262('0x4a')](handleError(_0x212cd2,null));};exports[_0x1262('0x58')]=function(_0x565b2a,_0x34e0d8,_0x2eb8ad){if(_0x565b2a[_0x1262('0x50')]['id']){delete _0x565b2a[_0x1262('0x50')]['id'];}return db['ZendeskAccount']['findOne']({'where':{'id':_0x565b2a[_0x1262('0x51')]['id']}})[_0x1262('0x1d')](handleEntityNotFound(_0x34e0d8,null))[_0x1262('0x1d')](function(_0x39f951){if(_0x39f951){_0x565b2a[_0x1262('0x50')]['AccountId']=_0x39f951['id'];_0x565b2a[_0x1262('0x50')][_0x1262('0x59')]=integrations['getSubjects'](_0x565b2a[_0x1262('0x50')][_0x1262('0x5a')],_0x565b2a[_0x1262('0x50')][_0x1262('0x42')]);_0x565b2a['body'][_0x1262('0x5b')]=integrations[_0x1262('0x5c')](_0x565b2a['body'][_0x1262('0x5a')],_0x565b2a['body'][_0x1262('0x42')]);return db[_0x1262('0x54')][_0x1262('0x4f')](_0x565b2a[_0x1262('0x50')],{'include':[{'model':db[_0x1262('0x5d')],'as':_0x1262('0x59')},{'model':db[_0x1262('0x5d')],'as':_0x1262('0x5b')}]});}return null;})[_0x1262('0x1d')](respondWithResult(_0x34e0d8,null))[_0x1262('0x4a')](handleError(_0x34e0d8,null));};exports['getFields']=function(_0xa71023,_0x3fbad8,_0x14fa44){var _0x19dad5='';return db['ZendeskAccount'][_0x1262('0x53')]({'where':{'id':_0xa71023[_0x1262('0x51')]['id']},'attributes':['id',_0x1262('0x5e'),_0x1262('0x5f'),_0x1262('0x60'),_0x1262('0x61'),_0x1262('0x62')]})[_0x1262('0x1d')](handleEntityNotFound(_0x3fbad8,null))[_0x1262('0x1d')](function(_0x26133a){if(_0x26133a){_0x19dad5=_0x26133a['remoteUri'];var _0x101481=_0x19dad5[_0x1262('0x63')](-0x1);if(_0x101481==='/'){_0x19dad5=_0x19dad5[_0x1262('0x64')](0x0,_0x19dad5[_0x1262('0x65')](_0x101481));}var _0x1c3465={'method':_0x1262('0x66'),'uri':util[_0x1262('0x67')]('%s/%s',_0x19dad5,_0x1262('0x68')),'json':!![]};switch(_0x26133a[_0x1262('0x61')]){case _0x1262('0x5f'):_0x1c3465[_0x1262('0x69')]={'Authorization':util[_0x1262('0x67')]('Basic\x20%s',new Buffer(util[_0x1262('0x67')](_0x1262('0x6a'),_0x26133a[_0x1262('0x5e')],_0x26133a[_0x1262('0x5f')]))[_0x1262('0x6b')](_0x1262('0x6c')))};break;case'token':_0x1c3465[_0x1262('0x69')]={'Authorization':util['format'](_0x1262('0x6d'),new Buffer(util[_0x1262('0x67')](_0x1262('0x6e'),_0x26133a['username'],_0x26133a['token']))[_0x1262('0x6b')]('base64'))};break;default:throw new db[(_0x1262('0x6f'))][(_0x1262('0x70'))]('Unknown\x20authentication\x20type');}return rp(_0x1c3465);}})[_0x1262('0x1d')](function(_0x55e1d5){if(_0x55e1d5){var _0x14909f=[_0x1262('0x71'),_0x1262('0x72'),_0x1262('0x73'),_0x1262('0x74')];_['remove'](_0x55e1d5[_0x1262('0x68')],function(_0x5405d1){return _0x14909f[_0x1262('0x75')](_0x5405d1[_0x1262('0x42')]);});return{'count':_0x55e1d5['ticket_fields']['length'],'rows':_[_0x1262('0x35')](_0x55e1d5['ticket_fields'],function(_0x3446c5){return{'id':_0x3446c5['id'],'name':_0x3446c5['position']>0x7?_0x3446c5[_0x1262('0x76')]:_0x3446c5[_0x1262('0x42')],'custom':_0x3446c5[_0x1262('0x77')]>0x7?!![]:![],'options':_0x3446c5[_0x1262('0x78')]?_0x3446c5['system_field_options']:_0x3446c5[_0x1262('0x79')]?_0x3446c5['custom_field_options']:[]};})};}})[_0x1262('0x1d')](respondWithResult(_0x3fbad8,null))[_0x1262('0x4a')](function(_0x1e4477){var _0x46287f=_0xa71023[_0x1262('0x3a')][_0x1262('0x7a')]?0x1f4:_0x1e4477[_0x1262('0x7b')]||0x1f4;logger[_0x1262('0x23')](_0x1262('0x7c'),_0x1262('0x7d'),_0x46287f,JSON[_0x1262('0x22')](_0x1e4477));delete _0x1e4477[_0x1262('0x7e')];if(_0x46287f===0x191){_0x46287f=0x190;}_0x3fbad8[_0x1262('0x26')](_0x46287f)[_0x1262('0x33')](_0xa71023[_0x1262('0x3a')][_0x1262('0x7a')]?{'message':_0x1262('0x7f'),'statusCode':_0x1e4477[_0x1262('0x7b')]}:_0x1e4477);});};