Built motion from commit (unavailable).|2.6.0
[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 _0xc376=['message','result','catch','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','end','stack','name','index','ZendeskAccount','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','keys','options','find','create','body','getConfigurations','ZendeskConfiguration','order','filter','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username','password','token','authType','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','ticket_fields','headers','toString','base64','Basic\x20%s','Sequelize','ValidationError','group','assignee','remove','includes','map','position','title','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','jayson/promise','client','http','request','then','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','code'];(function(_0x36913e,_0x8cb39f){var _0x4e7d10=function(_0x332742){while(--_0x332742){_0x36913e['push'](_0x36913e['shift']());}};_0x4e7d10(++_0x8cb39f);}(_0xc376,0xe4));var _0x6c37=function(_0x58de4a,_0x564dbc){_0x58de4a=_0x58de4a-0x0;var _0x178820=_0xc376[_0x58de4a];return _0x178820;};'use strict';var emlformat=require(_0x6c37('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6c37('0x1'));var rp=require(_0x6c37('0x2'));var moment=require(_0x6c37('0x3'));var BPromise=require(_0x6c37('0x4'));var Mustache=require(_0x6c37('0x5'));var util=require(_0x6c37('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x6c37('0x7'));var ejs=require(_0x6c37('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6c37('0x9'));var squel=require(_0x6c37('0xa'));var crypto=require('crypto');var jsforce=require(_0x6c37('0xb'));var deskjs=require(_0x6c37('0xc'));var toCsv=require(_0x6c37('0x7'));var querystring=require(_0x6c37('0xd'));var Papa=require(_0x6c37('0xe'));var Redis=require('ioredis');var authService=require(_0x6c37('0xf'));var qs=require(_0x6c37('0x10'));var as=require(_0x6c37('0x11'));var hardwareService=require(_0x6c37('0x12'));var logger=require(_0x6c37('0x13'))(_0x6c37('0x14'));var utils=require('../../config/utils');var config=require(_0x6c37('0x15'));var licenseUtil=require(_0x6c37('0x16'));var db=require('../../mysqldb')['db'];var integrations=require(_0x6c37('0x17'));var jayson=require(_0x6c37('0x18'));var client=jayson[_0x6c37('0x19')][_0x6c37('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x373ab9,_0x1d027b,_0x50e99b,_0x1081c2){return new BPromise(function(_0x18289d,_0x25dacd){var _0x4a5212=_0x1081c2||client;return _0x4a5212[_0x6c37('0x1b')](_0x373ab9,_0x50e99b)[_0x6c37('0x1c')](function(_0x5be6d6){logger[_0x6c37('0x1d')](_0x6c37('0x1e'),_0x1d027b,_0x6c37('0x1f'));logger[_0x6c37('0x20')](_0x6c37('0x21'),_0x1d027b,_0x6c37('0x1f'),JSON['stringify'](_0x5be6d6));if(_0x5be6d6[_0x6c37('0x22')]){if(_0x5be6d6[_0x6c37('0x22')][_0x6c37('0x23')]===0x1f4){logger[_0x6c37('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0x1d027b,_0x5be6d6[_0x6c37('0x22')][_0x6c37('0x24')]);return _0x25dacd(_0x5be6d6['error'][_0x6c37('0x24')]);}logger[_0x6c37('0x22')](_0x6c37('0x1e'),_0x1d027b,_0x5be6d6[_0x6c37('0x22')][_0x6c37('0x24')]);return _0x18289d(_0x5be6d6[_0x6c37('0x22')][_0x6c37('0x24')]);}else{logger[_0x6c37('0x1d')](_0x6c37('0x1e'),_0x1d027b,'request\x20sent');_0x18289d(_0x5be6d6[_0x6c37('0x25')][_0x6c37('0x24')]);}})[_0x6c37('0x26')](function(_0x34a0eb){logger[_0x6c37('0x22')](_0x6c37('0x1e'),_0x1d027b,_0x34a0eb);_0x25dacd(_0x34a0eb);});});}function respondWithStatusCode(_0x21bc94,_0xed713d){_0xed713d=_0xed713d||0xcc;return function(_0x42a6d8){if(_0x42a6d8){return _0x21bc94[_0x6c37('0x27')](_0xed713d);}return _0x21bc94['status'](_0xed713d)['end']();};}function respondWithResult(_0x578374,_0x59f4b3){_0x59f4b3=_0x59f4b3||0xc8;return function(_0x156d6f){if(_0x156d6f){return _0x578374[_0x6c37('0x28')](_0x59f4b3)[_0x6c37('0x29')](_0x156d6f);}};}function respondWithFilteredResult(_0x27d7d0,_0x4a439c){return function(_0x291269){if(_0x291269){var _0x4f9c38=typeof _0x4a439c[_0x6c37('0x2a')]===_0x6c37('0x2b')&&typeof _0x4a439c[_0x6c37('0x2c')]===_0x6c37('0x2b');var _0xb94580=_0x291269[_0x6c37('0x2d')];var _0x4dd00b=_0x4f9c38?0x0:_0x4a439c[_0x6c37('0x2a')];var _0x54e6a3=_0x4f9c38?_0x291269[_0x6c37('0x2d')]:_0x4a439c['offset']+_0x4a439c['limit'];var _0x281344;if(_0x54e6a3>=_0xb94580){_0x54e6a3=_0xb94580;_0x281344=0xc8;}else{_0x281344=0xce;}_0x27d7d0[_0x6c37('0x28')](_0x281344);return _0x27d7d0['set'](_0x6c37('0x2e'),_0x4dd00b+'-'+_0x54e6a3+'/'+_0xb94580)[_0x6c37('0x29')](_0x291269);}return null;};}function patchUpdates(_0x3a3f18){return function(_0xff694e){try{jsonpatch[_0x6c37('0x2f')](_0xff694e,_0x3a3f18,!![]);}catch(_0x4b7890){return BPromise[_0x6c37('0x30')](_0x4b7890);}return _0xff694e[_0x6c37('0x31')]();};}function saveUpdates(_0x339ec5,_0x3c5125){return function(_0x36acc3){if(_0x36acc3){return _0x36acc3[_0x6c37('0x32')](_0x339ec5)[_0x6c37('0x1c')](function(_0x5173f5){return _0x5173f5;});}return null;};}function removeEntity(_0x181297,_0x368f5e){return function(_0x47cc8a){if(_0x47cc8a){return _0x47cc8a[_0x6c37('0x33')]()['then'](function(){_0x181297[_0x6c37('0x28')](0xcc)[_0x6c37('0x34')]();});}};}function handleEntityNotFound(_0x1c8ec3,_0x1c92fd){return function(_0x2b32e5){if(!_0x2b32e5){_0x1c8ec3[_0x6c37('0x27')](0x194);}return _0x2b32e5;};}function handleError(_0x599e77,_0x25c27c){_0x25c27c=_0x25c27c||0x1f4;return function(_0x27c4e8){logger[_0x6c37('0x22')](_0x27c4e8[_0x6c37('0x35')]);if(_0x27c4e8[_0x6c37('0x36')]){delete _0x27c4e8[_0x6c37('0x36')];}_0x599e77['status'](_0x25c27c)['send'](_0x27c4e8);};}exports[_0x6c37('0x37')]=function(_0x1b4d52,_0x179e51){var _0x1f0a15={},_0x24fccf={},_0x15e356={'count':0x0,'rows':[]};var _0x2a96c0=_['map'](db[_0x6c37('0x38')][_0x6c37('0x39')],function(_0x49fada){return{'name':_0x49fada[_0x6c37('0x3a')],'type':_0x49fada[_0x6c37('0x3b')][_0x6c37('0x3c')]};});_0x24fccf[_0x6c37('0x3d')]=_['map'](_0x2a96c0,_0x6c37('0x36'));_0x24fccf[_0x6c37('0x3e')]=_['keys'](_0x1b4d52['query']);_0x24fccf['filters']=_[_0x6c37('0x3f')](_0x24fccf['model'],_0x24fccf['query']);_0x1f0a15[_0x6c37('0x40')]=_['intersection'](_0x24fccf[_0x6c37('0x3d')],qs[_0x6c37('0x41')](_0x1b4d52['query'][_0x6c37('0x41')]));_0x1f0a15[_0x6c37('0x40')]=_0x1f0a15[_0x6c37('0x40')][_0x6c37('0x42')]?_0x1f0a15[_0x6c37('0x40')]:_0x24fccf[_0x6c37('0x3d')];if(!_0x1b4d52[_0x6c37('0x3e')][_0x6c37('0x43')](_0x6c37('0x44'))){_0x1f0a15[_0x6c37('0x2c')]=qs[_0x6c37('0x2c')](_0x1b4d52[_0x6c37('0x3e')]['limit']);_0x1f0a15[_0x6c37('0x2a')]=qs[_0x6c37('0x2a')](_0x1b4d52['query'][_0x6c37('0x2a')]);}_0x1f0a15['order']=qs[_0x6c37('0x45')](_0x1b4d52['query'][_0x6c37('0x45')]);_0x1f0a15[_0x6c37('0x46')]=qs['filters'](_[_0x6c37('0x47')](_0x1b4d52[_0x6c37('0x3e')],_0x24fccf[_0x6c37('0x48')]),_0x2a96c0);if(_0x1b4d52[_0x6c37('0x3e')]['filter']){_0x1f0a15[_0x6c37('0x46')]=_[_0x6c37('0x49')](_0x1f0a15[_0x6c37('0x46')],{'$or':_['map'](_0x2a96c0,function(_0x12d453){if(_0x12d453[_0x6c37('0x3b')]!==_0x6c37('0x4a')){var _0x1af004={};_0x1af004[_0x12d453['name']]={'$like':'%'+_0x1b4d52[_0x6c37('0x3e')]['filter']+'%'};return _0x1af004;}})});}_0x1f0a15=_[_0x6c37('0x49')]({},_0x1f0a15,_0x1b4d52['options']);var _0x40155a={'where':_0x1f0a15[_0x6c37('0x46')]};return db['ZendeskAccount'][_0x6c37('0x2d')](_0x40155a)[_0x6c37('0x1c')](function(_0x5e4903){_0x15e356[_0x6c37('0x2d')]=_0x5e4903;if(_0x1b4d52['query'][_0x6c37('0x4b')]){_0x1f0a15[_0x6c37('0x4c')]=[{'all':!![]}];}return db[_0x6c37('0x38')][_0x6c37('0x4d')](_0x1f0a15);})['then'](function(_0x5c2460){_0x15e356[_0x6c37('0x4e')]=_0x5c2460;return _0x15e356;})[_0x6c37('0x1c')](respondWithFilteredResult(_0x179e51,_0x1f0a15))['catch'](handleError(_0x179e51,null));};exports[_0x6c37('0x4f')]=function(_0x3397fe,_0x3b2eed){var _0x53cb34={'raw':![],'where':{'id':_0x3397fe[_0x6c37('0x50')]['id']}},_0xc6e36d={};_0xc6e36d['model']=_[_0x6c37('0x51')](db['ZendeskAccount'][_0x6c37('0x39')]);_0xc6e36d['query']=_[_0x6c37('0x51')](_0x3397fe[_0x6c37('0x3e')]);_0xc6e36d['filters']=_[_0x6c37('0x3f')](_0xc6e36d['model'],_0xc6e36d['query']);_0x53cb34[_0x6c37('0x40')]=_[_0x6c37('0x3f')](_0xc6e36d[_0x6c37('0x3d')],qs[_0x6c37('0x41')](_0x3397fe[_0x6c37('0x3e')][_0x6c37('0x41')]));_0x53cb34[_0x6c37('0x40')]=_0x53cb34[_0x6c37('0x40')]['length']?_0x53cb34[_0x6c37('0x40')]:_0xc6e36d[_0x6c37('0x3d')];if(_0x3397fe[_0x6c37('0x3e')][_0x6c37('0x4b')]){_0x53cb34['include']=[{'all':!![]}];}_0x53cb34=_[_0x6c37('0x49')]({},_0x53cb34,_0x3397fe[_0x6c37('0x52')]);return db[_0x6c37('0x38')][_0x6c37('0x53')](_0x53cb34)[_0x6c37('0x1c')](handleEntityNotFound(_0x3b2eed,null))[_0x6c37('0x1c')](respondWithResult(_0x3b2eed,null))['catch'](handleError(_0x3b2eed,null));};exports[_0x6c37('0x54')]=function(_0x51b01c,_0x5bba71){return db['ZendeskAccount'][_0x6c37('0x54')](_0x51b01c[_0x6c37('0x55')],{})['then'](respondWithResult(_0x5bba71,0xc9))['catch'](handleError(_0x5bba71,null));};exports[_0x6c37('0x32')]=function(_0x1cbff8,_0x20bb99){if(_0x1cbff8[_0x6c37('0x55')]['id']){delete _0x1cbff8[_0x6c37('0x55')]['id'];}return db[_0x6c37('0x38')][_0x6c37('0x53')]({'where':{'id':_0x1cbff8[_0x6c37('0x50')]['id']}})[_0x6c37('0x1c')](handleEntityNotFound(_0x20bb99,null))['then'](saveUpdates(_0x1cbff8['body'],null))[_0x6c37('0x1c')](respondWithResult(_0x20bb99,null))[_0x6c37('0x26')](handleError(_0x20bb99,null));};exports['destroy']=function(_0x4d1d9f,_0x5d033c){return db[_0x6c37('0x38')]['find']({'where':{'id':_0x4d1d9f[_0x6c37('0x50')]['id']}})[_0x6c37('0x1c')](handleEntityNotFound(_0x5d033c,null))[_0x6c37('0x1c')](removeEntity(_0x5d033c,null))[_0x6c37('0x26')](handleError(_0x5d033c,null));};exports[_0x6c37('0x56')]=function(_0xcab79c,_0x511e14,_0x437a16){var _0x2691ec={};var _0x1c574e={};var _0x11d8da;var _0x3905c8;return db['ZendeskAccount']['findOne']({'where':{'id':_0xcab79c[_0x6c37('0x50')]['id']}})[_0x6c37('0x1c')](handleEntityNotFound(_0x511e14,null))[_0x6c37('0x1c')](function(_0x150c71){if(_0x150c71){_0x11d8da=_0x150c71;_0x1c574e[_0x6c37('0x3d')]=_['keys'](db[_0x6c37('0x57')][_0x6c37('0x39')]);_0x1c574e[_0x6c37('0x3e')]=_[_0x6c37('0x51')](_0xcab79c[_0x6c37('0x3e')]);_0x1c574e[_0x6c37('0x48')]=_[_0x6c37('0x3f')](_0x1c574e[_0x6c37('0x3d')],_0x1c574e['query']);_0x2691ec[_0x6c37('0x40')]=_[_0x6c37('0x3f')](_0x1c574e[_0x6c37('0x3d')],qs['fields'](_0xcab79c[_0x6c37('0x3e')][_0x6c37('0x41')]));_0x2691ec[_0x6c37('0x40')]=_0x2691ec[_0x6c37('0x40')]['length']?_0x2691ec['attributes']:_0x1c574e[_0x6c37('0x3d')];_0x2691ec[_0x6c37('0x58')]=qs[_0x6c37('0x45')](_0xcab79c[_0x6c37('0x3e')][_0x6c37('0x45')]);_0x2691ec[_0x6c37('0x46')]=qs[_0x6c37('0x48')](_[_0x6c37('0x47')](_0xcab79c['query'],_0x1c574e[_0x6c37('0x48')]));if(_0xcab79c[_0x6c37('0x3e')][_0x6c37('0x59')]){_0x2691ec[_0x6c37('0x46')]=_[_0x6c37('0x49')](_0x2691ec[_0x6c37('0x46')],{'$or':_['map'](_0x2691ec[_0x6c37('0x40')],function(_0x383130){var _0x52eefd={};_0x52eefd[_0x383130]={'$like':'%'+_0xcab79c[_0x6c37('0x3e')][_0x6c37('0x59')]+'%'};return _0x52eefd;})});}_0x2691ec=_[_0x6c37('0x49')]({},_0x2691ec,_0xcab79c['options']);return _0x11d8da[_0x6c37('0x56')](_0x2691ec);}})[_0x6c37('0x1c')](function(_0x2d5a12){if(_0x2d5a12){_0x3905c8=_0x2d5a12[_0x6c37('0x42')];if(!_0xcab79c[_0x6c37('0x3e')][_0x6c37('0x43')]('nolimit')){_0x2691ec[_0x6c37('0x2c')]=qs[_0x6c37('0x2c')](_0xcab79c['query'][_0x6c37('0x2c')]);_0x2691ec['offset']=qs[_0x6c37('0x2a')](_0xcab79c['query'][_0x6c37('0x2a')]);}return _0x11d8da[_0x6c37('0x56')](_0x2691ec);}})[_0x6c37('0x1c')](function(_0x319137){if(_0x319137){return _0x319137?{'count':_0x3905c8,'rows':_0x319137}:null;}})[_0x6c37('0x1c')](respondWithResult(_0x511e14,null))[_0x6c37('0x26')](handleError(_0x511e14,null));};exports[_0x6c37('0x5a')]=function(_0x154e68,_0x2ee221,_0x627bac){if(_0x154e68[_0x6c37('0x55')]['id']){delete _0x154e68[_0x6c37('0x55')]['id'];}return db[_0x6c37('0x38')][_0x6c37('0x5b')]({'where':{'id':_0x154e68['params']['id']}})[_0x6c37('0x1c')](handleEntityNotFound(_0x2ee221,null))['then'](function(_0x429e26){if(_0x429e26){_0x154e68[_0x6c37('0x55')][_0x6c37('0x5c')]=_0x429e26['id'];_0x154e68[_0x6c37('0x55')][_0x6c37('0x5d')]=integrations[_0x6c37('0x5e')](_0x154e68[_0x6c37('0x55')][_0x6c37('0x5f')],_0x154e68[_0x6c37('0x55')][_0x6c37('0x3b')]);_0x154e68[_0x6c37('0x55')][_0x6c37('0x60')]=integrations[_0x6c37('0x61')](_0x154e68[_0x6c37('0x55')]['channel'],_0x154e68[_0x6c37('0x55')][_0x6c37('0x3b')]);return db[_0x6c37('0x57')]['create'](_0x154e68['body'],{'include':[{'model':db['ZendeskField'],'as':_0x6c37('0x5d')},{'model':db[_0x6c37('0x62')],'as':_0x6c37('0x60')}]});}return null;})['then'](respondWithResult(_0x2ee221,null))[_0x6c37('0x26')](handleError(_0x2ee221,null));};exports[_0x6c37('0x63')]=function(_0x36ba04,_0x825c8a,_0x4bd583){var _0x29d762='';return db[_0x6c37('0x38')][_0x6c37('0x5b')]({'where':{'id':_0x36ba04[_0x6c37('0x50')]['id']},'attributes':['id',_0x6c37('0x64'),_0x6c37('0x65'),_0x6c37('0x66'),_0x6c37('0x67'),_0x6c37('0x68')]})['then'](handleEntityNotFound(_0x825c8a,null))[_0x6c37('0x1c')](function(_0x68322){if(_0x68322){_0x29d762=_0x68322[_0x6c37('0x68')];var _0x517aef=_0x29d762[_0x6c37('0x69')](-0x1);if(_0x517aef==='/'){_0x29d762=_0x29d762[_0x6c37('0x6a')](0x0,_0x29d762[_0x6c37('0x6b')](_0x517aef));}var _0x418f21={'method':_0x6c37('0x6c'),'uri':util[_0x6c37('0x6d')](_0x6c37('0x6e'),_0x29d762,_0x6c37('0x6f')),'json':!![]};switch(_0x68322[_0x6c37('0x67')]){case _0x6c37('0x65'):_0x418f21[_0x6c37('0x70')]={'Authorization':util[_0x6c37('0x6d')]('Basic\x20%s',new Buffer(util[_0x6c37('0x6d')]('%s:%s',_0x68322[_0x6c37('0x64')],_0x68322[_0x6c37('0x65')]))[_0x6c37('0x71')](_0x6c37('0x72')))};break;case _0x6c37('0x66'):_0x418f21[_0x6c37('0x70')]={'Authorization':util[_0x6c37('0x6d')](_0x6c37('0x73'),new Buffer(util[_0x6c37('0x6d')]('%s/token:%s',_0x68322[_0x6c37('0x64')],_0x68322[_0x6c37('0x66')]))[_0x6c37('0x71')](_0x6c37('0x72')))};break;default:throw new db[(_0x6c37('0x74'))][(_0x6c37('0x75'))]('Unknown\x20authentication\x20type');}return rp(_0x418f21);}})['then'](function(_0x47140f){if(_0x47140f){var _0x41cc2c=['subject','description',_0x6c37('0x76'),_0x6c37('0x77')];_[_0x6c37('0x78')](_0x47140f['ticket_fields'],function(_0xdd7656){return _0x41cc2c[_0x6c37('0x79')](_0xdd7656[_0x6c37('0x3b')]);});return{'count':_0x47140f[_0x6c37('0x6f')][_0x6c37('0x42')],'rows':_[_0x6c37('0x7a')](_0x47140f[_0x6c37('0x6f')],function(_0x4a7bbe){return{'id':_0x4a7bbe['id'],'name':_0x4a7bbe[_0x6c37('0x7b')]>0x7?_0x4a7bbe[_0x6c37('0x7c')]:_0x4a7bbe['type'],'custom':_0x4a7bbe[_0x6c37('0x7b')]>0x7?!![]:![],'options':_0x4a7bbe[_0x6c37('0x7d')]?_0x4a7bbe['system_field_options']:_0x4a7bbe[_0x6c37('0x7e')]?_0x4a7bbe['custom_field_options']:[]};})};}})['then'](respondWithResult(_0x825c8a,null))[_0x6c37('0x26')](function(_0x3e704b){var _0x24f03c=_0x36ba04[_0x6c37('0x3e')][_0x6c37('0x7f')]?0x1f4:_0x3e704b[_0x6c37('0x80')]||0x1f4;logger['error'](_0x6c37('0x81'),_0x6c37('0x63'),_0x24f03c,JSON[_0x6c37('0x82')](_0x3e704b));delete _0x3e704b[_0x6c37('0x36')];if(_0x24f03c===0x191){_0x24f03c=0x190;}_0x825c8a[_0x6c37('0x28')](_0x24f03c)[_0x6c37('0x83')](_0x36ba04[_0x6c37('0x3e')][_0x6c37('0x7f')]?{'message':'Wrong\x20credentials','statusCode':_0x3e704b[_0x6c37('0x80')]}:_0x3e704b);});};