Built motion from commit (unavailable).|2.5.1
[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 _0x854e=['intersection','fields','length','find','create','body','params','getConfigurations','ZendeskConfiguration','filters','order','findOne','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','Subjects','password','token','authType','remoteUri','slice','substring','format','%s/%s','ticket_fields','headers','Basic\x20%s','%s:%s','username','toString','base64','%s/token:%s','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','send','Wrong\x20credentials','html-pdf','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','Sequelize','ValidationError','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','then','ZendeskAccount,\x20%s,\x20%s','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','sendStatus','status','json','offset','set','Content-Range','apply','reject','save','update','destroy','end','stack','name','index','map','ZendeskAccount','rawAttributes','fieldName','type','key','model','query','keys','attributes','hasOwnProperty','nolimit','limit','sort','pick','merge','where','filter','options','count','includeAll','include','findAll','rows','show'];(function(_0x147ee8,_0x1e62cc){var _0x334ba4=function(_0x1c07d3){while(--_0x1c07d3){_0x147ee8['push'](_0x147ee8['shift']());}};_0x334ba4(++_0x1e62cc);}(_0x854e,0x134));var _0xe854=function(_0x238885,_0x1c2ec1){_0x238885=_0x238885-0x0;var _0x22af11=_0x854e[_0x238885];return _0x22af11;};'use strict';var pdf=require(_0xe854('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xe854('0x1'));var zipdir=require(_0xe854('0x2'));var jsonpatch=require(_0xe854('0x3'));var rp=require('request-promise');var moment=require(_0xe854('0x4'));var BPromise=require(_0xe854('0x5'));var Mustache=require(_0xe854('0x6'));var util=require(_0xe854('0x7'));var path=require(_0xe854('0x8'));var sox=require('sox');var csv=require(_0xe854('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xe854('0xa'));var squel=require(_0xe854('0xb'));var crypto=require('crypto');var jsforce=require(_0xe854('0xc'));var deskjs=require(_0xe854('0xd'));var toCsv=require(_0xe854('0x9'));var querystring=require(_0xe854('0xe'));var Papa=require('papaparse');var Redis=require(_0xe854('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe854('0x10'));var hardwareService=require(_0xe854('0x11'));var logger=require(_0xe854('0x12'))(_0xe854('0x13'));var utils=require('../../config/utils');var config=require(_0xe854('0x14'));var db=require(_0xe854('0x15'))['db'];var integrations=require(_0xe854('0x16'));var jayson=require(_0xe854('0x17'));var client=jayson[_0xe854('0x18')]['http']({'port':0x232a});function checkPasswordPattern(_0x127462,_0x2b6b45,_0x3c0d5c){if(_0x3c0d5c){var _0x2b20c0=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x2b20c0['test'](_0x2b6b45)){return _0x127462;}else{throw new db[(_0xe854('0x19'))][(_0xe854('0x1a'))](_0xe854('0x1b'));}}else{return _0x127462;}}function respondWithRpcPromise(_0x390e47,_0x5bbdb6,_0x485f71,_0x2328fd){return new BPromise(function(_0x52e164,_0x2f3680){var _0x2a9d4b=_0x2328fd||client;return _0x2a9d4b[_0xe854('0x1c')](_0x390e47,_0x485f71)[_0xe854('0x1d')](function(_0x95e4c9){logger['info'](_0xe854('0x1e'),_0x5bbdb6,_0xe854('0x1f'));logger['debug'](_0xe854('0x20'),_0x5bbdb6,_0xe854('0x1f'),JSON[_0xe854('0x21')](_0x95e4c9));if(_0x95e4c9['error']){if(_0x95e4c9['error']['code']===0x1f4){logger[_0xe854('0x22')](_0xe854('0x1e'),_0x5bbdb6,_0x95e4c9[_0xe854('0x22')][_0xe854('0x23')]);return _0x2f3680(_0x95e4c9['error']['message']);}logger[_0xe854('0x22')]('ZendeskAccount,\x20%s,\x20%s',_0x5bbdb6,_0x95e4c9[_0xe854('0x22')][_0xe854('0x23')]);return _0x52e164(_0x95e4c9[_0xe854('0x22')][_0xe854('0x23')]);}else{logger[_0xe854('0x24')](_0xe854('0x1e'),_0x5bbdb6,_0xe854('0x1f'));_0x52e164(_0x95e4c9[_0xe854('0x25')][_0xe854('0x23')]);}})[_0xe854('0x26')](function(_0x56b106){logger[_0xe854('0x22')](_0xe854('0x1e'),_0x5bbdb6,_0x56b106);_0x2f3680(_0x56b106);});});}function respondWithStatusCode(_0x178c06,_0x15d2db){_0x15d2db=_0x15d2db||0xcc;return function(_0x238b53){if(_0x238b53){return _0x178c06[_0xe854('0x27')](_0x15d2db);}return _0x178c06[_0xe854('0x28')](_0x15d2db)['end']();};}function respondWithResult(_0x25f40f,_0x3cf2fb){_0x3cf2fb=_0x3cf2fb||0xc8;return function(_0x3653f8){if(_0x3653f8){return _0x25f40f[_0xe854('0x28')](_0x3cf2fb)[_0xe854('0x29')](_0x3653f8);}};}function respondWithFilteredResult(_0x465c51,_0x863bc0){return function(_0x1e97a7){if(_0x1e97a7){var _0xdbc6db=_0x1e97a7['count'],_0x51a28e=_0x863bc0[_0xe854('0x2a')],_0x433dd5=_0x863bc0[_0xe854('0x2a')]+_0x863bc0['limit'],_0x22fc85;if(_0x433dd5>=_0xdbc6db){_0x433dd5=_0xdbc6db;_0x22fc85=0xc8;}else{_0x22fc85=0xce;}_0x465c51[_0xe854('0x28')](_0x22fc85);return _0x465c51[_0xe854('0x2b')](_0xe854('0x2c'),_0x51a28e+'-'+_0x433dd5+'/'+_0xdbc6db)['json'](_0x1e97a7);}return null;};}function patchUpdates(_0x38e3d2){return function(_0x4e3129){try{jsonpatch[_0xe854('0x2d')](_0x4e3129,_0x38e3d2,!![]);}catch(_0x299eb2){return BPromise[_0xe854('0x2e')](_0x299eb2);}return _0x4e3129[_0xe854('0x2f')]();};}function saveUpdates(_0x3abdfc,_0x496b97){return function(_0x1937ca){if(_0x1937ca){return _0x1937ca[_0xe854('0x30')](_0x3abdfc)[_0xe854('0x1d')](function(_0x40aaab){return _0x40aaab;});}return null;};}function removeEntity(_0x3e1938,_0x5b57f8){return function(_0x61752f){if(_0x61752f){return _0x61752f[_0xe854('0x31')]()['then'](function(){_0x3e1938[_0xe854('0x28')](0xcc)[_0xe854('0x32')]();});}};}function handleEntityNotFound(_0x2b5a9b,_0x407625){return function(_0x4026e1){if(!_0x4026e1){_0x2b5a9b['sendStatus'](0x194);}return _0x4026e1;};}function handleError(_0x6eee5b,_0x3344c0){_0x3344c0=_0x3344c0||0x1f4;return function(_0x48434a){logger[_0xe854('0x22')](_0x48434a[_0xe854('0x33')]);if(_0x48434a[_0xe854('0x34')]){delete _0x48434a[_0xe854('0x34')];}_0x6eee5b[_0xe854('0x28')](_0x3344c0)['send'](_0x48434a);};}exports[_0xe854('0x35')]=function(_0x30edf8,_0x52ef56){var _0x5a1430={},_0x2d451f={},_0x3b7ebd={'count':0x0,'rows':[]};var _0x189098=_[_0xe854('0x36')](db[_0xe854('0x37')][_0xe854('0x38')],function(_0x35be81){return{'name':_0x35be81[_0xe854('0x39')],'type':_0x35be81[_0xe854('0x3a')][_0xe854('0x3b')]};});_0x2d451f[_0xe854('0x3c')]=_['map'](_0x189098,_0xe854('0x34'));_0x2d451f[_0xe854('0x3d')]=_[_0xe854('0x3e')](_0x30edf8[_0xe854('0x3d')]);_0x2d451f['filters']=_['intersection'](_0x2d451f[_0xe854('0x3c')],_0x2d451f['query']);_0x5a1430[_0xe854('0x3f')]=_['intersection'](_0x2d451f['model'],qs['fields'](_0x30edf8[_0xe854('0x3d')]['fields']));_0x5a1430[_0xe854('0x3f')]=_0x5a1430[_0xe854('0x3f')]['length']?_0x5a1430[_0xe854('0x3f')]:_0x2d451f[_0xe854('0x3c')];if(!_0x30edf8[_0xe854('0x3d')][_0xe854('0x40')](_0xe854('0x41'))){_0x5a1430[_0xe854('0x42')]=qs[_0xe854('0x42')](_0x30edf8[_0xe854('0x3d')]['limit']);_0x5a1430['offset']=qs[_0xe854('0x2a')](_0x30edf8[_0xe854('0x3d')][_0xe854('0x2a')]);}_0x5a1430['order']=qs[_0xe854('0x43')](_0x30edf8[_0xe854('0x3d')][_0xe854('0x43')]);_0x5a1430['where']=qs['filters'](_[_0xe854('0x44')](_0x30edf8[_0xe854('0x3d')],_0x2d451f['filters']),_0x189098);if(_0x30edf8[_0xe854('0x3d')]['filter']){_0x5a1430['where']=_[_0xe854('0x45')](_0x5a1430[_0xe854('0x46')],{'$or':_[_0xe854('0x36')](_0x189098,function(_0x15cded){if(_0x15cded['type']!=='VIRTUAL'){var _0x3da082={};_0x3da082[_0x15cded[_0xe854('0x34')]]={'$like':'%'+_0x30edf8[_0xe854('0x3d')][_0xe854('0x47')]+'%'};return _0x3da082;}})});}_0x5a1430=_['merge']({},_0x5a1430,_0x30edf8[_0xe854('0x48')]);var _0x19282b={'where':_0x5a1430[_0xe854('0x46')]};return db[_0xe854('0x37')][_0xe854('0x49')](_0x19282b)['then'](function(_0x1d3d0c){_0x3b7ebd[_0xe854('0x49')]=_0x1d3d0c;if(_0x30edf8[_0xe854('0x3d')][_0xe854('0x4a')]){_0x5a1430[_0xe854('0x4b')]=[{'all':!![]}];}return db['ZendeskAccount'][_0xe854('0x4c')](_0x5a1430);})[_0xe854('0x1d')](function(_0x4a7673){_0x3b7ebd[_0xe854('0x4d')]=_0x4a7673;return _0x3b7ebd;})[_0xe854('0x1d')](respondWithFilteredResult(_0x52ef56,_0x5a1430))[_0xe854('0x26')](handleError(_0x52ef56,null));};exports[_0xe854('0x4e')]=function(_0x40c998,_0x380598){var _0x43c94a={'raw':![],'where':{'id':_0x40c998['params']['id']}},_0x2fc703={};_0x2fc703[_0xe854('0x3c')]=_[_0xe854('0x3e')](db[_0xe854('0x37')]['rawAttributes']);_0x2fc703[_0xe854('0x3d')]=_[_0xe854('0x3e')](_0x40c998[_0xe854('0x3d')]);_0x2fc703['filters']=_['intersection'](_0x2fc703[_0xe854('0x3c')],_0x2fc703[_0xe854('0x3d')]);_0x43c94a[_0xe854('0x3f')]=_[_0xe854('0x4f')](_0x2fc703[_0xe854('0x3c')],qs[_0xe854('0x50')](_0x40c998[_0xe854('0x3d')]['fields']));_0x43c94a[_0xe854('0x3f')]=_0x43c94a['attributes'][_0xe854('0x51')]?_0x43c94a[_0xe854('0x3f')]:_0x2fc703[_0xe854('0x3c')];if(_0x40c998[_0xe854('0x3d')][_0xe854('0x4a')]){_0x43c94a[_0xe854('0x4b')]=[{'all':!![]}];}_0x43c94a=_[_0xe854('0x45')]({},_0x43c94a,_0x40c998['options']);return db['ZendeskAccount'][_0xe854('0x52')](_0x43c94a)[_0xe854('0x1d')](handleEntityNotFound(_0x380598,null))[_0xe854('0x1d')](respondWithResult(_0x380598,null))[_0xe854('0x26')](handleError(_0x380598,null));};exports[_0xe854('0x53')]=function(_0x3b9fad,_0x4bace8){return db[_0xe854('0x37')]['create'](_0x3b9fad[_0xe854('0x54')],{})[_0xe854('0x1d')](respondWithResult(_0x4bace8,0xc9))[_0xe854('0x26')](handleError(_0x4bace8,null));};exports['update']=function(_0x3deb83,_0x413600){if(_0x3deb83[_0xe854('0x54')]['id']){delete _0x3deb83[_0xe854('0x54')]['id'];}return db[_0xe854('0x37')]['find']({'where':{'id':_0x3deb83[_0xe854('0x55')]['id']}})[_0xe854('0x1d')](handleEntityNotFound(_0x413600,null))[_0xe854('0x1d')](saveUpdates(_0x3deb83[_0xe854('0x54')],null))[_0xe854('0x1d')](respondWithResult(_0x413600,null))[_0xe854('0x26')](handleError(_0x413600,null));};exports[_0xe854('0x31')]=function(_0xe3fe4b,_0x5f12e8){return db[_0xe854('0x37')][_0xe854('0x52')]({'where':{'id':_0xe3fe4b['params']['id']}})[_0xe854('0x1d')](handleEntityNotFound(_0x5f12e8,null))[_0xe854('0x1d')](removeEntity(_0x5f12e8,null))['catch'](handleError(_0x5f12e8,null));};exports[_0xe854('0x56')]=function(_0x11f7cf,_0x43814c,_0x592767){var _0x59b7ab={};var _0x10e042={};var _0x549ff0;var _0x5dafef;return db[_0xe854('0x37')]['findOne']({'where':{'id':_0x11f7cf['params']['id']}})[_0xe854('0x1d')](handleEntityNotFound(_0x43814c,null))[_0xe854('0x1d')](function(_0x158e2a){if(_0x158e2a){_0x549ff0=_0x158e2a;_0x10e042['model']=_['keys'](db[_0xe854('0x57')][_0xe854('0x38')]);_0x10e042[_0xe854('0x3d')]=_[_0xe854('0x3e')](_0x11f7cf[_0xe854('0x3d')]);_0x10e042[_0xe854('0x58')]=_[_0xe854('0x4f')](_0x10e042[_0xe854('0x3c')],_0x10e042[_0xe854('0x3d')]);_0x59b7ab['attributes']=_[_0xe854('0x4f')](_0x10e042[_0xe854('0x3c')],qs[_0xe854('0x50')](_0x11f7cf[_0xe854('0x3d')][_0xe854('0x50')]));_0x59b7ab[_0xe854('0x3f')]=_0x59b7ab['attributes'][_0xe854('0x51')]?_0x59b7ab[_0xe854('0x3f')]:_0x10e042[_0xe854('0x3c')];_0x59b7ab[_0xe854('0x59')]=qs[_0xe854('0x43')](_0x11f7cf[_0xe854('0x3d')][_0xe854('0x43')]);_0x59b7ab[_0xe854('0x46')]=qs[_0xe854('0x58')](_[_0xe854('0x44')](_0x11f7cf[_0xe854('0x3d')],_0x10e042[_0xe854('0x58')]));if(_0x11f7cf[_0xe854('0x3d')][_0xe854('0x47')]){_0x59b7ab[_0xe854('0x46')]=_[_0xe854('0x45')](_0x59b7ab[_0xe854('0x46')],{'$or':_[_0xe854('0x36')](_0x59b7ab[_0xe854('0x3f')],function(_0x10b004){var _0x26f6a6={};_0x26f6a6[_0x10b004]={'$like':'%'+_0x11f7cf[_0xe854('0x3d')][_0xe854('0x47')]+'%'};return _0x26f6a6;})});}_0x59b7ab=_[_0xe854('0x45')]({},_0x59b7ab,_0x11f7cf[_0xe854('0x48')]);return _0x549ff0[_0xe854('0x56')](_0x59b7ab);}})[_0xe854('0x1d')](function(_0x344f0b){if(_0x344f0b){_0x5dafef=_0x344f0b[_0xe854('0x51')];if(!_0x11f7cf[_0xe854('0x3d')][_0xe854('0x40')](_0xe854('0x41'))){_0x59b7ab[_0xe854('0x42')]=qs[_0xe854('0x42')](_0x11f7cf[_0xe854('0x3d')][_0xe854('0x42')]);_0x59b7ab['offset']=qs[_0xe854('0x2a')](_0x11f7cf[_0xe854('0x3d')][_0xe854('0x2a')]);}return _0x549ff0[_0xe854('0x56')](_0x59b7ab);}})[_0xe854('0x1d')](function(_0x16b2ba){if(_0x16b2ba){return _0x16b2ba?{'count':_0x5dafef,'rows':_0x16b2ba}:null;}})['then'](respondWithResult(_0x43814c,null))[_0xe854('0x26')](handleError(_0x43814c,null));};exports['addConfiguration']=function(_0x5314c9,_0x54f650,_0x390fe9){if(_0x5314c9[_0xe854('0x54')]['id']){delete _0x5314c9['body']['id'];}return db[_0xe854('0x37')][_0xe854('0x5a')]({'where':{'id':_0x5314c9[_0xe854('0x55')]['id']}})[_0xe854('0x1d')](handleEntityNotFound(_0x54f650,null))[_0xe854('0x1d')](function(_0x23417a){if(_0x23417a){_0x5314c9['body']['AccountId']=_0x23417a['id'];_0x5314c9[_0xe854('0x54')]['Subjects']=integrations[_0xe854('0x5b')](_0x5314c9['body'][_0xe854('0x5c')],_0x5314c9[_0xe854('0x54')][_0xe854('0x3a')]);_0x5314c9[_0xe854('0x54')][_0xe854('0x5d')]=integrations[_0xe854('0x5e')](_0x5314c9[_0xe854('0x54')]['channel'],_0x5314c9[_0xe854('0x54')][_0xe854('0x3a')]);return db[_0xe854('0x57')][_0xe854('0x53')](_0x5314c9[_0xe854('0x54')],{'include':[{'model':db[_0xe854('0x5f')],'as':_0xe854('0x60')},{'model':db[_0xe854('0x5f')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x54f650,null))['catch'](handleError(_0x54f650,null));};exports['getFields']=function(_0x57777f,_0x4e5578,_0x41a8e8){var _0x1f13dc='';return db['ZendeskAccount'][_0xe854('0x5a')]({'where':{'id':_0x57777f[_0xe854('0x55')]['id']},'attributes':['id','username',_0xe854('0x61'),_0xe854('0x62'),_0xe854('0x63'),_0xe854('0x64')]})[_0xe854('0x1d')](handleEntityNotFound(_0x4e5578,null))['then'](function(_0xde6206){if(_0xde6206){_0x1f13dc=_0xde6206[_0xe854('0x64')];var _0x246926=_0x1f13dc[_0xe854('0x65')](-0x1);if(_0x246926==='/'){_0x1f13dc=_0x1f13dc[_0xe854('0x66')](0x0,_0x1f13dc['lastIndexOf'](_0x246926));}var _0x28e12a={'method':'GET','uri':util[_0xe854('0x67')](_0xe854('0x68'),_0x1f13dc,_0xe854('0x69')),'json':!![]};switch(_0xde6206[_0xe854('0x63')]){case'password':_0x28e12a[_0xe854('0x6a')]={'Authorization':util[_0xe854('0x67')](_0xe854('0x6b'),new Buffer(util[_0xe854('0x67')](_0xe854('0x6c'),_0xde6206[_0xe854('0x6d')],_0xde6206[_0xe854('0x61')]))[_0xe854('0x6e')](_0xe854('0x6f')))};break;case _0xe854('0x62'):_0x28e12a['headers']={'Authorization':util[_0xe854('0x67')](_0xe854('0x6b'),new Buffer(util['format'](_0xe854('0x70'),_0xde6206['username'],_0xde6206[_0xe854('0x62')]))[_0xe854('0x6e')]('base64'))};break;default:throw new db[(_0xe854('0x19'))][(_0xe854('0x1a'))](_0xe854('0x71'));}return rp(_0x28e12a);}})[_0xe854('0x1d')](function(_0x55d95d){if(_0x55d95d){var _0x38e34d=[_0xe854('0x72'),_0xe854('0x73'),_0xe854('0x74'),_0xe854('0x75')];_[_0xe854('0x76')](_0x55d95d['ticket_fields'],function(_0x1f7aba){return _0x38e34d[_0xe854('0x77')](_0x1f7aba[_0xe854('0x3a')]);});return{'count':_0x55d95d['ticket_fields']['length'],'rows':_[_0xe854('0x36')](_0x55d95d[_0xe854('0x69')],function(_0x3405f8){return{'id':_0x3405f8['id'],'name':_0x3405f8[_0xe854('0x78')]>0x7?_0x3405f8['title']:_0x3405f8[_0xe854('0x3a')],'custom':_0x3405f8[_0xe854('0x78')]>0x7?!![]:![],'options':_0x3405f8[_0xe854('0x79')]?_0x3405f8[_0xe854('0x79')]:_0x3405f8[_0xe854('0x7a')]?_0x3405f8[_0xe854('0x7a')]:[]};})};}})[_0xe854('0x1d')](respondWithResult(_0x4e5578,null))['catch'](function(_0x32fb44){var _0xdd97be=_0x57777f['query'][_0xe854('0x7b')]?0x1f4:_0x32fb44[_0xe854('0x7c')]||0x1f4;logger[_0xe854('0x22')](_0xe854('0x7d'),_0xe854('0x7e'),_0xdd97be,JSON['stringify'](_0x32fb44));delete _0x32fb44[_0xe854('0x34')];if(_0xdd97be===0x191){_0xdd97be=0x190;}_0x4e5578['status'](_0xdd97be)[_0xe854('0x7f')](_0x57777f[_0xe854('0x3d')][_0xe854('0x7b')]?{'message':_0xe854('0x80'),'statusCode':_0x32fb44[_0xe854('0x7c')]}:_0x32fb44);});};