Built motion from commit (unavailable).|2.0.75
[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 _0x4b07=['stringify','Wrong\x20credentials','statusCode','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','status','json','count','offset','limit','apply','save','update','destroy','end','sendStatus','stack','name','send','index','ZendeskAccount','rawAttributes','model','keys','dateStart','dateEnd','query','filters','intersection','attributes','hasOwnProperty','order','sort','where','pick','day','add','merge','filter','map','options','includeAll','include','findAll','rows','catch','show','params','fields','length','body','find','getConfigurations','findOne','addConfiguration','AccountId','Subjects','channel','type','getDescriptions','ZendeskField','Descriptions','getFields','username','authType','remoteUri','GET','format','%s%s','password','Basic\x20%s','%s:%s','toString','base64','token','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','ticket_fields','includes','position','system_field_options','test','getFields,\x20%s,\x20%s,\x20%s'];(function(_0x2cc594,_0x4d727b){var _0x4abff7=function(_0x22b01d){while(--_0x22b01d){_0x2cc594['push'](_0x2cc594['shift']());}};_0x4abff7(++_0x4d727b);}(_0x4b07,0x7a));var _0x74b0=function(_0x553e29,_0x15f532){_0x553e29=_0x553e29-0x0;var _0x5c5edb=_0x4b07[_0x553e29];return _0x5c5edb;};'use strict';var jsonpatch=require('fast-json-patch');var rp=require(_0x74b0('0x0'));var moment=require(_0x74b0('0x1'));var BPromise=require(_0x74b0('0x2'));var Mustache=require(_0x74b0('0x3'));var util=require(_0x74b0('0x4'));var path=require(_0x74b0('0x5'));var sox=require(_0x74b0('0x6'));var csv=require('to-csv');var ejs=require(_0x74b0('0x7'));var fs=require('fs');var _=require(_0x74b0('0x8'));var squel=require(_0x74b0('0x9'));var crypto=require(_0x74b0('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x74b0('0xb'));var querystring=require(_0x74b0('0xc'));var Papa=require(_0x74b0('0xd'));var qs=require(_0x74b0('0xe'));var logger=require('../../config/logger')(_0x74b0('0xf'));var utils=require(_0x74b0('0x10'));var config=require(_0x74b0('0x11'));var db=require(_0x74b0('0x12'))['db'];var integrations=require(_0x74b0('0x13'));var jayson=require(_0x74b0('0x14'));var client=jayson[_0x74b0('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2cb6f1,_0x26cc5a,_0x116e97,_0xf623c0){return new BPromise(function(_0x1bd833,_0x46d06c){var _0x21d4b6=_0xf623c0||client;return _0x21d4b6[_0x74b0('0x16')](_0x2cb6f1,_0x116e97)[_0x74b0('0x17')](function(_0x24d2be){logger['info'](_0x74b0('0x18'),_0x26cc5a,_0x74b0('0x19'));logger[_0x74b0('0x1a')]('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x26cc5a,_0x74b0('0x19'),JSON['stringify'](_0x24d2be));if(_0x24d2be[_0x74b0('0x1b')]){if(_0x24d2be[_0x74b0('0x1b')][_0x74b0('0x1c')]===0x1f4){logger[_0x74b0('0x1b')]('ZendeskAccount,\x20%s,\x20%s',_0x26cc5a,_0x24d2be[_0x74b0('0x1b')][_0x74b0('0x1d')]);return _0x46d06c(_0x24d2be['error'][_0x74b0('0x1d')]);}logger[_0x74b0('0x1b')](_0x74b0('0x18'),_0x26cc5a,_0x24d2be[_0x74b0('0x1b')][_0x74b0('0x1d')]);return _0x1bd833(_0x24d2be[_0x74b0('0x1b')][_0x74b0('0x1d')]);}else{logger[_0x74b0('0x1e')]('ZendeskAccount,\x20%s,\x20%s',_0x26cc5a,'request\x20sent');_0x1bd833(_0x24d2be['result'][_0x74b0('0x1d')]);}})['catch'](function(_0x49e528){logger[_0x74b0('0x1b')](_0x74b0('0x18'),_0x26cc5a,_0x49e528);_0x46d06c(_0x49e528);});});}function respondWithStatusCode(_0x3050a0,_0x510a31){_0x510a31=_0x510a31||0xcc;return function(_0x28297b){if(_0x28297b){return _0x3050a0['sendStatus'](_0x510a31);}return _0x3050a0[_0x74b0('0x1f')](_0x510a31)['end']();};}function respondWithResult(_0x2e17b6,_0xd1200e){_0xd1200e=_0xd1200e||0xc8;return function(_0x5d089f){if(_0x5d089f){return _0x2e17b6[_0x74b0('0x1f')](_0xd1200e)[_0x74b0('0x20')](_0x5d089f);}};}function respondWithFilteredResult(_0x1d42f8,_0x2bf588){return function(_0x3fe07b){if(_0x3fe07b){var _0x274d89=_0x3fe07b[_0x74b0('0x21')],_0xec883d=_0x2bf588[_0x74b0('0x22')],_0x43c111=_0x2bf588[_0x74b0('0x22')]+_0x2bf588[_0x74b0('0x23')],_0x4bceb7;if(_0x43c111>=_0x274d89){_0x43c111=_0x274d89;_0x4bceb7=0xc8;}else{_0x4bceb7=0xce;}_0x1d42f8['status'](_0x4bceb7);return _0x1d42f8['set']('Content-Range',_0xec883d+'-'+_0x43c111+'/'+_0x274d89)[_0x74b0('0x20')](_0x3fe07b);}return null;};}function patchUpdates(_0x358898){return function(_0x1adb24){try{jsonpatch[_0x74b0('0x24')](_0x1adb24,_0x358898,!![]);}catch(_0x1469b9){return BPromise['reject'](_0x1469b9);}return _0x1adb24[_0x74b0('0x25')]();};}function saveUpdates(_0x465d80,_0x17a4a9){return function(_0x2cd452){if(_0x2cd452){return _0x2cd452[_0x74b0('0x26')](_0x465d80)['then'](function(_0x514d54){return _0x514d54;});}return null;};}function removeEntity(_0x3e5837,_0x331638){return function(_0x287651){if(_0x287651){return _0x287651[_0x74b0('0x27')]()[_0x74b0('0x17')](function(){_0x3e5837['status'](0xcc)[_0x74b0('0x28')]();});}};}function handleEntityNotFound(_0x2cf40c,_0x1be824){return function(_0x5a9b34){if(!_0x5a9b34){_0x2cf40c[_0x74b0('0x29')](0x194);}return _0x5a9b34;};}function handleError(_0x193ac3,_0x43b529){_0x43b529=_0x43b529||0x1f4;return function(_0x84ea34){logger['error'](_0x84ea34[_0x74b0('0x2a')]);if(_0x84ea34[_0x74b0('0x2b')]){delete _0x84ea34[_0x74b0('0x2b')];}_0x193ac3[_0x74b0('0x1f')](_0x43b529)[_0x74b0('0x2c')](_0x84ea34);};}exports[_0x74b0('0x2d')]=function(_0x2ffb5b,_0x216e89){var _0x55e768={},_0x93aad2={},_0x51a981={'count':0x0,'rows':[]};var _0x225975=db[_0x74b0('0x2e')][_0x74b0('0x2f')];_0x93aad2[_0x74b0('0x30')]=_[_0x74b0('0x31')](_0x225975);var _0x52d67b={'dateStart':_0x2ffb5b['query'][_0x74b0('0x32')],'dateEnd':_0x2ffb5b['query'][_0x74b0('0x33')]};delete _0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x32')];delete _0x2ffb5b[_0x74b0('0x34')]['dateEnd'];_0x93aad2[_0x74b0('0x34')]=_[_0x74b0('0x31')](_0x2ffb5b[_0x74b0('0x34')]);_0x93aad2[_0x74b0('0x35')]=_[_0x74b0('0x36')](_0x93aad2[_0x74b0('0x30')],_0x93aad2[_0x74b0('0x34')]);_0x55e768[_0x74b0('0x37')]=_[_0x74b0('0x36')](_0x93aad2[_0x74b0('0x30')],qs['fields'](_0x2ffb5b[_0x74b0('0x34')]['fields']));_0x55e768[_0x74b0('0x37')]=_0x55e768[_0x74b0('0x37')]['length']?_0x55e768[_0x74b0('0x37')]:_0x93aad2[_0x74b0('0x30')];if(!_0x2ffb5b['query'][_0x74b0('0x38')]('nolimit')){_0x55e768[_0x74b0('0x23')]=qs[_0x74b0('0x23')](_0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x23')]);_0x55e768['offset']=qs[_0x74b0('0x22')](_0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x22')]);}_0x55e768[_0x74b0('0x39')]=qs[_0x74b0('0x3a')](_0x2ffb5b['query'][_0x74b0('0x3a')]);_0x55e768[_0x74b0('0x3b')]=qs[_0x74b0('0x35')](_[_0x74b0('0x3c')](_0x2ffb5b[_0x74b0('0x34')],_0x93aad2[_0x74b0('0x35')]));if(_0x52d67b[_0x74b0('0x32')]){if(_0x52d67b[_0x74b0('0x33')]){_0x52d67b[_0x74b0('0x33')]=moment(_0x52d67b[_0x74b0('0x33')])['add'](0x1,_0x74b0('0x3d'));}else{_0x52d67b[_0x74b0('0x33')]=moment(_0x52d67b[_0x74b0('0x32')])[_0x74b0('0x3e')](0x1,_0x74b0('0x3d'));}_[_0x74b0('0x3f')](_0x55e768[_0x74b0('0x3b')],{'createdAt':{'$gte':_0x52d67b[_0x74b0('0x32')],'$lte':_0x52d67b['dateEnd']}});}if(_0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x40')]){_0x55e768[_0x74b0('0x3b')]=_['merge'](_0x55e768[_0x74b0('0x3b')],{'$or':_[_0x74b0('0x41')](_0x55e768[_0x74b0('0x37')],function(_0x3cfb6a){var _0x1b65ea={};_0x1b65ea[_0x3cfb6a]={'$like':'%'+_0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x40')]+'%'};return _0x1b65ea;})});}_0x55e768=_[_0x74b0('0x3f')]({},_0x55e768,_0x2ffb5b[_0x74b0('0x42')]);var _0x4ab217={'where':_0x55e768['where']};return db['ZendeskAccount']['count'](_0x4ab217)['then'](function(_0x9aafbe){_0x51a981[_0x74b0('0x21')]=_0x9aafbe;if(_0x2ffb5b[_0x74b0('0x34')][_0x74b0('0x43')]){_0x55e768[_0x74b0('0x44')]=[{'all':!![]}];}return db[_0x74b0('0x2e')][_0x74b0('0x45')](_0x55e768);})[_0x74b0('0x17')](function(_0x2ba492){_0x51a981[_0x74b0('0x46')]=_0x2ba492;return _0x51a981;})[_0x74b0('0x17')](respondWithFilteredResult(_0x216e89,_0x55e768))[_0x74b0('0x47')](handleError(_0x216e89,null));};exports[_0x74b0('0x48')]=function(_0x4bb906,_0x42b00b){var _0xc26a05={'raw':![],'where':{'id':_0x4bb906[_0x74b0('0x49')]['id']}},_0x100094={};_0x100094[_0x74b0('0x30')]=_[_0x74b0('0x31')](db[_0x74b0('0x2e')][_0x74b0('0x2f')]);_0x100094[_0x74b0('0x34')]=_[_0x74b0('0x31')](_0x4bb906[_0x74b0('0x34')]);_0x100094[_0x74b0('0x35')]=_[_0x74b0('0x36')](_0x100094['model'],_0x100094['query']);_0xc26a05[_0x74b0('0x37')]=_[_0x74b0('0x36')](_0x100094[_0x74b0('0x30')],qs[_0x74b0('0x4a')](_0x4bb906[_0x74b0('0x34')][_0x74b0('0x4a')]));_0xc26a05['attributes']=_0xc26a05['attributes'][_0x74b0('0x4b')]?_0xc26a05[_0x74b0('0x37')]:_0x100094['model'];if(_0x4bb906[_0x74b0('0x34')]['includeAll']){_0xc26a05['include']=[{'all':!![]}];}_0xc26a05=_[_0x74b0('0x3f')]({},_0xc26a05,_0x4bb906[_0x74b0('0x42')]);return db[_0x74b0('0x2e')]['find'](_0xc26a05)[_0x74b0('0x17')](handleEntityNotFound(_0x42b00b,null))[_0x74b0('0x17')](respondWithResult(_0x42b00b,null))['catch'](handleError(_0x42b00b,null));};exports['create']=function(_0x3e98a0,_0x3030c6){return db['ZendeskAccount']['create'](_0x3e98a0[_0x74b0('0x4c')],{})[_0x74b0('0x17')](respondWithResult(_0x3030c6,0xc9))[_0x74b0('0x47')](handleError(_0x3030c6,null));};exports[_0x74b0('0x26')]=function(_0xe0e854,_0x144291){if(_0xe0e854['body']['id']){delete _0xe0e854[_0x74b0('0x4c')]['id'];}return db[_0x74b0('0x2e')][_0x74b0('0x4d')]({'where':{'id':_0xe0e854[_0x74b0('0x49')]['id']}})['then'](handleEntityNotFound(_0x144291,null))[_0x74b0('0x17')](saveUpdates(_0xe0e854[_0x74b0('0x4c')],null))[_0x74b0('0x17')](respondWithResult(_0x144291,null))[_0x74b0('0x47')](handleError(_0x144291,null));};exports['destroy']=function(_0x4a338a,_0x17c52f){return db[_0x74b0('0x2e')][_0x74b0('0x4d')]({'where':{'id':_0x4a338a['params']['id']}})['then'](handleEntityNotFound(_0x17c52f,null))[_0x74b0('0x17')](removeEntity(_0x17c52f,null))['catch'](handleError(_0x17c52f,null));};exports[_0x74b0('0x4e')]=function(_0x16c779,_0xdfa88a,_0x2ccf3b){var _0x1dcb36={};var _0x5063db={};var _0x31e681;var _0x38f20e;return db[_0x74b0('0x2e')][_0x74b0('0x4f')]({'where':{'id':_0x16c779[_0x74b0('0x49')]['id']}})['then'](handleEntityNotFound(_0xdfa88a,null))[_0x74b0('0x17')](function(_0x2d27ea){if(_0x2d27ea){_0x31e681=_0x2d27ea;_0x5063db[_0x74b0('0x30')]=_[_0x74b0('0x31')](db['ZendeskConfiguration'][_0x74b0('0x2f')]);_0x5063db['query']=_[_0x74b0('0x31')](_0x16c779[_0x74b0('0x34')]);_0x5063db['filters']=_[_0x74b0('0x36')](_0x5063db[_0x74b0('0x30')],_0x5063db[_0x74b0('0x34')]);_0x1dcb36[_0x74b0('0x37')]=_[_0x74b0('0x36')](_0x5063db[_0x74b0('0x30')],qs[_0x74b0('0x4a')](_0x16c779[_0x74b0('0x34')][_0x74b0('0x4a')]));_0x1dcb36[_0x74b0('0x37')]=_0x1dcb36[_0x74b0('0x37')][_0x74b0('0x4b')]?_0x1dcb36[_0x74b0('0x37')]:_0x5063db[_0x74b0('0x30')];_0x1dcb36[_0x74b0('0x39')]=qs[_0x74b0('0x3a')](_0x16c779[_0x74b0('0x34')][_0x74b0('0x3a')]);_0x1dcb36['where']=qs[_0x74b0('0x35')](_['pick'](_0x16c779[_0x74b0('0x34')],_0x5063db['filters']));if(_0x16c779['query'][_0x74b0('0x40')]){_0x1dcb36['where']=_[_0x74b0('0x3f')](_0x1dcb36[_0x74b0('0x3b')],{'$or':_[_0x74b0('0x41')](_0x1dcb36[_0x74b0('0x37')],function(_0x1b9d4a){var _0x5551a1={};_0x5551a1[_0x1b9d4a]={'$like':'%'+_0x16c779[_0x74b0('0x34')][_0x74b0('0x40')]+'%'};return _0x5551a1;})});}_0x1dcb36=_[_0x74b0('0x3f')]({},_0x1dcb36,_0x16c779[_0x74b0('0x42')]);return _0x31e681[_0x74b0('0x4e')](_0x1dcb36);}})['then'](function(_0x58631b){if(_0x58631b){_0x38f20e=_0x58631b[_0x74b0('0x4b')];if(!_0x16c779[_0x74b0('0x34')][_0x74b0('0x38')]('nolimit')){_0x1dcb36[_0x74b0('0x23')]=qs[_0x74b0('0x23')](_0x16c779[_0x74b0('0x34')][_0x74b0('0x23')]);_0x1dcb36[_0x74b0('0x22')]=qs[_0x74b0('0x22')](_0x16c779[_0x74b0('0x34')][_0x74b0('0x22')]);}return _0x31e681[_0x74b0('0x4e')](_0x1dcb36);}})[_0x74b0('0x17')](function(_0x32b1f1){if(_0x32b1f1){return _0x32b1f1?{'count':_0x38f20e,'rows':_0x32b1f1}:null;}})[_0x74b0('0x17')](respondWithResult(_0xdfa88a,null))[_0x74b0('0x47')](handleError(_0xdfa88a,null));};exports[_0x74b0('0x50')]=function(_0x53ae49,_0x25517c,_0x25deb9){if(_0x53ae49[_0x74b0('0x4c')]['id']){delete _0x53ae49['body']['id'];}return db[_0x74b0('0x2e')][_0x74b0('0x4f')]({'where':{'id':_0x53ae49[_0x74b0('0x49')]['id']}})['then'](handleEntityNotFound(_0x25517c,null))['then'](function(_0x5e276f){if(_0x5e276f){_0x53ae49['body'][_0x74b0('0x51')]=_0x5e276f['id'];_0x53ae49[_0x74b0('0x4c')][_0x74b0('0x52')]=integrations['getSubjects'](_0x53ae49[_0x74b0('0x4c')][_0x74b0('0x53')],_0x53ae49[_0x74b0('0x4c')][_0x74b0('0x54')]);_0x53ae49[_0x74b0('0x4c')]['Descriptions']=integrations[_0x74b0('0x55')](_0x53ae49['body'][_0x74b0('0x53')],_0x53ae49[_0x74b0('0x4c')]['type']);return db['ZendeskConfiguration']['create'](_0x53ae49['body'],{'include':[{'model':db[_0x74b0('0x56')],'as':_0x74b0('0x52')},{'model':db['ZendeskField'],'as':_0x74b0('0x57')}]});}return null;})[_0x74b0('0x17')](respondWithResult(_0x25517c,null))['catch'](handleError(_0x25517c,null));};exports[_0x74b0('0x58')]=function(_0x4c150e,_0x42e5e2,_0x2d0802){return db[_0x74b0('0x2e')][_0x74b0('0x4f')]({'where':{'id':_0x4c150e[_0x74b0('0x49')]['id']},'attributes':['id',_0x74b0('0x59'),'password','token',_0x74b0('0x5a'),_0x74b0('0x5b')]})[_0x74b0('0x17')](handleEntityNotFound(_0x42e5e2,null))[_0x74b0('0x17')](function(_0x2e4ae5){if(_0x2e4ae5){var _0x4923f7={'method':_0x74b0('0x5c'),'uri':util[_0x74b0('0x5d')](_0x74b0('0x5e'),_0x2e4ae5[_0x74b0('0x5b')],'ticket_fields'),'json':!![]};switch(_0x2e4ae5['authType']){case _0x74b0('0x5f'):_0x4923f7['headers']={'Authorization':util[_0x74b0('0x5d')](_0x74b0('0x60'),new Buffer(util['format'](_0x74b0('0x61'),_0x2e4ae5[_0x74b0('0x59')],_0x2e4ae5[_0x74b0('0x5f')]))[_0x74b0('0x62')](_0x74b0('0x63')))};break;case _0x74b0('0x64'):_0x4923f7['headers']={'Authorization':util[_0x74b0('0x5d')](_0x74b0('0x60'),new Buffer(util[_0x74b0('0x5d')](_0x74b0('0x65'),_0x2e4ae5[_0x74b0('0x59')],_0x2e4ae5['token']))['toString']('base64'))};break;default:throw new db[(_0x74b0('0x66'))][(_0x74b0('0x67'))](_0x74b0('0x68'));}return rp(_0x4923f7);}})[_0x74b0('0x17')](function(_0xfccb65){if(_0xfccb65){var _0x4c06ab=[_0x74b0('0x69'),_0x74b0('0x6a'),_0x74b0('0x6b'),_0x74b0('0x6c')];_[_0x74b0('0x6d')](_0xfccb65[_0x74b0('0x6e')],function(_0x29bccb){return _0x4c06ab[_0x74b0('0x6f')](_0x29bccb[_0x74b0('0x54')]);});return{'count':_0xfccb65[_0x74b0('0x6e')][_0x74b0('0x4b')],'rows':_[_0x74b0('0x41')](_0xfccb65[_0x74b0('0x6e')],function(_0x568d54){return{'id':_0x568d54['id'],'name':_0x568d54[_0x74b0('0x70')]>0x7?_0x568d54['title']:_0x568d54[_0x74b0('0x54')],'custom':_0x568d54[_0x74b0('0x70')]>0x7?!![]:![],'options':_0x568d54[_0x74b0('0x71')]?_0x568d54[_0x74b0('0x71')]:[]};})};}})[_0x74b0('0x17')](respondWithResult(_0x42e5e2,null))[_0x74b0('0x47')](function(_0x10f047){var _0x5857d9=_0x4c150e['query'][_0x74b0('0x72')]?0x1f4:_0x10f047['statusCode']||0x1f4;logger[_0x74b0('0x1b')](_0x74b0('0x73'),_0x74b0('0x58'),_0x5857d9,JSON[_0x74b0('0x74')](_0x10f047));delete _0x10f047[_0x74b0('0x2b')];if(_0x5857d9===0x191){_0x5857d9=0x190;}_0x42e5e2['status'](_0x5857d9)[_0x74b0('0x2c')](_0x4c150e[_0x74b0('0x34')][_0x74b0('0x72')]?{'message':_0x74b0('0x75'),'statusCode':_0x10f047[_0x74b0('0x76')]}:_0x10f047);});};