26d2d1ecac401065dd85add267cca9b2ff4afa7a
[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 _0x7d67=['getFields','priority','remoteUri','authType','username','consumerKey','consumerSecret','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','password','toString','base64','concat','active','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','error','name','send','index','map','DeskAccount','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','include','show','includeAll','find','catch','create','body','params','findOne','DeskConfiguration','getConfigurations','AccountId','Subjects','getSubjects','channel','getDescriptions','DeskField'];(function(_0x2652b8,_0x59c8a9){var _0x2ae5b0=function(_0x4d3376){while(--_0x4d3376){_0x2652b8['push'](_0x2652b8['shift']());}};_0x2ae5b0(++_0x59c8a9);}(_0x7d67,0xfb));var _0x77d6=function(_0x165a2c,_0xa7bc83){_0x165a2c=_0x165a2c-0x0;var _0x3ddcee=_0x7d67[_0x165a2c];return _0x3ddcee;};'use strict';var emlformat=require(_0x77d6('0x0'));var rimraf=require(_0x77d6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x77d6('0x2'));var rp=require(_0x77d6('0x3'));var moment=require(_0x77d6('0x4'));var BPromise=require(_0x77d6('0x5'));var Mustache=require(_0x77d6('0x6'));var util=require('util');var path=require(_0x77d6('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x77d6('0x8'));var fs=require('fs');var fs_extra=require(_0x77d6('0x9'));var _=require(_0x77d6('0xa'));var squel=require(_0x77d6('0xb'));var crypto=require(_0x77d6('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x77d6('0xd'));var toCsv=require(_0x77d6('0xe'));var querystring=require('querystring');var Papa=require(_0x77d6('0xf'));var Redis=require(_0x77d6('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x77d6('0x11'));var as=require(_0x77d6('0x12'));var hardwareService=require(_0x77d6('0x13'));var logger=require(_0x77d6('0x14'))(_0x77d6('0x15'));var utils=require(_0x77d6('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x77d6('0x17'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x2ac925,_0x2f8505){_0x2f8505=_0x2f8505||0xcc;return function(_0x48c8a2){if(_0x48c8a2){return _0x2ac925[_0x77d6('0x18')](_0x2f8505);}return _0x2ac925['status'](_0x2f8505)[_0x77d6('0x19')]();};}function respondWithResult(_0x10ffd7,_0x1abd77){_0x1abd77=_0x1abd77||0xc8;return function(_0x18a6ee){if(_0x18a6ee){return _0x10ffd7[_0x77d6('0x1a')](_0x1abd77)[_0x77d6('0x1b')](_0x18a6ee);}};}function respondWithFilteredResult(_0x6fbcc7,_0x1caf58){return function(_0x5d6d88){if(_0x5d6d88){var _0x16040e=typeof _0x1caf58[_0x77d6('0x1c')]===_0x77d6('0x1d')&&typeof _0x1caf58[_0x77d6('0x1e')]===_0x77d6('0x1d');var _0x2935c6=_0x5d6d88['count'];var _0x4af230=_0x16040e?0x0:_0x1caf58[_0x77d6('0x1c')];var _0x351804=_0x16040e?_0x5d6d88[_0x77d6('0x1f')]:_0x1caf58[_0x77d6('0x1c')]+_0x1caf58[_0x77d6('0x1e')];var _0x161ffb;if(_0x351804>=_0x2935c6){_0x351804=_0x2935c6;_0x161ffb=0xc8;}else{_0x161ffb=0xce;}_0x6fbcc7[_0x77d6('0x1a')](_0x161ffb);return _0x6fbcc7[_0x77d6('0x20')](_0x77d6('0x21'),_0x4af230+'-'+_0x351804+'/'+_0x2935c6)[_0x77d6('0x1b')](_0x5d6d88);}return null;};}function patchUpdates(_0x26c403){return function(_0x31c1f0){try{jsonpatch['apply'](_0x31c1f0,_0x26c403,!![]);}catch(_0x106ff0){return BPromise['reject'](_0x106ff0);}return _0x31c1f0[_0x77d6('0x22')]();};}function saveUpdates(_0x436a20,_0x5047f6){return function(_0x1ae5e7){if(_0x1ae5e7){return _0x1ae5e7[_0x77d6('0x23')](_0x436a20)[_0x77d6('0x24')](function(_0xd25b5b){return _0xd25b5b;});}return null;};}function removeEntity(_0x1328ee,_0x1cd749){return function(_0x43b88b){if(_0x43b88b){return _0x43b88b[_0x77d6('0x25')]()[_0x77d6('0x24')](function(){_0x1328ee['status'](0xcc)[_0x77d6('0x19')]();});}};}function handleEntityNotFound(_0xbf675c,_0x3f09e6){return function(_0x241212){if(!_0x241212){_0xbf675c['sendStatus'](0x194);}return _0x241212;};}function handleError(_0x195043,_0xf9e3c9){_0xf9e3c9=_0xf9e3c9||0x1f4;return function(_0xa97c4){logger[_0x77d6('0x26')](_0xa97c4['stack']);if(_0xa97c4[_0x77d6('0x27')]){delete _0xa97c4[_0x77d6('0x27')];}_0x195043[_0x77d6('0x1a')](_0xf9e3c9)[_0x77d6('0x28')](_0xa97c4);};}exports[_0x77d6('0x29')]=function(_0x46e1aa,_0x3cb485){var _0x19959b={},_0x4ee16d={},_0x405fb2={'count':0x0,'rows':[]};var _0x5e9c06=_[_0x77d6('0x2a')](db[_0x77d6('0x2b')][_0x77d6('0x2c')],function(_0x5bf3f3){return{'name':_0x5bf3f3[_0x77d6('0x2d')],'type':_0x5bf3f3['type'][_0x77d6('0x2e')]};});_0x4ee16d[_0x77d6('0x2f')]=_[_0x77d6('0x2a')](_0x5e9c06,_0x77d6('0x27'));_0x4ee16d[_0x77d6('0x30')]=_[_0x77d6('0x31')](_0x46e1aa[_0x77d6('0x30')]);_0x4ee16d[_0x77d6('0x32')]=_['intersection'](_0x4ee16d[_0x77d6('0x2f')],_0x4ee16d[_0x77d6('0x30')]);_0x19959b[_0x77d6('0x33')]=_[_0x77d6('0x34')](_0x4ee16d[_0x77d6('0x2f')],qs[_0x77d6('0x35')](_0x46e1aa[_0x77d6('0x30')]['fields']));_0x19959b[_0x77d6('0x33')]=_0x19959b[_0x77d6('0x33')][_0x77d6('0x36')]?_0x19959b[_0x77d6('0x33')]:_0x4ee16d[_0x77d6('0x2f')];if(!_0x46e1aa[_0x77d6('0x30')][_0x77d6('0x37')](_0x77d6('0x38'))){_0x19959b[_0x77d6('0x1e')]=qs['limit'](_0x46e1aa[_0x77d6('0x30')]['limit']);_0x19959b[_0x77d6('0x1c')]=qs[_0x77d6('0x1c')](_0x46e1aa[_0x77d6('0x30')][_0x77d6('0x1c')]);}_0x19959b['order']=qs[_0x77d6('0x39')](_0x46e1aa[_0x77d6('0x30')]['sort']);_0x19959b[_0x77d6('0x3a')]=qs[_0x77d6('0x32')](_[_0x77d6('0x3b')](_0x46e1aa[_0x77d6('0x30')],_0x4ee16d[_0x77d6('0x32')]),_0x5e9c06);if(_0x46e1aa[_0x77d6('0x30')]['filter']){_0x19959b[_0x77d6('0x3a')]=_[_0x77d6('0x3c')](_0x19959b[_0x77d6('0x3a')],{'$or':_[_0x77d6('0x2a')](_0x5e9c06,function(_0x5b5152){if(_0x5b5152[_0x77d6('0x3d')]!==_0x77d6('0x3e')){var _0x44d242={};_0x44d242[_0x5b5152[_0x77d6('0x27')]]={'$like':'%'+_0x46e1aa[_0x77d6('0x30')][_0x77d6('0x3f')]+'%'};return _0x44d242;}})});}_0x19959b=_[_0x77d6('0x3c')]({},_0x19959b,_0x46e1aa[_0x77d6('0x40')]);var _0x2d6416={'where':_0x19959b[_0x77d6('0x3a')]};return db[_0x77d6('0x2b')]['count'](_0x2d6416)[_0x77d6('0x24')](function(_0x11f1db){_0x405fb2['count']=_0x11f1db;if(_0x46e1aa[_0x77d6('0x30')]['includeAll']){_0x19959b[_0x77d6('0x41')]=[{'all':!![]}];}return db[_0x77d6('0x2b')]['findAll'](_0x19959b);})[_0x77d6('0x24')](function(_0x2bd49e){_0x405fb2['rows']=_0x2bd49e;return _0x405fb2;})[_0x77d6('0x24')](respondWithFilteredResult(_0x3cb485,_0x19959b))['catch'](handleError(_0x3cb485,null));};exports[_0x77d6('0x42')]=function(_0x5c114c,_0x1408cc){var _0x1991b2={'raw':![],'where':{'id':_0x5c114c['params']['id']}},_0x22cc3a={};_0x22cc3a[_0x77d6('0x2f')]=_[_0x77d6('0x31')](db['DeskAccount']['rawAttributes']);_0x22cc3a[_0x77d6('0x30')]=_[_0x77d6('0x31')](_0x5c114c[_0x77d6('0x30')]);_0x22cc3a[_0x77d6('0x32')]=_['intersection'](_0x22cc3a['model'],_0x22cc3a['query']);_0x1991b2['attributes']=_[_0x77d6('0x34')](_0x22cc3a['model'],qs['fields'](_0x5c114c[_0x77d6('0x30')]['fields']));_0x1991b2[_0x77d6('0x33')]=_0x1991b2[_0x77d6('0x33')]['length']?_0x1991b2[_0x77d6('0x33')]:_0x22cc3a[_0x77d6('0x2f')];if(_0x5c114c[_0x77d6('0x30')][_0x77d6('0x43')]){_0x1991b2[_0x77d6('0x41')]=[{'all':!![]}];}_0x1991b2=_[_0x77d6('0x3c')]({},_0x1991b2,_0x5c114c['options']);return db[_0x77d6('0x2b')][_0x77d6('0x44')](_0x1991b2)[_0x77d6('0x24')](handleEntityNotFound(_0x1408cc,null))[_0x77d6('0x24')](respondWithResult(_0x1408cc,null))[_0x77d6('0x45')](handleError(_0x1408cc,null));};exports[_0x77d6('0x46')]=function(_0xd9eeeb,_0x2afc61){return db[_0x77d6('0x2b')][_0x77d6('0x46')](_0xd9eeeb[_0x77d6('0x47')],{})['then'](respondWithResult(_0x2afc61,0xc9))[_0x77d6('0x45')](handleError(_0x2afc61,null));};exports['update']=function(_0x4af468,_0x58da10){if(_0x4af468[_0x77d6('0x47')]['id']){delete _0x4af468[_0x77d6('0x47')]['id'];}return db[_0x77d6('0x2b')][_0x77d6('0x44')]({'where':{'id':_0x4af468[_0x77d6('0x48')]['id']}})[_0x77d6('0x24')](handleEntityNotFound(_0x58da10,null))['then'](saveUpdates(_0x4af468['body'],null))[_0x77d6('0x24')](respondWithResult(_0x58da10,null))['catch'](handleError(_0x58da10,null));};exports[_0x77d6('0x25')]=function(_0x10fe44,_0x3565f1){return db[_0x77d6('0x2b')][_0x77d6('0x44')]({'where':{'id':_0x10fe44[_0x77d6('0x48')]['id']}})[_0x77d6('0x24')](handleEntityNotFound(_0x3565f1,null))['then'](removeEntity(_0x3565f1,null))[_0x77d6('0x45')](handleError(_0x3565f1,null));};exports['getConfigurations']=function(_0x399a27,_0x2c6e9d,_0x54229b){var _0x100fcd={};var _0x5f8624={};var _0x4b675c;var _0x2f054b;return db['DeskAccount'][_0x77d6('0x49')]({'where':{'id':_0x399a27[_0x77d6('0x48')]['id']}})[_0x77d6('0x24')](handleEntityNotFound(_0x2c6e9d,null))[_0x77d6('0x24')](function(_0x58267f){if(_0x58267f){_0x4b675c=_0x58267f;_0x5f8624[_0x77d6('0x2f')]=_[_0x77d6('0x31')](db[_0x77d6('0x4a')][_0x77d6('0x2c')]);_0x5f8624['query']=_[_0x77d6('0x31')](_0x399a27[_0x77d6('0x30')]);_0x5f8624[_0x77d6('0x32')]=_[_0x77d6('0x34')](_0x5f8624['model'],_0x5f8624[_0x77d6('0x30')]);_0x100fcd[_0x77d6('0x33')]=_['intersection'](_0x5f8624[_0x77d6('0x2f')],qs['fields'](_0x399a27[_0x77d6('0x30')][_0x77d6('0x35')]));_0x100fcd[_0x77d6('0x33')]=_0x100fcd[_0x77d6('0x33')][_0x77d6('0x36')]?_0x100fcd['attributes']:_0x5f8624[_0x77d6('0x2f')];_0x100fcd['order']=qs[_0x77d6('0x39')](_0x399a27[_0x77d6('0x30')]['sort']);_0x100fcd[_0x77d6('0x3a')]=qs[_0x77d6('0x32')](_[_0x77d6('0x3b')](_0x399a27[_0x77d6('0x30')],_0x5f8624[_0x77d6('0x32')]));if(_0x399a27[_0x77d6('0x30')][_0x77d6('0x3f')]){_0x100fcd['where']=_['merge'](_0x100fcd[_0x77d6('0x3a')],{'$or':_[_0x77d6('0x2a')](_0x100fcd['attributes'],function(_0x4a03ef){var _0x2f3d0d={};_0x2f3d0d[_0x4a03ef]={'$like':'%'+_0x399a27[_0x77d6('0x30')][_0x77d6('0x3f')]+'%'};return _0x2f3d0d;})});}_0x100fcd=_[_0x77d6('0x3c')]({},_0x100fcd,_0x399a27['options']);return _0x4b675c['getConfigurations'](_0x100fcd);}})['then'](function(_0x4864e9){if(_0x4864e9){_0x2f054b=_0x4864e9[_0x77d6('0x36')];if(!_0x399a27[_0x77d6('0x30')][_0x77d6('0x37')](_0x77d6('0x38'))){_0x100fcd[_0x77d6('0x1e')]=qs[_0x77d6('0x1e')](_0x399a27[_0x77d6('0x30')][_0x77d6('0x1e')]);_0x100fcd[_0x77d6('0x1c')]=qs[_0x77d6('0x1c')](_0x399a27[_0x77d6('0x30')][_0x77d6('0x1c')]);}return _0x4b675c[_0x77d6('0x4b')](_0x100fcd);}})[_0x77d6('0x24')](function(_0x47a4ef){if(_0x47a4ef){return _0x47a4ef?{'count':_0x2f054b,'rows':_0x47a4ef}:null;}})[_0x77d6('0x24')](respondWithResult(_0x2c6e9d,null))['catch'](handleError(_0x2c6e9d,null));};exports['addConfiguration']=function(_0x31d1ed,_0x23177b,_0x28eeb0){if(_0x31d1ed[_0x77d6('0x47')]['id']){delete _0x31d1ed[_0x77d6('0x47')]['id'];}return db[_0x77d6('0x2b')][_0x77d6('0x49')]({'where':{'id':_0x31d1ed[_0x77d6('0x48')]['id']}})[_0x77d6('0x24')](handleEntityNotFound(_0x23177b,null))['then'](function(_0x4a1265){if(_0x4a1265){_0x31d1ed['body'][_0x77d6('0x4c')]=_0x4a1265['id'];_0x31d1ed[_0x77d6('0x47')][_0x77d6('0x4d')]=integrations[_0x77d6('0x4e')](_0x31d1ed['body'][_0x77d6('0x4f')],_0x31d1ed[_0x77d6('0x47')]['type']);_0x31d1ed[_0x77d6('0x47')]['Descriptions']=integrations[_0x77d6('0x50')](_0x31d1ed[_0x77d6('0x47')][_0x77d6('0x4f')],_0x31d1ed[_0x77d6('0x47')][_0x77d6('0x3d')]);return db[_0x77d6('0x4a')]['create'](_0x31d1ed['body'],{'include':[{'model':db['DeskField'],'as':'Subjects'},{'model':db[_0x77d6('0x51')],'as':'Descriptions'}]});}return null;})[_0x77d6('0x24')](respondWithResult(_0x23177b,null))[_0x77d6('0x45')](handleError(_0x23177b,null));};exports[_0x77d6('0x52')]=function(_0x2d072f,_0x4a16d2,_0x5aba63){var _0x3454c2=[{'name':_0x77d6('0x53'),'label':_0x77d6('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 _0x4c626a='';return db[_0x77d6('0x2b')]['findOne']({'where':{'id':_0x2d072f[_0x77d6('0x48')]['id']},'attributes':['id',_0x77d6('0x54'),_0x77d6('0x55'),_0x77d6('0x56'),'password',_0x77d6('0x57'),_0x77d6('0x58'),'token','tokenSecret']})[_0x77d6('0x24')](handleEntityNotFound(_0x4a16d2,null))[_0x77d6('0x24')](function(_0x122831){if(_0x122831){_0x4c626a=_0x122831[_0x77d6('0x54')];var _0xc1cd3c=_0x4c626a[_0x77d6('0x59')](-0x1);if(_0xc1cd3c==='/'){_0x4c626a=_0x4c626a[_0x77d6('0x5a')](0x0,_0x4c626a[_0x77d6('0x5b')](_0xc1cd3c));}var _0x5071b6={'method':_0x77d6('0x5c'),'uri':util[_0x77d6('0x5d')](_0x77d6('0x5e'),_0x4c626a),'headers':{'Content-Type':'application/json','Accept':_0x77d6('0x5f')},'json':!![]};if(_0x122831[_0x77d6('0x55')]===_0x77d6('0x60')){_0x5071b6[_0x77d6('0x61')][_0x77d6('0x62')]=util[_0x77d6('0x5d')](_0x77d6('0x63'),new Buffer(util['format'](_0x77d6('0x64'),_0x122831['username'],_0x122831[_0x77d6('0x65')]))[_0x77d6('0x66')](_0x77d6('0x67')));}return rp(_0x5071b6)[_0x77d6('0x24')](function(_0x418a23){return _0x3454c2[_0x77d6('0x68')](_[_0x77d6('0x2a')](_0x418a23['_embedded']['entries'],function(_0x202272){return{'id':_0x202272[_0x77d6('0x27')],'name':_0x202272['name'],'type':_0x202272[_0x77d6('0x3d')],'active':_0x202272[_0x77d6('0x69')],'label':_0x202272[_0x77d6('0x6a')],'custom':!![]};}));});}})[_0x77d6('0x24')](function(_0x1aa317){return{'count':_0x1aa317[_0x77d6('0x36')],'rows':_0x1aa317};})['then'](respondWithResult(_0x4a16d2,null))[_0x77d6('0x45')](function(_0x14d00a){var _0x229552=_0x2d072f[_0x77d6('0x30')][_0x77d6('0x6b')]?0x1f4:_0x14d00a['statusCode']||0x1f4;logger[_0x77d6('0x26')](_0x77d6('0x6c'),_0x77d6('0x52'),_0x229552,JSON[_0x77d6('0x6d')](_0x14d00a));delete _0x14d00a[_0x77d6('0x27')];if(_0x229552===0x191){_0x229552=0x190;}_0x4a16d2[_0x77d6('0x1a')](_0x229552)['send'](_0x2d072f[_0x77d6('0x30')]['test']?{'message':_0x77d6('0x6e'),'statusCode':_0x14d00a['statusCode']}:_0x14d00a);});};