f1fb62b2ce8a80b0177dc0ed20ce4b9df96901fd
[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 _0x95c8=['request','info','ZendeskAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','sendStatus','name','send','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','find','create','body','destroy','params','getConfigurations','findOne','Subjects','getSubjects','Descriptions','channel','ZendeskConfiguration','ZendeskField','getFields','username','token','authType','remoteUri','substring','GET','format','%s/%s','password','headers','Basic\x20%s','%s:%s','%s/token:%s','toString','Unknown\x20authentication\x20type','subject','description','group','remove','includes','ticket_fields','position','title','system_field_options','custom_field_options','getFields,\x20%s,\x20%s,\x20%s','statusCode','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../components/integrations/configuration','jayson/promise','client','http','test','Sequelize','ValidationError'];(function(_0x47fd36,_0x41535d){var _0x21a0fc=function(_0x44c07c){while(--_0x44c07c){_0x47fd36['push'](_0x47fd36['shift']());}};_0x21a0fc(++_0x41535d);}(_0x95c8,0x15d));var _0x895c=function(_0x1d5cbe,_0x4d2211){_0x1d5cbe=_0x1d5cbe-0x0;var _0x5ea57b=_0x95c8[_0x1d5cbe];return _0x5ea57b;};'use strict';var pdf=require(_0x895c('0x0'));var emlformat=require(_0x895c('0x1'));var rimraf=require(_0x895c('0x2'));var zipdir=require(_0x895c('0x3'));var jsonpatch=require(_0x895c('0x4'));var rp=require(_0x895c('0x5'));var moment=require(_0x895c('0x6'));var BPromise=require(_0x895c('0x7'));var Mustache=require(_0x895c('0x8'));var util=require(_0x895c('0x9'));var path=require(_0x895c('0xa'));var sox=require(_0x895c('0xb'));var csv=require(_0x895c('0xc'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x895c('0xd'));var squel=require(_0x895c('0xe'));var crypto=require('crypto');var jsforce=require(_0x895c('0xf'));var deskjs=require(_0x895c('0x10'));var toCsv=require(_0x895c('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x895c('0x11'));var authService=require(_0x895c('0x12'));var qs=require(_0x895c('0x13'));var as=require(_0x895c('0x14'));var hardwareService=require(_0x895c('0x15'));var logger=require(_0x895c('0x16'))(_0x895c('0x17'));var utils=require(_0x895c('0x18'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var integrations=require(_0x895c('0x19'));var jayson=require(_0x895c('0x1a'));var client=jayson[_0x895c('0x1b')][_0x895c('0x1c')]({'port':0x232a});function checkPasswordPattern(_0x4ee8f2,_0x275b9f,_0x4d6a5d){if(_0x4d6a5d){var _0x478275=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x478275[_0x895c('0x1d')](_0x275b9f)){return _0x4ee8f2;}else{throw new db[(_0x895c('0x1e'))][(_0x895c('0x1f'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x4ee8f2;}}function respondWithRpcPromise(_0x3f2d52,_0x4500ed,_0x43ae9c,_0x905c40){return new BPromise(function(_0x1441e2,_0xdcf7fe){var _0x26b37a=_0x905c40||client;return _0x26b37a[_0x895c('0x20')](_0x3f2d52,_0x43ae9c)['then'](function(_0xe8d3ba){logger[_0x895c('0x21')](_0x895c('0x22'),_0x4500ed,_0x895c('0x23'));logger['debug']('ZendeskAccount,\x20%s,\x20%s,\x20%s',_0x4500ed,_0x895c('0x23'),JSON[_0x895c('0x24')](_0xe8d3ba));if(_0xe8d3ba['error']){if(_0xe8d3ba[_0x895c('0x25')][_0x895c('0x26')]===0x1f4){logger[_0x895c('0x25')](_0x895c('0x22'),_0x4500ed,_0xe8d3ba[_0x895c('0x25')][_0x895c('0x27')]);return _0xdcf7fe(_0xe8d3ba[_0x895c('0x25')][_0x895c('0x27')]);}logger[_0x895c('0x25')]('ZendeskAccount,\x20%s,\x20%s',_0x4500ed,_0xe8d3ba[_0x895c('0x25')][_0x895c('0x27')]);return _0x1441e2(_0xe8d3ba[_0x895c('0x25')][_0x895c('0x27')]);}else{logger[_0x895c('0x21')](_0x895c('0x22'),_0x4500ed,_0x895c('0x23'));_0x1441e2(_0xe8d3ba[_0x895c('0x28')][_0x895c('0x27')]);}})[_0x895c('0x29')](function(_0x33de45){logger[_0x895c('0x25')](_0x895c('0x22'),_0x4500ed,_0x33de45);_0xdcf7fe(_0x33de45);});});}function respondWithStatusCode(_0x253a89,_0x46375a){_0x46375a=_0x46375a||0xcc;return function(_0x2e4392){if(_0x2e4392){return _0x253a89['sendStatus'](_0x46375a);}return _0x253a89[_0x895c('0x2a')](_0x46375a)[_0x895c('0x2b')]();};}function respondWithResult(_0x2bfb03,_0x3a6b00){_0x3a6b00=_0x3a6b00||0xc8;return function(_0x5449a0){if(_0x5449a0){return _0x2bfb03[_0x895c('0x2a')](_0x3a6b00)[_0x895c('0x2c')](_0x5449a0);}};}function respondWithFilteredResult(_0x42c963,_0x24fed8){return function(_0x5a63b9){if(_0x5a63b9){var _0x55d63f=_0x5a63b9[_0x895c('0x2d')],_0x3c8367=_0x24fed8[_0x895c('0x2e')],_0x1be59f=_0x24fed8['offset']+_0x24fed8[_0x895c('0x2f')],_0x5195fb;if(_0x1be59f>=_0x55d63f){_0x1be59f=_0x55d63f;_0x5195fb=0xc8;}else{_0x5195fb=0xce;}_0x42c963[_0x895c('0x2a')](_0x5195fb);return _0x42c963[_0x895c('0x30')](_0x895c('0x31'),_0x3c8367+'-'+_0x1be59f+'/'+_0x55d63f)[_0x895c('0x2c')](_0x5a63b9);}return null;};}function patchUpdates(_0x11bf4f){return function(_0x43de86){try{jsonpatch[_0x895c('0x32')](_0x43de86,_0x11bf4f,!![]);}catch(_0x22ee3a){return BPromise[_0x895c('0x33')](_0x22ee3a);}return _0x43de86[_0x895c('0x34')]();};}function saveUpdates(_0x1ae0a3,_0x26186f){return function(_0x37aaf6){if(_0x37aaf6){return _0x37aaf6[_0x895c('0x35')](_0x1ae0a3)[_0x895c('0x36')](function(_0x44604f){return _0x44604f;});}return null;};}function removeEntity(_0x367735,_0x456ed9){return function(_0x439aaf){if(_0x439aaf){return _0x439aaf['destroy']()['then'](function(){_0x367735[_0x895c('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27e801,_0x44bce2){return function(_0x44fa31){if(!_0x44fa31){_0x27e801[_0x895c('0x37')](0x194);}return _0x44fa31;};}function handleError(_0x2dfb9c,_0x3469b2){_0x3469b2=_0x3469b2||0x1f4;return function(_0x12e109){logger[_0x895c('0x25')](_0x12e109['stack']);if(_0x12e109[_0x895c('0x38')]){delete _0x12e109['name'];}_0x2dfb9c[_0x895c('0x2a')](_0x3469b2)[_0x895c('0x39')](_0x12e109);};}exports[_0x895c('0x3a')]=function(_0x5e0c99,_0x1bfb20){var _0x49d714={},_0x367715={},_0x2a09fd={'count':0x0,'rows':[]};var _0x4bdef4=_[_0x895c('0x3b')](db[_0x895c('0x3c')][_0x895c('0x3d')],function(_0x2fa8ae){return{'name':_0x2fa8ae[_0x895c('0x3e')],'type':_0x2fa8ae[_0x895c('0x3f')][_0x895c('0x40')]};});_0x367715['model']=_['map'](_0x4bdef4,_0x895c('0x38'));_0x367715[_0x895c('0x41')]=_[_0x895c('0x42')](_0x5e0c99[_0x895c('0x41')]);_0x367715[_0x895c('0x43')]=_[_0x895c('0x44')](_0x367715[_0x895c('0x45')],_0x367715['query']);_0x49d714['attributes']=_[_0x895c('0x44')](_0x367715['model'],qs[_0x895c('0x46')](_0x5e0c99[_0x895c('0x41')]['fields']));_0x49d714['attributes']=_0x49d714[_0x895c('0x47')][_0x895c('0x48')]?_0x49d714['attributes']:_0x367715[_0x895c('0x45')];if(!_0x5e0c99[_0x895c('0x41')][_0x895c('0x49')](_0x895c('0x4a'))){_0x49d714[_0x895c('0x2f')]=qs[_0x895c('0x2f')](_0x5e0c99[_0x895c('0x41')][_0x895c('0x2f')]);_0x49d714[_0x895c('0x2e')]=qs[_0x895c('0x2e')](_0x5e0c99[_0x895c('0x41')]['offset']);}_0x49d714[_0x895c('0x4b')]=qs['sort'](_0x5e0c99[_0x895c('0x41')][_0x895c('0x4c')]);_0x49d714[_0x895c('0x4d')]=qs[_0x895c('0x43')](_[_0x895c('0x4e')](_0x5e0c99[_0x895c('0x41')],_0x367715[_0x895c('0x43')]));if(_0x5e0c99['query']['filter']){_0x49d714[_0x895c('0x4d')]=_['merge'](_0x49d714[_0x895c('0x4d')],{'$or':_[_0x895c('0x3b')](_0x4bdef4,function(_0x28e23e){if(_0x28e23e[_0x895c('0x3f')]!=='VIRTUAL'){var _0x3e4790={};_0x3e4790[_0x28e23e[_0x895c('0x38')]]={'$like':'%'+_0x5e0c99[_0x895c('0x41')][_0x895c('0x4f')]+'%'};return _0x3e4790;}})});}_0x49d714=_[_0x895c('0x50')]({},_0x49d714,_0x5e0c99[_0x895c('0x51')]);var _0x17617c={'where':_0x49d714[_0x895c('0x4d')]};return db[_0x895c('0x3c')]['count'](_0x17617c)[_0x895c('0x36')](function(_0x5a0acc){_0x2a09fd['count']=_0x5a0acc;if(_0x5e0c99[_0x895c('0x41')][_0x895c('0x52')]){_0x49d714[_0x895c('0x53')]=[{'all':!![]}];}return db[_0x895c('0x3c')][_0x895c('0x54')](_0x49d714);})[_0x895c('0x36')](function(_0x24a564){_0x2a09fd[_0x895c('0x55')]=_0x24a564;return _0x2a09fd;})[_0x895c('0x36')](respondWithFilteredResult(_0x1bfb20,_0x49d714))['catch'](handleError(_0x1bfb20,null));};exports['show']=function(_0x593480,_0x14b74e){var _0xeb231b={'raw':![],'where':{'id':_0x593480['params']['id']}},_0x50608c={};_0x50608c['model']=_['keys'](db[_0x895c('0x3c')][_0x895c('0x3d')]);_0x50608c[_0x895c('0x41')]=_[_0x895c('0x42')](_0x593480[_0x895c('0x41')]);_0x50608c['filters']=_[_0x895c('0x44')](_0x50608c[_0x895c('0x45')],_0x50608c['query']);_0xeb231b['attributes']=_[_0x895c('0x44')](_0x50608c[_0x895c('0x45')],qs[_0x895c('0x46')](_0x593480[_0x895c('0x41')][_0x895c('0x46')]));_0xeb231b['attributes']=_0xeb231b['attributes']['length']?_0xeb231b[_0x895c('0x47')]:_0x50608c['model'];if(_0x593480['query']['includeAll']){_0xeb231b[_0x895c('0x53')]=[{'all':!![]}];}_0xeb231b=_['merge']({},_0xeb231b,_0x593480['options']);return db['ZendeskAccount'][_0x895c('0x56')](_0xeb231b)[_0x895c('0x36')](handleEntityNotFound(_0x14b74e,null))[_0x895c('0x36')](respondWithResult(_0x14b74e,null))['catch'](handleError(_0x14b74e,null));};exports[_0x895c('0x57')]=function(_0x3c3929,_0x53365a){return db['ZendeskAccount'][_0x895c('0x57')](_0x3c3929[_0x895c('0x58')],{})[_0x895c('0x36')](respondWithResult(_0x53365a,0xc9))[_0x895c('0x29')](handleError(_0x53365a,null));};exports['update']=function(_0x11f429,_0x427b41){if(_0x11f429['body']['id']){delete _0x11f429['body']['id'];}return db['ZendeskAccount']['find']({'where':{'id':_0x11f429['params']['id']}})[_0x895c('0x36')](handleEntityNotFound(_0x427b41,null))['then'](saveUpdates(_0x11f429[_0x895c('0x58')],null))[_0x895c('0x36')](respondWithResult(_0x427b41,null))[_0x895c('0x29')](handleError(_0x427b41,null));};exports[_0x895c('0x59')]=function(_0x22249d,_0xde2e6b){return db['ZendeskAccount'][_0x895c('0x56')]({'where':{'id':_0x22249d[_0x895c('0x5a')]['id']}})[_0x895c('0x36')](handleEntityNotFound(_0xde2e6b,null))[_0x895c('0x36')](removeEntity(_0xde2e6b,null))['catch'](handleError(_0xde2e6b,null));};exports[_0x895c('0x5b')]=function(_0x534812,_0x233f29,_0x1aa272){var _0x3bc4b9={};var _0x5ce193={};var _0xa91b67;var _0x53d7ab;return db['ZendeskAccount'][_0x895c('0x5c')]({'where':{'id':_0x534812[_0x895c('0x5a')]['id']}})[_0x895c('0x36')](handleEntityNotFound(_0x233f29,null))['then'](function(_0x5ad1be){if(_0x5ad1be){_0xa91b67=_0x5ad1be;_0x5ce193[_0x895c('0x45')]=_[_0x895c('0x42')](db['ZendeskConfiguration']['rawAttributes']);_0x5ce193['query']=_['keys'](_0x534812[_0x895c('0x41')]);_0x5ce193['filters']=_['intersection'](_0x5ce193[_0x895c('0x45')],_0x5ce193[_0x895c('0x41')]);_0x3bc4b9[_0x895c('0x47')]=_[_0x895c('0x44')](_0x5ce193[_0x895c('0x45')],qs[_0x895c('0x46')](_0x534812['query'][_0x895c('0x46')]));_0x3bc4b9[_0x895c('0x47')]=_0x3bc4b9['attributes'][_0x895c('0x48')]?_0x3bc4b9['attributes']:_0x5ce193[_0x895c('0x45')];_0x3bc4b9[_0x895c('0x4b')]=qs[_0x895c('0x4c')](_0x534812[_0x895c('0x41')][_0x895c('0x4c')]);_0x3bc4b9[_0x895c('0x4d')]=qs['filters'](_[_0x895c('0x4e')](_0x534812[_0x895c('0x41')],_0x5ce193[_0x895c('0x43')]));if(_0x534812[_0x895c('0x41')][_0x895c('0x4f')]){_0x3bc4b9[_0x895c('0x4d')]=_[_0x895c('0x50')](_0x3bc4b9[_0x895c('0x4d')],{'$or':_[_0x895c('0x3b')](_0x3bc4b9['attributes'],function(_0x496e27){var _0x319d6d={};_0x319d6d[_0x496e27]={'$like':'%'+_0x534812[_0x895c('0x41')][_0x895c('0x4f')]+'%'};return _0x319d6d;})});}_0x3bc4b9=_[_0x895c('0x50')]({},_0x3bc4b9,_0x534812[_0x895c('0x51')]);return _0xa91b67[_0x895c('0x5b')](_0x3bc4b9);}})[_0x895c('0x36')](function(_0x5351fb){if(_0x5351fb){_0x53d7ab=_0x5351fb[_0x895c('0x48')];if(!_0x534812[_0x895c('0x41')][_0x895c('0x49')](_0x895c('0x4a'))){_0x3bc4b9[_0x895c('0x2f')]=qs[_0x895c('0x2f')](_0x534812[_0x895c('0x41')][_0x895c('0x2f')]);_0x3bc4b9[_0x895c('0x2e')]=qs[_0x895c('0x2e')](_0x534812['query']['offset']);}return _0xa91b67['getConfigurations'](_0x3bc4b9);}})[_0x895c('0x36')](function(_0x267e3a){if(_0x267e3a){return _0x267e3a?{'count':_0x53d7ab,'rows':_0x267e3a}:null;}})[_0x895c('0x36')](respondWithResult(_0x233f29,null))[_0x895c('0x29')](handleError(_0x233f29,null));};exports['addConfiguration']=function(_0x139ee9,_0x220713,_0x3b2dfb){if(_0x139ee9[_0x895c('0x58')]['id']){delete _0x139ee9['body']['id'];}return db[_0x895c('0x3c')]['findOne']({'where':{'id':_0x139ee9['params']['id']}})['then'](handleEntityNotFound(_0x220713,null))[_0x895c('0x36')](function(_0x878896){if(_0x878896){_0x139ee9[_0x895c('0x58')]['AccountId']=_0x878896['id'];_0x139ee9[_0x895c('0x58')][_0x895c('0x5d')]=integrations[_0x895c('0x5e')](_0x139ee9[_0x895c('0x58')]['channel'],_0x139ee9['body'][_0x895c('0x3f')]);_0x139ee9[_0x895c('0x58')][_0x895c('0x5f')]=integrations['getDescriptions'](_0x139ee9[_0x895c('0x58')][_0x895c('0x60')],_0x139ee9['body'][_0x895c('0x3f')]);return db[_0x895c('0x61')][_0x895c('0x57')](_0x139ee9[_0x895c('0x58')],{'include':[{'model':db[_0x895c('0x62')],'as':_0x895c('0x5d')},{'model':db['ZendeskField'],'as':_0x895c('0x5f')}]});}return null;})[_0x895c('0x36')](respondWithResult(_0x220713,null))[_0x895c('0x29')](handleError(_0x220713,null));};exports[_0x895c('0x63')]=function(_0x14653b,_0x5018ff,_0x45bdc5){var _0x2fceda='';return db['ZendeskAccount'][_0x895c('0x5c')]({'where':{'id':_0x14653b[_0x895c('0x5a')]['id']},'attributes':['id',_0x895c('0x64'),'password',_0x895c('0x65'),_0x895c('0x66'),_0x895c('0x67')]})[_0x895c('0x36')](handleEntityNotFound(_0x5018ff,null))[_0x895c('0x36')](function(_0x18aa6e){if(_0x18aa6e){_0x2fceda=_0x18aa6e['remoteUri'];var _0x443c00=_0x2fceda['slice'](-0x1);if(_0x443c00==='/'){_0x2fceda=_0x2fceda[_0x895c('0x68')](0x0,_0x2fceda['lastIndexOf'](_0x443c00));}var _0x4712ff={'method':_0x895c('0x69'),'uri':util[_0x895c('0x6a')](_0x895c('0x6b'),_0x2fceda,'ticket_fields'),'json':!![]};switch(_0x18aa6e[_0x895c('0x66')]){case _0x895c('0x6c'):_0x4712ff[_0x895c('0x6d')]={'Authorization':util[_0x895c('0x6a')](_0x895c('0x6e'),new Buffer(util[_0x895c('0x6a')](_0x895c('0x6f'),_0x18aa6e[_0x895c('0x64')],_0x18aa6e[_0x895c('0x6c')]))['toString']('base64'))};break;case _0x895c('0x65'):_0x4712ff[_0x895c('0x6d')]={'Authorization':util['format'](_0x895c('0x6e'),new Buffer(util[_0x895c('0x6a')](_0x895c('0x70'),_0x18aa6e['username'],_0x18aa6e[_0x895c('0x65')]))[_0x895c('0x71')]('base64'))};break;default:throw new db[(_0x895c('0x1e'))][(_0x895c('0x1f'))](_0x895c('0x72'));}return rp(_0x4712ff);}})['then'](function(_0x5f2754){if(_0x5f2754){var _0x5dfb8d=[_0x895c('0x73'),_0x895c('0x74'),_0x895c('0x75'),'assignee'];_[_0x895c('0x76')](_0x5f2754['ticket_fields'],function(_0x527d83){return _0x5dfb8d[_0x895c('0x77')](_0x527d83[_0x895c('0x3f')]);});return{'count':_0x5f2754[_0x895c('0x78')][_0x895c('0x48')],'rows':_['map'](_0x5f2754[_0x895c('0x78')],function(_0x404d1c){return{'id':_0x404d1c['id'],'name':_0x404d1c[_0x895c('0x79')]>0x7?_0x404d1c[_0x895c('0x7a')]:_0x404d1c[_0x895c('0x3f')],'custom':_0x404d1c['position']>0x7?!![]:![],'options':_0x404d1c['system_field_options']?_0x404d1c[_0x895c('0x7b')]:_0x404d1c[_0x895c('0x7c')]?_0x404d1c[_0x895c('0x7c')]:[]};})};}})[_0x895c('0x36')](respondWithResult(_0x5018ff,null))['catch'](function(_0x34a77b){var _0xd63ae=_0x14653b[_0x895c('0x41')][_0x895c('0x1d')]?0x1f4:_0x34a77b['statusCode']||0x1f4;logger[_0x895c('0x25')](_0x895c('0x7d'),_0x895c('0x63'),_0xd63ae,JSON[_0x895c('0x24')](_0x34a77b));delete _0x34a77b[_0x895c('0x38')];if(_0xd63ae===0x191){_0xd63ae=0x190;}_0x5018ff[_0x895c('0x2a')](_0xd63ae)[_0x895c('0x39')](_0x14653b[_0x895c('0x41')][_0x895c('0x1d')]?{'message':'Wrong\x20credentials','statusCode':_0x34a77b[_0x895c('0x7e')]}:_0x34a77b);});};