Built motion from commit (unavailable).|2.5.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 _0x9de7=['ValidationError','description','group','assignee','remove','position','title','system_field_options','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../components/integrations/configuration','jayson/promise','client','http','Sequelize','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','ZendeskAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','sendStatus','status','end','json','count','offset','set','Content-Range','reject','save','update','then','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','options','findAll','rows','show','params','include','find','catch','create','body','destroy','findOne','ZendeskConfiguration','length','order','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','ZendeskField','getFields','password','token','authType','slice','format','%s/%s','ticket_fields','headers','Basic\x20%s','username','toString','base64'];(function(_0x468ec7,_0x4a398d){var _0x3773f9=function(_0x197b2f){while(--_0x197b2f){_0x468ec7['push'](_0x468ec7['shift']());}};_0x3773f9(++_0x4a398d);}(_0x9de7,0x17a));var _0x79de=function(_0x57cb4f,_0x541f57){_0x57cb4f=_0x57cb4f-0x0;var _0x29bb45=_0x9de7[_0x57cb4f];return _0x29bb45;};'use strict';var pdf=require(_0x79de('0x0'));var emlformat=require(_0x79de('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x79de('0x2'));var jsonpatch=require(_0x79de('0x3'));var rp=require(_0x79de('0x4'));var moment=require(_0x79de('0x5'));var BPromise=require(_0x79de('0x6'));var Mustache=require(_0x79de('0x7'));var util=require('util');var path=require(_0x79de('0x8'));var sox=require(_0x79de('0x9'));var csv=require(_0x79de('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x79de('0xb'));var squel=require(_0x79de('0xc'));var crypto=require(_0x79de('0xd'));var jsforce=require(_0x79de('0xe'));var deskjs=require(_0x79de('0xf'));var toCsv=require(_0x79de('0xa'));var querystring=require(_0x79de('0x10'));var Papa=require(_0x79de('0x11'));var Redis=require('ioredis');var authService=require(_0x79de('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x79de('0x13'));var hardwareService=require(_0x79de('0x14'));var logger=require(_0x79de('0x15'))(_0x79de('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var integrations=require(_0x79de('0x17'));var jayson=require(_0x79de('0x18'));var client=jayson[_0x79de('0x19')][_0x79de('0x1a')]({'port':0x232a});function checkPasswordPattern(_0x45689f,_0x3f8abe,_0x5da39d){if(_0x5da39d){var _0x592d17=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x592d17['test'](_0x3f8abe)){return _0x45689f;}else{throw new db[(_0x79de('0x1b'))]['ValidationError'](_0x79de('0x1c'));}}else{return _0x45689f;}}function respondWithRpcPromise(_0x4d2fec,_0x4b73f5,_0x162b85,_0xa28575){return new BPromise(function(_0x9cfccf,_0x3a7533){var _0x2e8f46=_0xa28575||client;return _0x2e8f46[_0x79de('0x1d')](_0x4d2fec,_0x162b85)['then'](function(_0x30e40e){logger['info'](_0x79de('0x1e'),_0x4b73f5,_0x79de('0x1f'));logger['debug']('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x4b73f5,_0x79de('0x1f'),JSON[_0x79de('0x20')](_0x30e40e));if(_0x30e40e[_0x79de('0x21')]){if(_0x30e40e[_0x79de('0x21')][_0x79de('0x22')]===0x1f4){logger[_0x79de('0x21')](_0x79de('0x1e'),_0x4b73f5,_0x30e40e[_0x79de('0x21')][_0x79de('0x23')]);return _0x3a7533(_0x30e40e['error'][_0x79de('0x23')]);}logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x4b73f5,_0x30e40e['error'][_0x79de('0x23')]);return _0x9cfccf(_0x30e40e[_0x79de('0x21')]['message']);}else{logger[_0x79de('0x24')](_0x79de('0x1e'),_0x4b73f5,'request\x20sent');_0x9cfccf(_0x30e40e[_0x79de('0x25')][_0x79de('0x23')]);}})['catch'](function(_0x4927ee){logger[_0x79de('0x21')](_0x79de('0x1e'),_0x4b73f5,_0x4927ee);_0x3a7533(_0x4927ee);});});}function respondWithStatusCode(_0x51de8e,_0x14a818){_0x14a818=_0x14a818||0xcc;return function(_0x423c97){if(_0x423c97){return _0x51de8e[_0x79de('0x26')](_0x14a818);}return _0x51de8e[_0x79de('0x27')](_0x14a818)[_0x79de('0x28')]();};}function respondWithResult(_0x3139be,_0x38ba78){_0x38ba78=_0x38ba78||0xc8;return function(_0x311957){if(_0x311957){return _0x3139be[_0x79de('0x27')](_0x38ba78)[_0x79de('0x29')](_0x311957);}};}function respondWithFilteredResult(_0x3453d1,_0x492154){return function(_0x55331a){if(_0x55331a){var _0x12fcdc=_0x55331a[_0x79de('0x2a')],_0x2430b0=_0x492154[_0x79de('0x2b')],_0x19c7c5=_0x492154['offset']+_0x492154['limit'],_0x279485;if(_0x19c7c5>=_0x12fcdc){_0x19c7c5=_0x12fcdc;_0x279485=0xc8;}else{_0x279485=0xce;}_0x3453d1['status'](_0x279485);return _0x3453d1[_0x79de('0x2c')](_0x79de('0x2d'),_0x2430b0+'-'+_0x19c7c5+'/'+_0x12fcdc)[_0x79de('0x29')](_0x55331a);}return null;};}function patchUpdates(_0x358213){return function(_0x57a3d6){try{jsonpatch['apply'](_0x57a3d6,_0x358213,!![]);}catch(_0x4cce05){return BPromise[_0x79de('0x2e')](_0x4cce05);}return _0x57a3d6[_0x79de('0x2f')]();};}function saveUpdates(_0x157474,_0x214bae){return function(_0x484e60){if(_0x484e60){return _0x484e60[_0x79de('0x30')](_0x157474)[_0x79de('0x31')](function(_0x35a65b){return _0x35a65b;});}return null;};}function removeEntity(_0x4d3c29,_0x17cce6){return function(_0x4633cb){if(_0x4633cb){return _0x4633cb['destroy']()[_0x79de('0x31')](function(){_0x4d3c29[_0x79de('0x27')](0xcc)[_0x79de('0x28')]();});}};}function handleEntityNotFound(_0x1334f6,_0x483a23){return function(_0x370358){if(!_0x370358){_0x1334f6[_0x79de('0x26')](0x194);}return _0x370358;};}function handleError(_0x48f516,_0x5b04d6){_0x5b04d6=_0x5b04d6||0x1f4;return function(_0x5af75a){logger[_0x79de('0x21')](_0x5af75a['stack']);if(_0x5af75a[_0x79de('0x32')]){delete _0x5af75a[_0x79de('0x32')];}_0x48f516[_0x79de('0x27')](_0x5b04d6)[_0x79de('0x33')](_0x5af75a);};}exports[_0x79de('0x34')]=function(_0x408ad8,_0x2daede){var _0x2be0df={},_0x311a93={},_0x2eff4f={'count':0x0,'rows':[]};var _0x186834=_[_0x79de('0x35')](db[_0x79de('0x36')][_0x79de('0x37')],function(_0x4c5d76){return{'name':_0x4c5d76[_0x79de('0x38')],'type':_0x4c5d76[_0x79de('0x39')][_0x79de('0x3a')]};});_0x311a93['model']=_['map'](_0x186834,_0x79de('0x32'));_0x311a93[_0x79de('0x3b')]=_[_0x79de('0x3c')](_0x408ad8[_0x79de('0x3b')]);_0x311a93[_0x79de('0x3d')]=_[_0x79de('0x3e')](_0x311a93[_0x79de('0x3f')],_0x311a93['query']);_0x2be0df[_0x79de('0x40')]=_['intersection'](_0x311a93[_0x79de('0x3f')],qs[_0x79de('0x41')](_0x408ad8[_0x79de('0x3b')][_0x79de('0x41')]));_0x2be0df[_0x79de('0x40')]=_0x2be0df[_0x79de('0x40')]['length']?_0x2be0df[_0x79de('0x40')]:_0x311a93[_0x79de('0x3f')];if(!_0x408ad8[_0x79de('0x3b')][_0x79de('0x42')](_0x79de('0x43'))){_0x2be0df['limit']=qs[_0x79de('0x44')](_0x408ad8[_0x79de('0x3b')]['limit']);_0x2be0df['offset']=qs[_0x79de('0x2b')](_0x408ad8[_0x79de('0x3b')][_0x79de('0x2b')]);}_0x2be0df['order']=qs[_0x79de('0x45')](_0x408ad8[_0x79de('0x3b')][_0x79de('0x45')]);_0x2be0df[_0x79de('0x46')]=qs['filters'](_[_0x79de('0x47')](_0x408ad8[_0x79de('0x3b')],_0x311a93[_0x79de('0x3d')]));if(_0x408ad8[_0x79de('0x3b')][_0x79de('0x48')]){_0x2be0df[_0x79de('0x46')]=_[_0x79de('0x49')](_0x2be0df['where'],{'$or':_[_0x79de('0x35')](_0x186834,function(_0x8a11e0){if(_0x8a11e0['type']!=='VIRTUAL'){var _0x17b310={};_0x17b310[_0x8a11e0[_0x79de('0x32')]]={'$like':'%'+_0x408ad8[_0x79de('0x3b')][_0x79de('0x48')]+'%'};return _0x17b310;}})});}_0x2be0df=_[_0x79de('0x49')]({},_0x2be0df,_0x408ad8[_0x79de('0x4a')]);var _0x38a628={'where':_0x2be0df[_0x79de('0x46')]};return db[_0x79de('0x36')]['count'](_0x38a628)[_0x79de('0x31')](function(_0x5d7969){_0x2eff4f[_0x79de('0x2a')]=_0x5d7969;if(_0x408ad8[_0x79de('0x3b')]['includeAll']){_0x2be0df['include']=[{'all':!![]}];}return db[_0x79de('0x36')][_0x79de('0x4b')](_0x2be0df);})[_0x79de('0x31')](function(_0x107c3e){_0x2eff4f[_0x79de('0x4c')]=_0x107c3e;return _0x2eff4f;})['then'](respondWithFilteredResult(_0x2daede,_0x2be0df))['catch'](handleError(_0x2daede,null));};exports[_0x79de('0x4d')]=function(_0x2da308,_0x839bf){var _0x406fbe={'raw':![],'where':{'id':_0x2da308[_0x79de('0x4e')]['id']}},_0x509fcf={};_0x509fcf['model']=_[_0x79de('0x3c')](db[_0x79de('0x36')]['rawAttributes']);_0x509fcf[_0x79de('0x3b')]=_[_0x79de('0x3c')](_0x2da308[_0x79de('0x3b')]);_0x509fcf['filters']=_['intersection'](_0x509fcf[_0x79de('0x3f')],_0x509fcf[_0x79de('0x3b')]);_0x406fbe['attributes']=_[_0x79de('0x3e')](_0x509fcf[_0x79de('0x3f')],qs[_0x79de('0x41')](_0x2da308[_0x79de('0x3b')][_0x79de('0x41')]));_0x406fbe[_0x79de('0x40')]=_0x406fbe[_0x79de('0x40')]['length']?_0x406fbe[_0x79de('0x40')]:_0x509fcf[_0x79de('0x3f')];if(_0x2da308[_0x79de('0x3b')]['includeAll']){_0x406fbe[_0x79de('0x4f')]=[{'all':!![]}];}_0x406fbe=_['merge']({},_0x406fbe,_0x2da308[_0x79de('0x4a')]);return db[_0x79de('0x36')][_0x79de('0x50')](_0x406fbe)['then'](handleEntityNotFound(_0x839bf,null))[_0x79de('0x31')](respondWithResult(_0x839bf,null))[_0x79de('0x51')](handleError(_0x839bf,null));};exports[_0x79de('0x52')]=function(_0x33c494,_0x59a8e0){return db[_0x79de('0x36')][_0x79de('0x52')](_0x33c494[_0x79de('0x53')],{})[_0x79de('0x31')](respondWithResult(_0x59a8e0,0xc9))[_0x79de('0x51')](handleError(_0x59a8e0,null));};exports[_0x79de('0x30')]=function(_0x19b0cf,_0x1cc0bf){if(_0x19b0cf[_0x79de('0x53')]['id']){delete _0x19b0cf['body']['id'];}return db[_0x79de('0x36')]['find']({'where':{'id':_0x19b0cf[_0x79de('0x4e')]['id']}})[_0x79de('0x31')](handleEntityNotFound(_0x1cc0bf,null))[_0x79de('0x31')](saveUpdates(_0x19b0cf[_0x79de('0x53')],null))[_0x79de('0x31')](respondWithResult(_0x1cc0bf,null))[_0x79de('0x51')](handleError(_0x1cc0bf,null));};exports[_0x79de('0x54')]=function(_0x385189,_0x5b4f92){return db[_0x79de('0x36')][_0x79de('0x50')]({'where':{'id':_0x385189[_0x79de('0x4e')]['id']}})[_0x79de('0x31')](handleEntityNotFound(_0x5b4f92,null))[_0x79de('0x31')](removeEntity(_0x5b4f92,null))[_0x79de('0x51')](handleError(_0x5b4f92,null));};exports['getConfigurations']=function(_0x36cbcc,_0x5ebf66,_0x1b90ba){var _0x3f5e0a={};var _0x6fb6ac={};var _0x52c826;var _0x509475;return db['ZendeskAccount'][_0x79de('0x55')]({'where':{'id':_0x36cbcc[_0x79de('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5ebf66,null))[_0x79de('0x31')](function(_0x5f15aa){if(_0x5f15aa){_0x52c826=_0x5f15aa;_0x6fb6ac['model']=_[_0x79de('0x3c')](db[_0x79de('0x56')][_0x79de('0x37')]);_0x6fb6ac[_0x79de('0x3b')]=_[_0x79de('0x3c')](_0x36cbcc[_0x79de('0x3b')]);_0x6fb6ac['filters']=_[_0x79de('0x3e')](_0x6fb6ac['model'],_0x6fb6ac[_0x79de('0x3b')]);_0x3f5e0a[_0x79de('0x40')]=_[_0x79de('0x3e')](_0x6fb6ac['model'],qs['fields'](_0x36cbcc[_0x79de('0x3b')][_0x79de('0x41')]));_0x3f5e0a[_0x79de('0x40')]=_0x3f5e0a['attributes'][_0x79de('0x57')]?_0x3f5e0a['attributes']:_0x6fb6ac[_0x79de('0x3f')];_0x3f5e0a[_0x79de('0x58')]=qs['sort'](_0x36cbcc[_0x79de('0x3b')]['sort']);_0x3f5e0a[_0x79de('0x46')]=qs[_0x79de('0x3d')](_[_0x79de('0x47')](_0x36cbcc[_0x79de('0x3b')],_0x6fb6ac[_0x79de('0x3d')]));if(_0x36cbcc[_0x79de('0x3b')][_0x79de('0x48')]){_0x3f5e0a['where']=_[_0x79de('0x49')](_0x3f5e0a['where'],{'$or':_[_0x79de('0x35')](_0x3f5e0a[_0x79de('0x40')],function(_0x154b7f){var _0x42ad50={};_0x42ad50[_0x154b7f]={'$like':'%'+_0x36cbcc[_0x79de('0x3b')]['filter']+'%'};return _0x42ad50;})});}_0x3f5e0a=_['merge']({},_0x3f5e0a,_0x36cbcc[_0x79de('0x4a')]);return _0x52c826[_0x79de('0x59')](_0x3f5e0a);}})[_0x79de('0x31')](function(_0x4f5724){if(_0x4f5724){_0x509475=_0x4f5724['length'];if(!_0x36cbcc[_0x79de('0x3b')][_0x79de('0x42')]('nolimit')){_0x3f5e0a['limit']=qs['limit'](_0x36cbcc[_0x79de('0x3b')]['limit']);_0x3f5e0a[_0x79de('0x2b')]=qs['offset'](_0x36cbcc['query']['offset']);}return _0x52c826[_0x79de('0x59')](_0x3f5e0a);}})['then'](function(_0x1c4398){if(_0x1c4398){return _0x1c4398?{'count':_0x509475,'rows':_0x1c4398}:null;}})[_0x79de('0x31')](respondWithResult(_0x5ebf66,null))[_0x79de('0x51')](handleError(_0x5ebf66,null));};exports[_0x79de('0x5a')]=function(_0x20bc8e,_0x1f6250,_0x3e9e42){if(_0x20bc8e[_0x79de('0x53')]['id']){delete _0x20bc8e[_0x79de('0x53')]['id'];}return db[_0x79de('0x36')][_0x79de('0x55')]({'where':{'id':_0x20bc8e['params']['id']}})[_0x79de('0x31')](handleEntityNotFound(_0x1f6250,null))['then'](function(_0x18512f){if(_0x18512f){_0x20bc8e[_0x79de('0x53')][_0x79de('0x5b')]=_0x18512f['id'];_0x20bc8e[_0x79de('0x53')][_0x79de('0x5c')]=integrations[_0x79de('0x5d')](_0x20bc8e[_0x79de('0x53')]['channel'],_0x20bc8e['body'][_0x79de('0x39')]);_0x20bc8e[_0x79de('0x53')][_0x79de('0x5e')]=integrations[_0x79de('0x5f')](_0x20bc8e[_0x79de('0x53')]['channel'],_0x20bc8e[_0x79de('0x53')][_0x79de('0x39')]);return db[_0x79de('0x56')][_0x79de('0x52')](_0x20bc8e[_0x79de('0x53')],{'include':[{'model':db[_0x79de('0x60')],'as':_0x79de('0x5c')},{'model':db[_0x79de('0x60')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x1f6250,null))[_0x79de('0x51')](handleError(_0x1f6250,null));};exports[_0x79de('0x61')]=function(_0x9ab628,_0x9618ce,_0x5bbecf){var _0x3e6f63='';return db[_0x79de('0x36')]['findOne']({'where':{'id':_0x9ab628['params']['id']},'attributes':['id','username',_0x79de('0x62'),_0x79de('0x63'),_0x79de('0x64'),'remoteUri']})[_0x79de('0x31')](handleEntityNotFound(_0x9618ce,null))['then'](function(_0x326676){if(_0x326676){_0x3e6f63=_0x326676['remoteUri'];var _0x509e25=_0x3e6f63[_0x79de('0x65')](-0x1);if(_0x509e25==='/'){_0x3e6f63=_0x3e6f63['substring'](0x0,_0x3e6f63['lastIndexOf'](_0x509e25));}var _0xd7921b={'method':'GET','uri':util[_0x79de('0x66')](_0x79de('0x67'),_0x3e6f63,_0x79de('0x68')),'json':!![]};switch(_0x326676[_0x79de('0x64')]){case _0x79de('0x62'):_0xd7921b[_0x79de('0x69')]={'Authorization':util[_0x79de('0x66')](_0x79de('0x6a'),new Buffer(util[_0x79de('0x66')]('%s:%s',_0x326676[_0x79de('0x6b')],_0x326676[_0x79de('0x62')]))['toString']('base64'))};break;case'token':_0xd7921b[_0x79de('0x69')]={'Authorization':util[_0x79de('0x66')](_0x79de('0x6a'),new Buffer(util[_0x79de('0x66')]('%s/token:%s',_0x326676['username'],_0x326676[_0x79de('0x63')]))[_0x79de('0x6c')](_0x79de('0x6d')))};break;default:throw new db[(_0x79de('0x1b'))][(_0x79de('0x6e'))]('Unknown\x20authentication\x20type');}return rp(_0xd7921b);}})[_0x79de('0x31')](function(_0x35884b){if(_0x35884b){var _0x12cfaf=['subject',_0x79de('0x6f'),_0x79de('0x70'),_0x79de('0x71')];_[_0x79de('0x72')](_0x35884b[_0x79de('0x68')],function(_0xdd5c4c){return _0x12cfaf['includes'](_0xdd5c4c[_0x79de('0x39')]);});return{'count':_0x35884b['ticket_fields'][_0x79de('0x57')],'rows':_[_0x79de('0x35')](_0x35884b[_0x79de('0x68')],function(_0x516102){return{'id':_0x516102['id'],'name':_0x516102[_0x79de('0x73')]>0x7?_0x516102[_0x79de('0x74')]:_0x516102[_0x79de('0x39')],'custom':_0x516102[_0x79de('0x73')]>0x7?!![]:![],'options':_0x516102[_0x79de('0x75')]?_0x516102['system_field_options']:_0x516102['custom_field_options']?_0x516102['custom_field_options']:[]};})};}})[_0x79de('0x31')](respondWithResult(_0x9618ce,null))['catch'](function(_0x5e875e){var _0x128ba9=_0x9ab628[_0x79de('0x3b')][_0x79de('0x76')]?0x1f4:_0x5e875e['statusCode']||0x1f4;logger[_0x79de('0x21')](_0x79de('0x77'),_0x79de('0x61'),_0x128ba9,JSON['stringify'](_0x5e875e));delete _0x5e875e[_0x79de('0x32')];if(_0x128ba9===0x191){_0x128ba9=0x190;}_0x9618ce['status'](_0x128ba9)[_0x79de('0x33')](_0x9ab628[_0x79de('0x3b')]['test']?{'message':_0x79de('0x78'),'statusCode':_0x5e875e[_0x79de('0x79')]}:_0x5e875e);});};