Built motion from commit (unavailable).|2.5.30
[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 _0x1261=['map','ZendeskAccount','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','includeAll','findAll','rows','show','include','create','body','find','params','getConfigurations','findOne','where','options','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','ZendeskConfiguration','ZendeskField','username','authType','remoteUri','lastIndexOf','GET','format','ticket_fields','password','headers','%s:%s','toString','base64','token','Basic\x20%s','%s/token:%s','Sequelize','ValidationError','Unknown\x20authentication\x20type','subject','description','group','remove','includes','position','title','system_field_options','custom_field_options','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','test','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','http','request','ZendeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','info','result','catch','sendStatus','status','end','json','limit','undefined','count','offset','set','apply','save','update','then','destroy','stack','name','send','index'];(function(_0x17ea7a,_0x39560d){var _0x25d5b6=function(_0x2e094a){while(--_0x2e094a){_0x17ea7a['push'](_0x17ea7a['shift']());}};_0x25d5b6(++_0x39560d);}(_0x1261,0x144));var _0x1126=function(_0x179c89,_0x3a69b2){_0x179c89=_0x179c89-0x0;var _0x4b87e5=_0x1261[_0x179c89];return _0x4b87e5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1126('0x0'));var zipdir=require(_0x1126('0x1'));var jsonpatch=require(_0x1126('0x2'));var rp=require(_0x1126('0x3'));var moment=require(_0x1126('0x4'));var BPromise=require(_0x1126('0x5'));var Mustache=require(_0x1126('0x6'));var util=require(_0x1126('0x7'));var path=require(_0x1126('0x8'));var sox=require(_0x1126('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1126('0xa'));var _=require(_0x1126('0xb'));var squel=require('squel');var crypto=require(_0x1126('0xc'));var jsforce=require(_0x1126('0xd'));var deskjs=require(_0x1126('0xe'));var toCsv=require(_0x1126('0xf'));var querystring=require(_0x1126('0x10'));var Papa=require('papaparse');var Redis=require(_0x1126('0x11'));var authService=require(_0x1126('0x12'));var qs=require(_0x1126('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1126('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x1126('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x1126('0x16'));var db=require(_0x1126('0x17'))['db'];var integrations=require(_0x1126('0x18'));var jayson=require(_0x1126('0x19'));var client=jayson[_0x1126('0x1a')][_0x1126('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0xd8ca42,_0x2048ad,_0x43850b,_0x53a8f0){return new BPromise(function(_0x5de9a7,_0x1af673){var _0x154e20=_0x53a8f0||client;return _0x154e20[_0x1126('0x1c')](_0xd8ca42,_0x43850b)['then'](function(_0x45149c){logger['info'](_0x1126('0x1d'),_0x2048ad,_0x1126('0x1e'));logger[_0x1126('0x1f')]('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x2048ad,_0x1126('0x1e'),JSON[_0x1126('0x20')](_0x45149c));if(_0x45149c['error']){if(_0x45149c['error'][_0x1126('0x21')]===0x1f4){logger[_0x1126('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0x2048ad,_0x45149c['error'][_0x1126('0x23')]);return _0x1af673(_0x45149c['error'][_0x1126('0x23')]);}logger[_0x1126('0x22')](_0x1126('0x1d'),_0x2048ad,_0x45149c['error'][_0x1126('0x23')]);return _0x5de9a7(_0x45149c['error']['message']);}else{logger[_0x1126('0x24')](_0x1126('0x1d'),_0x2048ad,_0x1126('0x1e'));_0x5de9a7(_0x45149c[_0x1126('0x25')]['message']);}})[_0x1126('0x26')](function(_0x477e6a){logger['error'](_0x1126('0x1d'),_0x2048ad,_0x477e6a);_0x1af673(_0x477e6a);});});}function respondWithStatusCode(_0x59cd8e,_0x529dd9){_0x529dd9=_0x529dd9||0xcc;return function(_0x4b57ab){if(_0x4b57ab){return _0x59cd8e[_0x1126('0x27')](_0x529dd9);}return _0x59cd8e[_0x1126('0x28')](_0x529dd9)[_0x1126('0x29')]();};}function respondWithResult(_0x34bcf1,_0x566c09){_0x566c09=_0x566c09||0xc8;return function(_0x1b07a7){if(_0x1b07a7){return _0x34bcf1[_0x1126('0x28')](_0x566c09)[_0x1126('0x2a')](_0x1b07a7);}};}function respondWithFilteredResult(_0x589725,_0x35eec3){return function(_0x375e59){if(_0x375e59){var _0xa293f4=typeof _0x35eec3['offset']==='undefined'&&typeof _0x35eec3[_0x1126('0x2b')]===_0x1126('0x2c');var _0x55e195=_0x375e59[_0x1126('0x2d')];var _0x23d2bc=_0xa293f4?0x0:_0x35eec3['offset'];var _0x3fa694=_0xa293f4?_0x375e59['count']:_0x35eec3[_0x1126('0x2e')]+_0x35eec3['limit'];var _0x771bb8;if(_0x3fa694>=_0x55e195){_0x3fa694=_0x55e195;_0x771bb8=0xc8;}else{_0x771bb8=0xce;}_0x589725['status'](_0x771bb8);return _0x589725[_0x1126('0x2f')]('Content-Range',_0x23d2bc+'-'+_0x3fa694+'/'+_0x55e195)['json'](_0x375e59);}return null;};}function patchUpdates(_0x4a53ab){return function(_0x17646e){try{jsonpatch[_0x1126('0x30')](_0x17646e,_0x4a53ab,!![]);}catch(_0x1cef48){return BPromise['reject'](_0x1cef48);}return _0x17646e[_0x1126('0x31')]();};}function saveUpdates(_0x226afb,_0x56f7f8){return function(_0x3dd50e){if(_0x3dd50e){return _0x3dd50e[_0x1126('0x32')](_0x226afb)[_0x1126('0x33')](function(_0x29fbfa){return _0x29fbfa;});}return null;};}function removeEntity(_0x5836a2,_0x5ecbc3){return function(_0x2a7edc){if(_0x2a7edc){return _0x2a7edc[_0x1126('0x34')]()[_0x1126('0x33')](function(){_0x5836a2[_0x1126('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x145314,_0x6f4312){return function(_0x313ebe){if(!_0x313ebe){_0x145314[_0x1126('0x27')](0x194);}return _0x313ebe;};}function handleError(_0x3b0f79,_0x5df232){_0x5df232=_0x5df232||0x1f4;return function(_0x2a0dfe){logger[_0x1126('0x22')](_0x2a0dfe[_0x1126('0x35')]);if(_0x2a0dfe[_0x1126('0x36')]){delete _0x2a0dfe['name'];}_0x3b0f79['status'](_0x5df232)[_0x1126('0x37')](_0x2a0dfe);};}exports[_0x1126('0x38')]=function(_0x511e6b,_0xde37cf){var _0xf3c21b={},_0x11b0f6={},_0x5c08b9={'count':0x0,'rows':[]};var _0x4b3859=_[_0x1126('0x39')](db[_0x1126('0x3a')][_0x1126('0x3b')],function(_0x156554){return{'name':_0x156554['fieldName'],'type':_0x156554[_0x1126('0x3c')]['key']};});_0x11b0f6[_0x1126('0x3d')]=_[_0x1126('0x39')](_0x4b3859,_0x1126('0x36'));_0x11b0f6[_0x1126('0x3e')]=_[_0x1126('0x3f')](_0x511e6b['query']);_0x11b0f6[_0x1126('0x40')]=_[_0x1126('0x41')](_0x11b0f6[_0x1126('0x3d')],_0x11b0f6[_0x1126('0x3e')]);_0xf3c21b[_0x1126('0x42')]=_[_0x1126('0x41')](_0x11b0f6[_0x1126('0x3d')],qs['fields'](_0x511e6b[_0x1126('0x3e')][_0x1126('0x43')]));_0xf3c21b[_0x1126('0x42')]=_0xf3c21b[_0x1126('0x42')][_0x1126('0x44')]?_0xf3c21b['attributes']:_0x11b0f6['model'];if(!_0x511e6b[_0x1126('0x3e')][_0x1126('0x45')](_0x1126('0x46'))){_0xf3c21b[_0x1126('0x2b')]=qs[_0x1126('0x2b')](_0x511e6b[_0x1126('0x3e')]['limit']);_0xf3c21b['offset']=qs['offset'](_0x511e6b[_0x1126('0x3e')]['offset']);}_0xf3c21b[_0x1126('0x47')]=qs[_0x1126('0x48')](_0x511e6b[_0x1126('0x3e')][_0x1126('0x48')]);_0xf3c21b['where']=qs['filters'](_[_0x1126('0x49')](_0x511e6b[_0x1126('0x3e')],_0x11b0f6[_0x1126('0x40')]),_0x4b3859);if(_0x511e6b['query'][_0x1126('0x4a')]){_0xf3c21b['where']=_[_0x1126('0x4b')](_0xf3c21b['where'],{'$or':_[_0x1126('0x39')](_0x4b3859,function(_0xe178b4){if(_0xe178b4[_0x1126('0x3c')]!=='VIRTUAL'){var _0xfaa3d8={};_0xfaa3d8[_0xe178b4[_0x1126('0x36')]]={'$like':'%'+_0x511e6b[_0x1126('0x3e')]['filter']+'%'};return _0xfaa3d8;}})});}_0xf3c21b=_['merge']({},_0xf3c21b,_0x511e6b['options']);var _0x6e78cf={'where':_0xf3c21b['where']};return db[_0x1126('0x3a')]['count'](_0x6e78cf)[_0x1126('0x33')](function(_0x323499){_0x5c08b9[_0x1126('0x2d')]=_0x323499;if(_0x511e6b[_0x1126('0x3e')][_0x1126('0x4c')]){_0xf3c21b['include']=[{'all':!![]}];}return db[_0x1126('0x3a')][_0x1126('0x4d')](_0xf3c21b);})['then'](function(_0x1a15f8){_0x5c08b9[_0x1126('0x4e')]=_0x1a15f8;return _0x5c08b9;})['then'](respondWithFilteredResult(_0xde37cf,_0xf3c21b))[_0x1126('0x26')](handleError(_0xde37cf,null));};exports[_0x1126('0x4f')]=function(_0x518e0a,_0x3e4eeb){var _0xbdde58={'raw':![],'where':{'id':_0x518e0a['params']['id']}},_0x213a76={};_0x213a76[_0x1126('0x3d')]=_[_0x1126('0x3f')](db[_0x1126('0x3a')][_0x1126('0x3b')]);_0x213a76[_0x1126('0x3e')]=_[_0x1126('0x3f')](_0x518e0a[_0x1126('0x3e')]);_0x213a76[_0x1126('0x40')]=_['intersection'](_0x213a76[_0x1126('0x3d')],_0x213a76['query']);_0xbdde58[_0x1126('0x42')]=_[_0x1126('0x41')](_0x213a76['model'],qs['fields'](_0x518e0a[_0x1126('0x3e')][_0x1126('0x43')]));_0xbdde58[_0x1126('0x42')]=_0xbdde58['attributes'][_0x1126('0x44')]?_0xbdde58[_0x1126('0x42')]:_0x213a76[_0x1126('0x3d')];if(_0x518e0a[_0x1126('0x3e')]['includeAll']){_0xbdde58[_0x1126('0x50')]=[{'all':!![]}];}_0xbdde58=_[_0x1126('0x4b')]({},_0xbdde58,_0x518e0a['options']);return db['ZendeskAccount']['find'](_0xbdde58)['then'](handleEntityNotFound(_0x3e4eeb,null))[_0x1126('0x33')](respondWithResult(_0x3e4eeb,null))[_0x1126('0x26')](handleError(_0x3e4eeb,null));};exports['create']=function(_0x16552b,_0x1c7a2b){return db[_0x1126('0x3a')][_0x1126('0x51')](_0x16552b[_0x1126('0x52')],{})['then'](respondWithResult(_0x1c7a2b,0xc9))[_0x1126('0x26')](handleError(_0x1c7a2b,null));};exports[_0x1126('0x32')]=function(_0x5d6414,_0x322016){if(_0x5d6414[_0x1126('0x52')]['id']){delete _0x5d6414[_0x1126('0x52')]['id'];}return db[_0x1126('0x3a')][_0x1126('0x53')]({'where':{'id':_0x5d6414['params']['id']}})[_0x1126('0x33')](handleEntityNotFound(_0x322016,null))['then'](saveUpdates(_0x5d6414[_0x1126('0x52')],null))[_0x1126('0x33')](respondWithResult(_0x322016,null))[_0x1126('0x26')](handleError(_0x322016,null));};exports['destroy']=function(_0x427add,_0x2340f8){return db['ZendeskAccount'][_0x1126('0x53')]({'where':{'id':_0x427add[_0x1126('0x54')]['id']}})[_0x1126('0x33')](handleEntityNotFound(_0x2340f8,null))['then'](removeEntity(_0x2340f8,null))[_0x1126('0x26')](handleError(_0x2340f8,null));};exports[_0x1126('0x55')]=function(_0x22ab18,_0x308ee4,_0x128c94){var _0x26949c={};var _0x30c848={};var _0x114be2;var _0x47e53d;return db[_0x1126('0x3a')][_0x1126('0x56')]({'where':{'id':_0x22ab18[_0x1126('0x54')]['id']}})[_0x1126('0x33')](handleEntityNotFound(_0x308ee4,null))[_0x1126('0x33')](function(_0x4f5772){if(_0x4f5772){_0x114be2=_0x4f5772;_0x30c848[_0x1126('0x3d')]=_[_0x1126('0x3f')](db['ZendeskConfiguration'][_0x1126('0x3b')]);_0x30c848['query']=_[_0x1126('0x3f')](_0x22ab18[_0x1126('0x3e')]);_0x30c848['filters']=_[_0x1126('0x41')](_0x30c848[_0x1126('0x3d')],_0x30c848[_0x1126('0x3e')]);_0x26949c['attributes']=_[_0x1126('0x41')](_0x30c848['model'],qs['fields'](_0x22ab18[_0x1126('0x3e')][_0x1126('0x43')]));_0x26949c[_0x1126('0x42')]=_0x26949c[_0x1126('0x42')][_0x1126('0x44')]?_0x26949c[_0x1126('0x42')]:_0x30c848[_0x1126('0x3d')];_0x26949c['order']=qs[_0x1126('0x48')](_0x22ab18[_0x1126('0x3e')][_0x1126('0x48')]);_0x26949c[_0x1126('0x57')]=qs[_0x1126('0x40')](_[_0x1126('0x49')](_0x22ab18['query'],_0x30c848['filters']));if(_0x22ab18[_0x1126('0x3e')][_0x1126('0x4a')]){_0x26949c['where']=_['merge'](_0x26949c['where'],{'$or':_['map'](_0x26949c[_0x1126('0x42')],function(_0x37b1ab){var _0x3440c5={};_0x3440c5[_0x37b1ab]={'$like':'%'+_0x22ab18['query'][_0x1126('0x4a')]+'%'};return _0x3440c5;})});}_0x26949c=_[_0x1126('0x4b')]({},_0x26949c,_0x22ab18[_0x1126('0x58')]);return _0x114be2[_0x1126('0x55')](_0x26949c);}})[_0x1126('0x33')](function(_0x3f007b){if(_0x3f007b){_0x47e53d=_0x3f007b[_0x1126('0x44')];if(!_0x22ab18['query'][_0x1126('0x45')](_0x1126('0x46'))){_0x26949c[_0x1126('0x2b')]=qs[_0x1126('0x2b')](_0x22ab18[_0x1126('0x3e')]['limit']);_0x26949c['offset']=qs[_0x1126('0x2e')](_0x22ab18[_0x1126('0x3e')]['offset']);}return _0x114be2[_0x1126('0x55')](_0x26949c);}})[_0x1126('0x33')](function(_0x366675){if(_0x366675){return _0x366675?{'count':_0x47e53d,'rows':_0x366675}:null;}})[_0x1126('0x33')](respondWithResult(_0x308ee4,null))[_0x1126('0x26')](handleError(_0x308ee4,null));};exports[_0x1126('0x59')]=function(_0x41ce78,_0x247f12,_0xd20fbe){if(_0x41ce78[_0x1126('0x52')]['id']){delete _0x41ce78[_0x1126('0x52')]['id'];}return db[_0x1126('0x3a')][_0x1126('0x56')]({'where':{'id':_0x41ce78['params']['id']}})[_0x1126('0x33')](handleEntityNotFound(_0x247f12,null))[_0x1126('0x33')](function(_0x2b61ae){if(_0x2b61ae){_0x41ce78['body']['AccountId']=_0x2b61ae['id'];_0x41ce78[_0x1126('0x52')][_0x1126('0x5a')]=integrations[_0x1126('0x5b')](_0x41ce78[_0x1126('0x52')]['channel'],_0x41ce78['body']['type']);_0x41ce78[_0x1126('0x52')][_0x1126('0x5c')]=integrations[_0x1126('0x5d')](_0x41ce78[_0x1126('0x52')]['channel'],_0x41ce78[_0x1126('0x52')]['type']);return db[_0x1126('0x5e')][_0x1126('0x51')](_0x41ce78[_0x1126('0x52')],{'include':[{'model':db[_0x1126('0x5f')],'as':_0x1126('0x5a')},{'model':db[_0x1126('0x5f')],'as':_0x1126('0x5c')}]});}return null;})['then'](respondWithResult(_0x247f12,null))[_0x1126('0x26')](handleError(_0x247f12,null));};exports['getFields']=function(_0x3c1dda,_0x906531,_0x4dd275){var _0x376175='';return db[_0x1126('0x3a')]['findOne']({'where':{'id':_0x3c1dda[_0x1126('0x54')]['id']},'attributes':['id',_0x1126('0x60'),'password','token',_0x1126('0x61'),_0x1126('0x62')]})[_0x1126('0x33')](handleEntityNotFound(_0x906531,null))['then'](function(_0x4d007b){if(_0x4d007b){_0x376175=_0x4d007b['remoteUri'];var _0x2eb2b7=_0x376175['slice'](-0x1);if(_0x2eb2b7==='/'){_0x376175=_0x376175['substring'](0x0,_0x376175[_0x1126('0x63')](_0x2eb2b7));}var _0x5b1cd6={'method':_0x1126('0x64'),'uri':util[_0x1126('0x65')]('%s/%s',_0x376175,_0x1126('0x66')),'json':!![]};switch(_0x4d007b[_0x1126('0x61')]){case _0x1126('0x67'):_0x5b1cd6[_0x1126('0x68')]={'Authorization':util[_0x1126('0x65')]('Basic\x20%s',new Buffer(util[_0x1126('0x65')](_0x1126('0x69'),_0x4d007b['username'],_0x4d007b[_0x1126('0x67')]))[_0x1126('0x6a')](_0x1126('0x6b')))};break;case _0x1126('0x6c'):_0x5b1cd6[_0x1126('0x68')]={'Authorization':util[_0x1126('0x65')](_0x1126('0x6d'),new Buffer(util[_0x1126('0x65')](_0x1126('0x6e'),_0x4d007b[_0x1126('0x60')],_0x4d007b[_0x1126('0x6c')]))[_0x1126('0x6a')](_0x1126('0x6b')))};break;default:throw new db[(_0x1126('0x6f'))][(_0x1126('0x70'))](_0x1126('0x71'));}return rp(_0x5b1cd6);}})['then'](function(_0x31cfb5){if(_0x31cfb5){var _0x20c91f=[_0x1126('0x72'),_0x1126('0x73'),_0x1126('0x74'),'assignee'];_[_0x1126('0x75')](_0x31cfb5['ticket_fields'],function(_0x5bdb30){return _0x20c91f[_0x1126('0x76')](_0x5bdb30[_0x1126('0x3c')]);});return{'count':_0x31cfb5['ticket_fields']['length'],'rows':_[_0x1126('0x39')](_0x31cfb5[_0x1126('0x66')],function(_0x228552){return{'id':_0x228552['id'],'name':_0x228552[_0x1126('0x77')]>0x7?_0x228552[_0x1126('0x78')]:_0x228552[_0x1126('0x3c')],'custom':_0x228552[_0x1126('0x77')]>0x7?!![]:![],'options':_0x228552[_0x1126('0x79')]?_0x228552[_0x1126('0x79')]:_0x228552['custom_field_options']?_0x228552[_0x1126('0x7a')]:[]};})};}})[_0x1126('0x33')](respondWithResult(_0x906531,null))[_0x1126('0x26')](function(_0xc69f7c){var _0x23c4ab=_0x3c1dda[_0x1126('0x3e')]['test']?0x1f4:_0xc69f7c[_0x1126('0x7b')]||0x1f4;logger[_0x1126('0x22')](_0x1126('0x7c'),_0x1126('0x7d'),_0x23c4ab,JSON[_0x1126('0x20')](_0xc69f7c));delete _0xc69f7c[_0x1126('0x36')];if(_0x23c4ab===0x191){_0x23c4ab=0x190;}_0x906531[_0x1126('0x28')](_0x23c4ab)[_0x1126('0x37')](_0x3c1dda[_0x1126('0x3e')][_0x1126('0x7e')]?{'message':'Wrong\x20credentials','statusCode':_0xc69f7c['statusCode']}:_0xc69f7c);});};