09c024b5182ffdeb8667b0a105b6ca4051e41d8c
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0xa76e=['error','stack','name','index','map','rawAttributes','type','keys','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','DeskAccount','includeAll','findAll','rows','catch','show','find','create','body','params','getConfigurations','findOne','DeskConfiguration','filter','options','AccountId','Subjects','getSubjects','channel','Descriptions','DeskField','getFields','priority','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','substring','lastIndexOf','GET','format','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','username','toString','base64','concat','_embedded','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','test','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','apply','save','update','then','destroy'];(function(_0x248a85,_0x57371f){var _0x4a6ee=function(_0x4f5190){while(--_0x4f5190){_0x248a85['push'](_0x248a85['shift']());}};_0x4a6ee(++_0x57371f);}(_0xa76e,0x19e));var _0xea76=function(_0x2aecb2,_0x343312){_0x2aecb2=_0x2aecb2-0x0;var _0x3ebb80=_0xa76e[_0x2aecb2];return _0x3ebb80;};'use strict';var emlformat=require(_0xea76('0x0'));var rimraf=require(_0xea76('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xea76('0x2'));var rp=require('request-promise');var moment=require(_0xea76('0x3'));var BPromise=require(_0xea76('0x4'));var Mustache=require(_0xea76('0x5'));var util=require(_0xea76('0x6'));var path=require(_0xea76('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xea76('0x8'));var fs=require('fs');var fs_extra=require(_0xea76('0x9'));var _=require(_0xea76('0xa'));var squel=require(_0xea76('0xb'));var crypto=require(_0xea76('0xc'));var jsforce=require(_0xea76('0xd'));var deskjs=require(_0xea76('0xe'));var toCsv=require(_0xea76('0xf'));var querystring=require(_0xea76('0x10'));var Papa=require(_0xea76('0x11'));var Redis=require(_0xea76('0x12'));var authService=require(_0xea76('0x13'));var qs=require(_0xea76('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xea76('0x15'));var logger=require(_0xea76('0x16'))('api');var utils=require(_0xea76('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xea76('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3381ce,_0x42ec04){_0x42ec04=_0x42ec04||0xcc;return function(_0x24365d){if(_0x24365d){return _0x3381ce[_0xea76('0x19')](_0x42ec04);}return _0x3381ce['status'](_0x42ec04)[_0xea76('0x1a')]();};}function respondWithResult(_0x23b934,_0x32de4f){_0x32de4f=_0x32de4f||0xc8;return function(_0x525233){if(_0x525233){return _0x23b934[_0xea76('0x1b')](_0x32de4f)[_0xea76('0x1c')](_0x525233);}};}function respondWithFilteredResult(_0x2e81a3,_0x545cff){return function(_0x51bc5b){if(_0x51bc5b){var _0x976583=typeof _0x545cff[_0xea76('0x1d')]===_0xea76('0x1e')&&typeof _0x545cff['limit']===_0xea76('0x1e');var _0x1f74aa=_0x51bc5b[_0xea76('0x1f')];var _0x147666=_0x976583?0x0:_0x545cff[_0xea76('0x1d')];var _0x121399=_0x976583?_0x51bc5b[_0xea76('0x1f')]:_0x545cff[_0xea76('0x1d')]+_0x545cff[_0xea76('0x20')];var _0x2220d7;if(_0x121399>=_0x1f74aa){_0x121399=_0x1f74aa;_0x2220d7=0xc8;}else{_0x2220d7=0xce;}_0x2e81a3['status'](_0x2220d7);return _0x2e81a3['set']('Content-Range',_0x147666+'-'+_0x121399+'/'+_0x1f74aa)['json'](_0x51bc5b);}return null;};}function patchUpdates(_0x12f3fa){return function(_0x4eab6b){try{jsonpatch[_0xea76('0x21')](_0x4eab6b,_0x12f3fa,!![]);}catch(_0x32ecb1){return BPromise['reject'](_0x32ecb1);}return _0x4eab6b[_0xea76('0x22')]();};}function saveUpdates(_0x40015b,_0x4baf91){return function(_0x359632){if(_0x359632){return _0x359632[_0xea76('0x23')](_0x40015b)[_0xea76('0x24')](function(_0x538063){return _0x538063;});}return null;};}function removeEntity(_0x1393b3,_0x270be1){return function(_0x4f36f1){if(_0x4f36f1){return _0x4f36f1[_0xea76('0x25')]()[_0xea76('0x24')](function(){_0x1393b3[_0xea76('0x1b')](0xcc)[_0xea76('0x1a')]();});}};}function handleEntityNotFound(_0x4b4d78,_0x2d8295){return function(_0x379f43){if(!_0x379f43){_0x4b4d78['sendStatus'](0x194);}return _0x379f43;};}function handleError(_0x2bb1c3,_0x4d8040){_0x4d8040=_0x4d8040||0x1f4;return function(_0x41ce3e){logger[_0xea76('0x26')](_0x41ce3e[_0xea76('0x27')]);if(_0x41ce3e[_0xea76('0x28')]){delete _0x41ce3e[_0xea76('0x28')];}_0x2bb1c3['status'](_0x4d8040)['send'](_0x41ce3e);};}exports[_0xea76('0x29')]=function(_0x349b68,_0x1f2569){var _0x196be4={},_0x10546c={},_0x17fbd5={'count':0x0,'rows':[]};var _0x419dc6=_[_0xea76('0x2a')](db['DeskAccount'][_0xea76('0x2b')],function(_0xe57839){return{'name':_0xe57839['fieldName'],'type':_0xe57839[_0xea76('0x2c')]['key']};});_0x10546c['model']=_[_0xea76('0x2a')](_0x419dc6,_0xea76('0x28'));_0x10546c['query']=_[_0xea76('0x2d')](_0x349b68[_0xea76('0x2e')]);_0x10546c[_0xea76('0x2f')]=_[_0xea76('0x30')](_0x10546c['model'],_0x10546c['query']);_0x196be4[_0xea76('0x31')]=_[_0xea76('0x30')](_0x10546c[_0xea76('0x32')],qs[_0xea76('0x33')](_0x349b68[_0xea76('0x2e')][_0xea76('0x33')]));_0x196be4[_0xea76('0x31')]=_0x196be4[_0xea76('0x31')][_0xea76('0x34')]?_0x196be4[_0xea76('0x31')]:_0x10546c['model'];if(!_0x349b68['query'][_0xea76('0x35')](_0xea76('0x36'))){_0x196be4[_0xea76('0x20')]=qs[_0xea76('0x20')](_0x349b68['query'][_0xea76('0x20')]);_0x196be4['offset']=qs['offset'](_0x349b68[_0xea76('0x2e')][_0xea76('0x1d')]);}_0x196be4[_0xea76('0x37')]=qs[_0xea76('0x38')](_0x349b68[_0xea76('0x2e')]['sort']);_0x196be4[_0xea76('0x39')]=qs[_0xea76('0x2f')](_[_0xea76('0x3a')](_0x349b68[_0xea76('0x2e')],_0x10546c[_0xea76('0x2f')]),_0x419dc6);if(_0x349b68[_0xea76('0x2e')]['filter']){_0x196be4['where']=_[_0xea76('0x3b')](_0x196be4['where'],{'$or':_['map'](_0x419dc6,function(_0x58ce96){if(_0x58ce96[_0xea76('0x2c')]!==_0xea76('0x3c')){var _0x5ccdae={};_0x5ccdae[_0x58ce96['name']]={'$like':'%'+_0x349b68[_0xea76('0x2e')]['filter']+'%'};return _0x5ccdae;}})});}_0x196be4=_[_0xea76('0x3b')]({},_0x196be4,_0x349b68['options']);var _0x2fb1ad={'where':_0x196be4[_0xea76('0x39')]};return db[_0xea76('0x3d')]['count'](_0x2fb1ad)[_0xea76('0x24')](function(_0x14301f){_0x17fbd5['count']=_0x14301f;if(_0x349b68['query'][_0xea76('0x3e')]){_0x196be4['include']=[{'all':!![]}];}return db[_0xea76('0x3d')][_0xea76('0x3f')](_0x196be4);})['then'](function(_0x270816){_0x17fbd5[_0xea76('0x40')]=_0x270816;return _0x17fbd5;})[_0xea76('0x24')](respondWithFilteredResult(_0x1f2569,_0x196be4))[_0xea76('0x41')](handleError(_0x1f2569,null));};exports[_0xea76('0x42')]=function(_0x4052b7,_0x497b00){var _0x376736={'raw':![],'where':{'id':_0x4052b7['params']['id']}},_0x37a552={};_0x37a552[_0xea76('0x32')]=_['keys'](db[_0xea76('0x3d')]['rawAttributes']);_0x37a552['query']=_['keys'](_0x4052b7['query']);_0x37a552['filters']=_[_0xea76('0x30')](_0x37a552[_0xea76('0x32')],_0x37a552[_0xea76('0x2e')]);_0x376736[_0xea76('0x31')]=_[_0xea76('0x30')](_0x37a552[_0xea76('0x32')],qs[_0xea76('0x33')](_0x4052b7[_0xea76('0x2e')]['fields']));_0x376736['attributes']=_0x376736[_0xea76('0x31')][_0xea76('0x34')]?_0x376736[_0xea76('0x31')]:_0x37a552['model'];if(_0x4052b7[_0xea76('0x2e')][_0xea76('0x3e')]){_0x376736['include']=[{'all':!![]}];}_0x376736=_[_0xea76('0x3b')]({},_0x376736,_0x4052b7['options']);return db[_0xea76('0x3d')][_0xea76('0x43')](_0x376736)[_0xea76('0x24')](handleEntityNotFound(_0x497b00,null))[_0xea76('0x24')](respondWithResult(_0x497b00,null))['catch'](handleError(_0x497b00,null));};exports[_0xea76('0x44')]=function(_0x4fbf90,_0x48f65b){return db[_0xea76('0x3d')]['create'](_0x4fbf90['body'],{})[_0xea76('0x24')](respondWithResult(_0x48f65b,0xc9))[_0xea76('0x41')](handleError(_0x48f65b,null));};exports[_0xea76('0x23')]=function(_0x3d1959,_0x534468){if(_0x3d1959[_0xea76('0x45')]['id']){delete _0x3d1959[_0xea76('0x45')]['id'];}return db[_0xea76('0x3d')][_0xea76('0x43')]({'where':{'id':_0x3d1959[_0xea76('0x46')]['id']}})[_0xea76('0x24')](handleEntityNotFound(_0x534468,null))[_0xea76('0x24')](saveUpdates(_0x3d1959[_0xea76('0x45')],null))[_0xea76('0x24')](respondWithResult(_0x534468,null))[_0xea76('0x41')](handleError(_0x534468,null));};exports['destroy']=function(_0x57d235,_0x1b067d){return db['DeskAccount'][_0xea76('0x43')]({'where':{'id':_0x57d235[_0xea76('0x46')]['id']}})['then'](handleEntityNotFound(_0x1b067d,null))[_0xea76('0x24')](removeEntity(_0x1b067d,null))[_0xea76('0x41')](handleError(_0x1b067d,null));};exports[_0xea76('0x47')]=function(_0x43f5a4,_0x2d45f2,_0xe3dc32){var _0x2d4f94={};var _0x110690={};var _0x2c6b14;var _0x1bbe95;return db[_0xea76('0x3d')][_0xea76('0x48')]({'where':{'id':_0x43f5a4['params']['id']}})[_0xea76('0x24')](handleEntityNotFound(_0x2d45f2,null))[_0xea76('0x24')](function(_0x52053b){if(_0x52053b){_0x2c6b14=_0x52053b;_0x110690[_0xea76('0x32')]=_[_0xea76('0x2d')](db[_0xea76('0x49')][_0xea76('0x2b')]);_0x110690[_0xea76('0x2e')]=_[_0xea76('0x2d')](_0x43f5a4['query']);_0x110690[_0xea76('0x2f')]=_['intersection'](_0x110690[_0xea76('0x32')],_0x110690['query']);_0x2d4f94['attributes']=_[_0xea76('0x30')](_0x110690[_0xea76('0x32')],qs['fields'](_0x43f5a4[_0xea76('0x2e')]['fields']));_0x2d4f94[_0xea76('0x31')]=_0x2d4f94['attributes']['length']?_0x2d4f94[_0xea76('0x31')]:_0x110690[_0xea76('0x32')];_0x2d4f94[_0xea76('0x37')]=qs[_0xea76('0x38')](_0x43f5a4[_0xea76('0x2e')][_0xea76('0x38')]);_0x2d4f94['where']=qs[_0xea76('0x2f')](_[_0xea76('0x3a')](_0x43f5a4['query'],_0x110690[_0xea76('0x2f')]));if(_0x43f5a4[_0xea76('0x2e')]['filter']){_0x2d4f94['where']=_[_0xea76('0x3b')](_0x2d4f94[_0xea76('0x39')],{'$or':_[_0xea76('0x2a')](_0x2d4f94[_0xea76('0x31')],function(_0x335b57){var _0x2d4aa7={};_0x2d4aa7[_0x335b57]={'$like':'%'+_0x43f5a4[_0xea76('0x2e')][_0xea76('0x4a')]+'%'};return _0x2d4aa7;})});}_0x2d4f94=_[_0xea76('0x3b')]({},_0x2d4f94,_0x43f5a4[_0xea76('0x4b')]);return _0x2c6b14[_0xea76('0x47')](_0x2d4f94);}})[_0xea76('0x24')](function(_0x36fb0f){if(_0x36fb0f){_0x1bbe95=_0x36fb0f[_0xea76('0x34')];if(!_0x43f5a4[_0xea76('0x2e')][_0xea76('0x35')]('nolimit')){_0x2d4f94[_0xea76('0x20')]=qs['limit'](_0x43f5a4[_0xea76('0x2e')]['limit']);_0x2d4f94[_0xea76('0x1d')]=qs['offset'](_0x43f5a4[_0xea76('0x2e')]['offset']);}return _0x2c6b14[_0xea76('0x47')](_0x2d4f94);}})[_0xea76('0x24')](function(_0x271f79){if(_0x271f79){return _0x271f79?{'count':_0x1bbe95,'rows':_0x271f79}:null;}})['then'](respondWithResult(_0x2d45f2,null))['catch'](handleError(_0x2d45f2,null));};exports['addConfiguration']=function(_0x1dcfc2,_0x59aa05,_0x8ac963){if(_0x1dcfc2[_0xea76('0x45')]['id']){delete _0x1dcfc2[_0xea76('0x45')]['id'];}return db['DeskAccount'][_0xea76('0x48')]({'where':{'id':_0x1dcfc2[_0xea76('0x46')]['id']}})[_0xea76('0x24')](handleEntityNotFound(_0x59aa05,null))[_0xea76('0x24')](function(_0x1b370c){if(_0x1b370c){_0x1dcfc2[_0xea76('0x45')][_0xea76('0x4c')]=_0x1b370c['id'];_0x1dcfc2[_0xea76('0x45')][_0xea76('0x4d')]=integrations[_0xea76('0x4e')](_0x1dcfc2['body'][_0xea76('0x4f')],_0x1dcfc2[_0xea76('0x45')][_0xea76('0x2c')]);_0x1dcfc2[_0xea76('0x45')][_0xea76('0x50')]=integrations['getDescriptions'](_0x1dcfc2[_0xea76('0x45')]['channel'],_0x1dcfc2[_0xea76('0x45')][_0xea76('0x2c')]);return db[_0xea76('0x49')]['create'](_0x1dcfc2['body'],{'include':[{'model':db[_0xea76('0x51')],'as':'Subjects'},{'model':db[_0xea76('0x51')],'as':_0xea76('0x50')}]});}return null;})['then'](respondWithResult(_0x59aa05,null))[_0xea76('0x41')](handleError(_0x59aa05,null));};exports[_0xea76('0x52')]=function(_0x3605a5,_0x391b77,_0xbb14f3){var _0x1a5054=[{'name':_0xea76('0x53'),'label':_0xea76('0x53'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x10b9cd='';return db['DeskAccount'][_0xea76('0x48')]({'where':{'id':_0x3605a5['params']['id']},'attributes':['id',_0xea76('0x54'),_0xea76('0x55'),'username',_0xea76('0x56'),_0xea76('0x57'),_0xea76('0x58'),_0xea76('0x59'),_0xea76('0x5a')]})[_0xea76('0x24')](handleEntityNotFound(_0x391b77,null))[_0xea76('0x24')](function(_0xfd6f28){if(_0xfd6f28){_0x10b9cd=_0xfd6f28['remoteUri'];var _0x2a2361=_0x10b9cd['slice'](-0x1);if(_0x2a2361==='/'){_0x10b9cd=_0x10b9cd[_0xea76('0x5b')](0x0,_0x10b9cd[_0xea76('0x5c')](_0x2a2361));}var _0x32aa94={'method':_0xea76('0x5d'),'uri':util[_0xea76('0x5e')]('%s/custom_fields',_0x10b9cd),'headers':{'Content-Type':_0xea76('0x5f'),'Accept':_0xea76('0x5f')},'json':!![]};if(_0xfd6f28[_0xea76('0x55')]===_0xea76('0x60')){_0x32aa94[_0xea76('0x61')][_0xea76('0x62')]=util[_0xea76('0x5e')](_0xea76('0x63'),new Buffer(util[_0xea76('0x5e')](_0xea76('0x64'),_0xfd6f28[_0xea76('0x65')],_0xfd6f28[_0xea76('0x56')]))[_0xea76('0x66')](_0xea76('0x67')));}return rp(_0x32aa94)[_0xea76('0x24')](function(_0x439193){return _0x1a5054[_0xea76('0x68')](_[_0xea76('0x2a')](_0x439193[_0xea76('0x69')]['entries'],function(_0x22e7c8){return{'id':_0x22e7c8[_0xea76('0x28')],'name':_0x22e7c8[_0xea76('0x28')],'type':_0x22e7c8[_0xea76('0x2c')],'active':_0x22e7c8['active'],'label':_0x22e7c8[_0xea76('0x6a')],'custom':!![]};}));});}})[_0xea76('0x24')](function(_0x524176){return{'count':_0x524176[_0xea76('0x34')],'rows':_0x524176};})[_0xea76('0x24')](respondWithResult(_0x391b77,null))['catch'](function(_0x522c8f){var _0x1ed64c=_0x3605a5[_0xea76('0x2e')]['test']?0x1f4:_0x522c8f[_0xea76('0x6b')]||0x1f4;logger[_0xea76('0x26')](_0xea76('0x6c'),_0xea76('0x52'),_0x1ed64c,JSON[_0xea76('0x6d')](_0x522c8f));delete _0x522c8f[_0xea76('0x28')];if(_0x1ed64c===0x191){_0x1ed64c=0x190;}_0x391b77[_0xea76('0x1b')](_0x1ed64c)[_0xea76('0x6e')](_0x3605a5[_0xea76('0x2e')][_0xea76('0x6f')]?{'message':_0xea76('0x70'),'statusCode':_0x522c8f[_0xea76('0x6b')]}:_0x522c8f);});};