Built motion from commit f623a78c.|2.6.31
[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 _0x680a=['stack','send','index','map','DeskAccount','rawAttributes','type','key','model','name','query','keys','filters','intersection','fields','attributes','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','includeAll','include','findAll','rows','show','params','length','options','find','catch','body','getConfigurations','hasOwnProperty','findOne','AccountId','getSubjects','channel','Descriptions','DeskConfiguration','Subjects','getFields','priority','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','format','application/json','basic','headers','Authorization','username','toString','base64','_embedded','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','limit','count','offset','Content-Range','json','apply','reject','save','update','then','destroy','end','sendStatus','error'];(function(_0x16f39a,_0x233f55){var _0xd6a5da=function(_0x179a80){while(--_0x179a80){_0x16f39a['push'](_0x16f39a['shift']());}};_0xd6a5da(++_0x233f55);}(_0x680a,0x123));var _0xa680=function(_0xd42242,_0x23e6af){_0xd42242=_0xd42242-0x0;var _0x5326cb=_0x680a[_0xd42242];return _0x5326cb;};'use strict';var emlformat=require(_0xa680('0x0'));var rimraf=require(_0xa680('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa680('0x2'));var rp=require(_0xa680('0x3'));var moment=require(_0xa680('0x4'));var BPromise=require(_0xa680('0x5'));var Mustache=require(_0xa680('0x6'));var util=require('util');var path=require(_0xa680('0x7'));var sox=require('sox');var csv=require(_0xa680('0x8'));var ejs=require(_0xa680('0x9'));var fs=require('fs');var fs_extra=require(_0xa680('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xa680('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xa680('0x8'));var querystring=require(_0xa680('0xc'));var Papa=require(_0xa680('0xd'));var Redis=require(_0xa680('0xe'));var authService=require(_0xa680('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa680('0x10'));var hardwareService=require(_0xa680('0x11'));var logger=require(_0xa680('0x12'))(_0xa680('0x13'));var utils=require(_0xa680('0x14'));var config=require(_0xa680('0x15'));var licenseUtil=require(_0xa680('0x16'));var db=require(_0xa680('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x25de50,_0x3cdf21){_0x3cdf21=_0x3cdf21||0xcc;return function(_0x5e3c42){if(_0x5e3c42){return _0x25de50['sendStatus'](_0x3cdf21);}return _0x25de50[_0xa680('0x18')](_0x3cdf21)['end']();};}function respondWithResult(_0x998be4,_0x40161c){_0x40161c=_0x40161c||0xc8;return function(_0x45a5bc){if(_0x45a5bc){return _0x998be4[_0xa680('0x18')](_0x40161c)['json'](_0x45a5bc);}};}function respondWithFilteredResult(_0x32085e,_0x2fac26){return function(_0x503840){if(_0x503840){var _0x329b11=typeof _0x2fac26['offset']==='undefined'&&typeof _0x2fac26[_0xa680('0x19')]==='undefined';var _0x2d3530=_0x503840['count'];var _0x5b0024=_0x329b11?0x0:_0x2fac26['offset'];var _0x4cc415=_0x329b11?_0x503840[_0xa680('0x1a')]:_0x2fac26[_0xa680('0x1b')]+_0x2fac26[_0xa680('0x19')];var _0x453eb0;if(_0x4cc415>=_0x2d3530){_0x4cc415=_0x2d3530;_0x453eb0=0xc8;}else{_0x453eb0=0xce;}_0x32085e[_0xa680('0x18')](_0x453eb0);return _0x32085e['set'](_0xa680('0x1c'),_0x5b0024+'-'+_0x4cc415+'/'+_0x2d3530)[_0xa680('0x1d')](_0x503840);}return null;};}function patchUpdates(_0x35e7f1){return function(_0x9ff5e8){try{jsonpatch[_0xa680('0x1e')](_0x9ff5e8,_0x35e7f1,!![]);}catch(_0x553e69){return BPromise[_0xa680('0x1f')](_0x553e69);}return _0x9ff5e8[_0xa680('0x20')]();};}function saveUpdates(_0x59c1e1,_0x3c6f08){return function(_0x28b9dd){if(_0x28b9dd){return _0x28b9dd[_0xa680('0x21')](_0x59c1e1)[_0xa680('0x22')](function(_0xda35df){return _0xda35df;});}return null;};}function removeEntity(_0x469ad9,_0xb5c733){return function(_0x1047c5){if(_0x1047c5){return _0x1047c5[_0xa680('0x23')]()['then'](function(){_0x469ad9[_0xa680('0x18')](0xcc)[_0xa680('0x24')]();});}};}function handleEntityNotFound(_0xdf2571,_0x525c29){return function(_0x175a83){if(!_0x175a83){_0xdf2571[_0xa680('0x25')](0x194);}return _0x175a83;};}function handleError(_0x298a28,_0x47cd10){_0x47cd10=_0x47cd10||0x1f4;return function(_0x1a1c1f){logger[_0xa680('0x26')](_0x1a1c1f[_0xa680('0x27')]);if(_0x1a1c1f['name']){delete _0x1a1c1f['name'];}_0x298a28['status'](_0x47cd10)[_0xa680('0x28')](_0x1a1c1f);};}exports[_0xa680('0x29')]=function(_0x527886,_0x5294bc){var _0x337ec0={},_0xa732e7={},_0x2d2c9d={'count':0x0,'rows':[]};var _0x53d2a2=_[_0xa680('0x2a')](db[_0xa680('0x2b')][_0xa680('0x2c')],function(_0x3bb4cc){return{'name':_0x3bb4cc['fieldName'],'type':_0x3bb4cc[_0xa680('0x2d')][_0xa680('0x2e')]};});_0xa732e7[_0xa680('0x2f')]=_['map'](_0x53d2a2,_0xa680('0x30'));_0xa732e7[_0xa680('0x31')]=_[_0xa680('0x32')](_0x527886[_0xa680('0x31')]);_0xa732e7[_0xa680('0x33')]=_[_0xa680('0x34')](_0xa732e7['model'],_0xa732e7[_0xa680('0x31')]);_0x337ec0['attributes']=_[_0xa680('0x34')](_0xa732e7[_0xa680('0x2f')],qs[_0xa680('0x35')](_0x527886[_0xa680('0x31')][_0xa680('0x35')]));_0x337ec0['attributes']=_0x337ec0[_0xa680('0x36')]['length']?_0x337ec0[_0xa680('0x36')]:_0xa732e7[_0xa680('0x2f')];if(!_0x527886[_0xa680('0x31')]['hasOwnProperty'](_0xa680('0x37'))){_0x337ec0['limit']=qs['limit'](_0x527886[_0xa680('0x31')][_0xa680('0x19')]);_0x337ec0['offset']=qs[_0xa680('0x1b')](_0x527886[_0xa680('0x31')]['offset']);}_0x337ec0[_0xa680('0x38')]=qs[_0xa680('0x39')](_0x527886[_0xa680('0x31')][_0xa680('0x39')]);_0x337ec0['where']=qs[_0xa680('0x33')](_[_0xa680('0x3a')](_0x527886[_0xa680('0x31')],_0xa732e7[_0xa680('0x33')]),_0x53d2a2);if(_0x527886[_0xa680('0x31')]['filter']){_0x337ec0[_0xa680('0x3b')]=_[_0xa680('0x3c')](_0x337ec0['where'],{'$or':_[_0xa680('0x2a')](_0x53d2a2,function(_0x4ba762){if(_0x4ba762[_0xa680('0x2d')]!==_0xa680('0x3d')){var _0x5f3868={};_0x5f3868[_0x4ba762[_0xa680('0x30')]]={'$like':'%'+_0x527886[_0xa680('0x31')][_0xa680('0x3e')]+'%'};return _0x5f3868;}})});}_0x337ec0=_[_0xa680('0x3c')]({},_0x337ec0,_0x527886['options']);var _0x5bdad4={'where':_0x337ec0[_0xa680('0x3b')]};return db['DeskAccount']['count'](_0x5bdad4)['then'](function(_0x34ab6a){_0x2d2c9d[_0xa680('0x1a')]=_0x34ab6a;if(_0x527886[_0xa680('0x31')][_0xa680('0x3f')]){_0x337ec0[_0xa680('0x40')]=[{'all':!![]}];}return db[_0xa680('0x2b')][_0xa680('0x41')](_0x337ec0);})[_0xa680('0x22')](function(_0x46b2e1){_0x2d2c9d[_0xa680('0x42')]=_0x46b2e1;return _0x2d2c9d;})[_0xa680('0x22')](respondWithFilteredResult(_0x5294bc,_0x337ec0))['catch'](handleError(_0x5294bc,null));};exports[_0xa680('0x43')]=function(_0x426512,_0x456780){var _0x34f900={'raw':![],'where':{'id':_0x426512[_0xa680('0x44')]['id']}},_0x4bcf03={};_0x4bcf03[_0xa680('0x2f')]=_[_0xa680('0x32')](db[_0xa680('0x2b')]['rawAttributes']);_0x4bcf03[_0xa680('0x31')]=_[_0xa680('0x32')](_0x426512[_0xa680('0x31')]);_0x4bcf03[_0xa680('0x33')]=_[_0xa680('0x34')](_0x4bcf03['model'],_0x4bcf03[_0xa680('0x31')]);_0x34f900[_0xa680('0x36')]=_['intersection'](_0x4bcf03[_0xa680('0x2f')],qs[_0xa680('0x35')](_0x426512['query'][_0xa680('0x35')]));_0x34f900['attributes']=_0x34f900[_0xa680('0x36')][_0xa680('0x45')]?_0x34f900['attributes']:_0x4bcf03[_0xa680('0x2f')];if(_0x426512[_0xa680('0x31')]['includeAll']){_0x34f900[_0xa680('0x40')]=[{'all':!![]}];}_0x34f900=_[_0xa680('0x3c')]({},_0x34f900,_0x426512[_0xa680('0x46')]);return db['DeskAccount'][_0xa680('0x47')](_0x34f900)[_0xa680('0x22')](handleEntityNotFound(_0x456780,null))[_0xa680('0x22')](respondWithResult(_0x456780,null))[_0xa680('0x48')](handleError(_0x456780,null));};exports['create']=function(_0x478ad1,_0x336c7d){return db['DeskAccount']['create'](_0x478ad1[_0xa680('0x49')],{})[_0xa680('0x22')](respondWithResult(_0x336c7d,0xc9))['catch'](handleError(_0x336c7d,null));};exports[_0xa680('0x21')]=function(_0x5dd53a,_0x499e0f){if(_0x5dd53a[_0xa680('0x49')]['id']){delete _0x5dd53a[_0xa680('0x49')]['id'];}return db[_0xa680('0x2b')][_0xa680('0x47')]({'where':{'id':_0x5dd53a[_0xa680('0x44')]['id']}})[_0xa680('0x22')](handleEntityNotFound(_0x499e0f,null))[_0xa680('0x22')](saveUpdates(_0x5dd53a[_0xa680('0x49')],null))[_0xa680('0x22')](respondWithResult(_0x499e0f,null))[_0xa680('0x48')](handleError(_0x499e0f,null));};exports[_0xa680('0x23')]=function(_0x264762,_0x5c7741){return db['DeskAccount']['find']({'where':{'id':_0x264762['params']['id']}})[_0xa680('0x22')](handleEntityNotFound(_0x5c7741,null))['then'](removeEntity(_0x5c7741,null))[_0xa680('0x48')](handleError(_0x5c7741,null));};exports[_0xa680('0x4a')]=function(_0x48b4d4,_0x4ab8d1,_0x2c4fad){var _0x1309fc={};var _0x1821dc={};var _0x4ca3e9;var _0x5092f3;return db[_0xa680('0x2b')]['findOne']({'where':{'id':_0x48b4d4[_0xa680('0x44')]['id']}})[_0xa680('0x22')](handleEntityNotFound(_0x4ab8d1,null))[_0xa680('0x22')](function(_0x30b32b){if(_0x30b32b){_0x4ca3e9=_0x30b32b;_0x1821dc['model']=_[_0xa680('0x32')](db['DeskConfiguration'][_0xa680('0x2c')]);_0x1821dc[_0xa680('0x31')]=_['keys'](_0x48b4d4[_0xa680('0x31')]);_0x1821dc[_0xa680('0x33')]=_['intersection'](_0x1821dc[_0xa680('0x2f')],_0x1821dc['query']);_0x1309fc[_0xa680('0x36')]=_[_0xa680('0x34')](_0x1821dc[_0xa680('0x2f')],qs[_0xa680('0x35')](_0x48b4d4['query'][_0xa680('0x35')]));_0x1309fc[_0xa680('0x36')]=_0x1309fc[_0xa680('0x36')][_0xa680('0x45')]?_0x1309fc[_0xa680('0x36')]:_0x1821dc['model'];_0x1309fc[_0xa680('0x38')]=qs[_0xa680('0x39')](_0x48b4d4[_0xa680('0x31')]['sort']);_0x1309fc['where']=qs[_0xa680('0x33')](_[_0xa680('0x3a')](_0x48b4d4['query'],_0x1821dc[_0xa680('0x33')]));if(_0x48b4d4[_0xa680('0x31')]['filter']){_0x1309fc[_0xa680('0x3b')]=_[_0xa680('0x3c')](_0x1309fc['where'],{'$or':_['map'](_0x1309fc[_0xa680('0x36')],function(_0x81e186){var _0x260361={};_0x260361[_0x81e186]={'$like':'%'+_0x48b4d4['query'][_0xa680('0x3e')]+'%'};return _0x260361;})});}_0x1309fc=_[_0xa680('0x3c')]({},_0x1309fc,_0x48b4d4[_0xa680('0x46')]);return _0x4ca3e9[_0xa680('0x4a')](_0x1309fc);}})[_0xa680('0x22')](function(_0x1c9ad2){if(_0x1c9ad2){_0x5092f3=_0x1c9ad2[_0xa680('0x45')];if(!_0x48b4d4[_0xa680('0x31')][_0xa680('0x4b')](_0xa680('0x37'))){_0x1309fc[_0xa680('0x19')]=qs[_0xa680('0x19')](_0x48b4d4[_0xa680('0x31')]['limit']);_0x1309fc['offset']=qs[_0xa680('0x1b')](_0x48b4d4['query'][_0xa680('0x1b')]);}return _0x4ca3e9[_0xa680('0x4a')](_0x1309fc);}})[_0xa680('0x22')](function(_0x185fba){if(_0x185fba){return _0x185fba?{'count':_0x5092f3,'rows':_0x185fba}:null;}})['then'](respondWithResult(_0x4ab8d1,null))[_0xa680('0x48')](handleError(_0x4ab8d1,null));};exports['addConfiguration']=function(_0x4db7e2,_0x4c78c5,_0x1b3269){if(_0x4db7e2[_0xa680('0x49')]['id']){delete _0x4db7e2['body']['id'];}return db['DeskAccount'][_0xa680('0x4c')]({'where':{'id':_0x4db7e2[_0xa680('0x44')]['id']}})['then'](handleEntityNotFound(_0x4c78c5,null))[_0xa680('0x22')](function(_0x27fa42){if(_0x27fa42){_0x4db7e2[_0xa680('0x49')][_0xa680('0x4d')]=_0x27fa42['id'];_0x4db7e2[_0xa680('0x49')]['Subjects']=integrations[_0xa680('0x4e')](_0x4db7e2[_0xa680('0x49')][_0xa680('0x4f')],_0x4db7e2[_0xa680('0x49')]['type']);_0x4db7e2[_0xa680('0x49')][_0xa680('0x50')]=integrations['getDescriptions'](_0x4db7e2[_0xa680('0x49')][_0xa680('0x4f')],_0x4db7e2[_0xa680('0x49')][_0xa680('0x2d')]);return db[_0xa680('0x51')]['create'](_0x4db7e2[_0xa680('0x49')],{'include':[{'model':db['DeskField'],'as':_0xa680('0x52')},{'model':db['DeskField'],'as':_0xa680('0x50')}]});}return null;})[_0xa680('0x22')](respondWithResult(_0x4c78c5,null))[_0xa680('0x48')](handleError(_0x4c78c5,null));};exports[_0xa680('0x53')]=function(_0x5776fc,_0x23fad4,_0x2a3143){var _0x52c7cf=[{'name':'priority','label':_0xa680('0x54'),'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 _0x30810e='';return db[_0xa680('0x2b')][_0xa680('0x4c')]({'where':{'id':_0x5776fc[_0xa680('0x44')]['id']},'attributes':['id',_0xa680('0x55'),_0xa680('0x56'),'username',_0xa680('0x57'),_0xa680('0x58'),_0xa680('0x59'),_0xa680('0x5a'),_0xa680('0x5b')]})[_0xa680('0x22')](handleEntityNotFound(_0x23fad4,null))[_0xa680('0x22')](function(_0x126c17){if(_0x126c17){_0x30810e=_0x126c17['remoteUri'];var _0x690a31=_0x30810e[_0xa680('0x5c')](-0x1);if(_0x690a31==='/'){_0x30810e=_0x30810e['substring'](0x0,_0x30810e[_0xa680('0x5d')](_0x690a31));}var _0x1dcf08={'method':'GET','uri':util[_0xa680('0x5e')]('%s/custom_fields',_0x30810e),'headers':{'Content-Type':_0xa680('0x5f'),'Accept':_0xa680('0x5f')},'json':!![]};if(_0x126c17['authType']===_0xa680('0x60')){_0x1dcf08[_0xa680('0x61')][_0xa680('0x62')]=util[_0xa680('0x5e')]('Basic\x20%s',new Buffer(util[_0xa680('0x5e')]('%s:%s',_0x126c17[_0xa680('0x63')],_0x126c17[_0xa680('0x57')]))[_0xa680('0x64')](_0xa680('0x65')));}return rp(_0x1dcf08)['then'](function(_0x23ba68){return _0x52c7cf['concat'](_[_0xa680('0x2a')](_0x23ba68[_0xa680('0x66')]['entries'],function(_0x16d09e){return{'id':_0x16d09e['name'],'name':_0x16d09e[_0xa680('0x30')],'type':_0x16d09e[_0xa680('0x2d')],'active':_0x16d09e[_0xa680('0x67')],'label':_0x16d09e[_0xa680('0x68')],'custom':!![]};}));});}})[_0xa680('0x22')](function(_0x5eaebf){return{'count':_0x5eaebf[_0xa680('0x45')],'rows':_0x5eaebf};})[_0xa680('0x22')](respondWithResult(_0x23fad4,null))[_0xa680('0x48')](function(_0x691ce){var _0x2d6126=_0x5776fc[_0xa680('0x31')][_0xa680('0x69')]?0x1f4:_0x691ce[_0xa680('0x6a')]||0x1f4;logger[_0xa680('0x26')](_0xa680('0x6b'),_0xa680('0x53'),_0x2d6126,JSON[_0xa680('0x6c')](_0x691ce));delete _0x691ce[_0xa680('0x30')];if(_0x2d6126===0x191){_0x2d6126=0x190;}_0x23fad4[_0xa680('0x18')](_0x2d6126)[_0xa680('0x28')](_0x5776fc[_0xa680('0x31')][_0xa680('0x69')]?{'message':_0xa680('0x6d'),'statusCode':_0x691ce[_0xa680('0x6a')]}:_0x691ce);});};