Built motion from commit b0a9a629.|2.6.33
[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 _0xe40d=['Authorization','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','entries','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','crypto','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','sendStatus','stack','name','send','index','DeskAccount','rawAttributes','type','key','map','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','include','rows','catch','show','params','includeAll','find','create','body','getConfigurations','findOne','length','pick','AccountId','Subjects','getSubjects','channel','getDescriptions','DeskConfiguration','DeskField','Descriptions','getFields','priority','remoteUri','authType','username','password','consumerKey','token','tokenSecret','slice','lastIndexOf','GET','format','%s/custom_fields','application/json','headers'];(function(_0x4c0708,_0x58cdbd){var _0x4e2ddd=function(_0x242f47){while(--_0x242f47){_0x4c0708['push'](_0x4c0708['shift']());}};_0x4e2ddd(++_0x58cdbd);}(_0xe40d,0x81));var _0xde40=function(_0x4ef43a,_0x4c6b6a){_0x4ef43a=_0x4ef43a-0x0;var _0x39453b=_0xe40d[_0x4ef43a];return _0x39453b;};'use strict';var emlformat=require(_0xde40('0x0'));var rimraf=require(_0xde40('0x1'));var zipdir=require(_0xde40('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xde40('0x3'));var moment=require(_0xde40('0x4'));var BPromise=require(_0xde40('0x5'));var Mustache=require('mustache');var util=require(_0xde40('0x6'));var path=require(_0xde40('0x7'));var sox=require(_0xde40('0x8'));var csv=require('to-csv');var ejs=require(_0xde40('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xde40('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xde40('0xb'));var toCsv=require(_0xde40('0xc'));var querystring=require(_0xde40('0xd'));var Papa=require(_0xde40('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xde40('0xf'));var as=require(_0xde40('0x10'));var hardwareService=require(_0xde40('0x11'));var logger=require(_0xde40('0x12'))('api');var utils=require(_0xde40('0x13'));var config=require(_0xde40('0x14'));var licenseUtil=require(_0xde40('0x15'));var db=require(_0xde40('0x16'))['db'];var integrations=require(_0xde40('0x17'));function respondWithStatusCode(_0x466052,_0x17ab0d){_0x17ab0d=_0x17ab0d||0xcc;return function(_0x4af6cd){if(_0x4af6cd){return _0x466052['sendStatus'](_0x17ab0d);}return _0x466052[_0xde40('0x18')](_0x17ab0d)[_0xde40('0x19')]();};}function respondWithResult(_0x31884d,_0x30f5da){_0x30f5da=_0x30f5da||0xc8;return function(_0x1718fd){if(_0x1718fd){return _0x31884d[_0xde40('0x18')](_0x30f5da)[_0xde40('0x1a')](_0x1718fd);}};}function respondWithFilteredResult(_0x41a440,_0xeced7b){return function(_0x36a03f){if(_0x36a03f){var _0x4d76ad=typeof _0xeced7b[_0xde40('0x1b')]==='undefined'&&typeof _0xeced7b[_0xde40('0x1c')]===_0xde40('0x1d');var _0x390d68=_0x36a03f[_0xde40('0x1e')];var _0x27d693=_0x4d76ad?0x0:_0xeced7b[_0xde40('0x1b')];var _0x2ea4de=_0x4d76ad?_0x36a03f[_0xde40('0x1e')]:_0xeced7b[_0xde40('0x1b')]+_0xeced7b['limit'];var _0x443dea;if(_0x2ea4de>=_0x390d68){_0x2ea4de=_0x390d68;_0x443dea=0xc8;}else{_0x443dea=0xce;}_0x41a440[_0xde40('0x18')](_0x443dea);return _0x41a440[_0xde40('0x1f')]('Content-Range',_0x27d693+'-'+_0x2ea4de+'/'+_0x390d68)[_0xde40('0x1a')](_0x36a03f);}return null;};}function patchUpdates(_0x43ba87){return function(_0x43d2b1){try{jsonpatch[_0xde40('0x20')](_0x43d2b1,_0x43ba87,!![]);}catch(_0x566d22){return BPromise[_0xde40('0x21')](_0x566d22);}return _0x43d2b1[_0xde40('0x22')]();};}function saveUpdates(_0x3e82d4,_0x2569a8){return function(_0xb5ebf6){if(_0xb5ebf6){return _0xb5ebf6[_0xde40('0x23')](_0x3e82d4)[_0xde40('0x24')](function(_0x2447ae){return _0x2447ae;});}return null;};}function removeEntity(_0x195b8a,_0x3d8351){return function(_0x456874){if(_0x456874){return _0x456874[_0xde40('0x25')]()['then'](function(){_0x195b8a[_0xde40('0x18')](0xcc)[_0xde40('0x19')]();});}};}function handleEntityNotFound(_0x12011b,_0x4732f4){return function(_0x7c7f10){if(!_0x7c7f10){_0x12011b[_0xde40('0x26')](0x194);}return _0x7c7f10;};}function handleError(_0x28359e,_0x27c69b){_0x27c69b=_0x27c69b||0x1f4;return function(_0x36975b){logger['error'](_0x36975b[_0xde40('0x27')]);if(_0x36975b['name']){delete _0x36975b[_0xde40('0x28')];}_0x28359e[_0xde40('0x18')](_0x27c69b)[_0xde40('0x29')](_0x36975b);};}exports[_0xde40('0x2a')]=function(_0x39720f,_0x391bb1){var _0x2f062e={},_0x7ce6e={},_0x695731={'count':0x0,'rows':[]};var _0x26ee62=_['map'](db[_0xde40('0x2b')][_0xde40('0x2c')],function(_0x445f8a){return{'name':_0x445f8a['fieldName'],'type':_0x445f8a[_0xde40('0x2d')][_0xde40('0x2e')]};});_0x7ce6e['model']=_[_0xde40('0x2f')](_0x26ee62,_0xde40('0x28'));_0x7ce6e[_0xde40('0x30')]=_[_0xde40('0x31')](_0x39720f[_0xde40('0x30')]);_0x7ce6e[_0xde40('0x32')]=_[_0xde40('0x33')](_0x7ce6e[_0xde40('0x34')],_0x7ce6e[_0xde40('0x30')]);_0x2f062e[_0xde40('0x35')]=_[_0xde40('0x33')](_0x7ce6e['model'],qs[_0xde40('0x36')](_0x39720f[_0xde40('0x30')][_0xde40('0x36')]));_0x2f062e[_0xde40('0x35')]=_0x2f062e[_0xde40('0x35')]['length']?_0x2f062e[_0xde40('0x35')]:_0x7ce6e[_0xde40('0x34')];if(!_0x39720f['query'][_0xde40('0x37')](_0xde40('0x38'))){_0x2f062e[_0xde40('0x1c')]=qs[_0xde40('0x1c')](_0x39720f[_0xde40('0x30')]['limit']);_0x2f062e[_0xde40('0x1b')]=qs[_0xde40('0x1b')](_0x39720f[_0xde40('0x30')]['offset']);}_0x2f062e[_0xde40('0x39')]=qs[_0xde40('0x3a')](_0x39720f[_0xde40('0x30')]['sort']);_0x2f062e[_0xde40('0x3b')]=qs[_0xde40('0x32')](_['pick'](_0x39720f['query'],_0x7ce6e[_0xde40('0x32')]),_0x26ee62);if(_0x39720f[_0xde40('0x30')][_0xde40('0x3c')]){_0x2f062e['where']=_['merge'](_0x2f062e[_0xde40('0x3b')],{'$or':_[_0xde40('0x2f')](_0x26ee62,function(_0x47ce33){if(_0x47ce33[_0xde40('0x2d')]!==_0xde40('0x3d')){var _0x5e6038={};_0x5e6038[_0x47ce33[_0xde40('0x28')]]={'$like':'%'+_0x39720f[_0xde40('0x30')][_0xde40('0x3c')]+'%'};return _0x5e6038;}})});}_0x2f062e=_[_0xde40('0x3e')]({},_0x2f062e,_0x39720f[_0xde40('0x3f')]);var _0x25f391={'where':_0x2f062e[_0xde40('0x3b')]};return db[_0xde40('0x2b')][_0xde40('0x1e')](_0x25f391)[_0xde40('0x24')](function(_0xe7a2fb){_0x695731['count']=_0xe7a2fb;if(_0x39720f['query']['includeAll']){_0x2f062e[_0xde40('0x40')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0x2f062e);})['then'](function(_0x39340e){_0x695731[_0xde40('0x41')]=_0x39340e;return _0x695731;})[_0xde40('0x24')](respondWithFilteredResult(_0x391bb1,_0x2f062e))[_0xde40('0x42')](handleError(_0x391bb1,null));};exports[_0xde40('0x43')]=function(_0x9d0568,_0x4f696b){var _0x3f0e38={'raw':![],'where':{'id':_0x9d0568[_0xde40('0x44')]['id']}},_0x1235ff={};_0x1235ff['model']=_[_0xde40('0x31')](db[_0xde40('0x2b')][_0xde40('0x2c')]);_0x1235ff['query']=_['keys'](_0x9d0568[_0xde40('0x30')]);_0x1235ff[_0xde40('0x32')]=_[_0xde40('0x33')](_0x1235ff[_0xde40('0x34')],_0x1235ff[_0xde40('0x30')]);_0x3f0e38[_0xde40('0x35')]=_[_0xde40('0x33')](_0x1235ff[_0xde40('0x34')],qs[_0xde40('0x36')](_0x9d0568[_0xde40('0x30')][_0xde40('0x36')]));_0x3f0e38['attributes']=_0x3f0e38['attributes']['length']?_0x3f0e38[_0xde40('0x35')]:_0x1235ff['model'];if(_0x9d0568['query'][_0xde40('0x45')]){_0x3f0e38[_0xde40('0x40')]=[{'all':!![]}];}_0x3f0e38=_['merge']({},_0x3f0e38,_0x9d0568[_0xde40('0x3f')]);return db[_0xde40('0x2b')][_0xde40('0x46')](_0x3f0e38)['then'](handleEntityNotFound(_0x4f696b,null))[_0xde40('0x24')](respondWithResult(_0x4f696b,null))[_0xde40('0x42')](handleError(_0x4f696b,null));};exports[_0xde40('0x47')]=function(_0x153f98,_0x272172){return db[_0xde40('0x2b')]['create'](_0x153f98['body'],{})[_0xde40('0x24')](respondWithResult(_0x272172,0xc9))['catch'](handleError(_0x272172,null));};exports[_0xde40('0x23')]=function(_0x545e4c,_0x195b50){if(_0x545e4c[_0xde40('0x48')]['id']){delete _0x545e4c[_0xde40('0x48')]['id'];}return db[_0xde40('0x2b')]['find']({'where':{'id':_0x545e4c[_0xde40('0x44')]['id']}})[_0xde40('0x24')](handleEntityNotFound(_0x195b50,null))[_0xde40('0x24')](saveUpdates(_0x545e4c[_0xde40('0x48')],null))['then'](respondWithResult(_0x195b50,null))['catch'](handleError(_0x195b50,null));};exports['destroy']=function(_0x126bb6,_0x1cdf9a){return db[_0xde40('0x2b')][_0xde40('0x46')]({'where':{'id':_0x126bb6[_0xde40('0x44')]['id']}})[_0xde40('0x24')](handleEntityNotFound(_0x1cdf9a,null))[_0xde40('0x24')](removeEntity(_0x1cdf9a,null))[_0xde40('0x42')](handleError(_0x1cdf9a,null));};exports[_0xde40('0x49')]=function(_0x3043e0,_0x53383f,_0x34da4d){var _0x2a073e={};var _0x1b93e2={};var _0x5b7083;var _0x70673;return db[_0xde40('0x2b')][_0xde40('0x4a')]({'where':{'id':_0x3043e0[_0xde40('0x44')]['id']}})['then'](handleEntityNotFound(_0x53383f,null))[_0xde40('0x24')](function(_0x5e8bb6){if(_0x5e8bb6){_0x5b7083=_0x5e8bb6;_0x1b93e2[_0xde40('0x34')]=_[_0xde40('0x31')](db['DeskConfiguration'][_0xde40('0x2c')]);_0x1b93e2[_0xde40('0x30')]=_['keys'](_0x3043e0['query']);_0x1b93e2['filters']=_[_0xde40('0x33')](_0x1b93e2['model'],_0x1b93e2[_0xde40('0x30')]);_0x2a073e[_0xde40('0x35')]=_[_0xde40('0x33')](_0x1b93e2[_0xde40('0x34')],qs['fields'](_0x3043e0[_0xde40('0x30')][_0xde40('0x36')]));_0x2a073e[_0xde40('0x35')]=_0x2a073e[_0xde40('0x35')][_0xde40('0x4b')]?_0x2a073e[_0xde40('0x35')]:_0x1b93e2[_0xde40('0x34')];_0x2a073e[_0xde40('0x39')]=qs['sort'](_0x3043e0[_0xde40('0x30')][_0xde40('0x3a')]);_0x2a073e[_0xde40('0x3b')]=qs[_0xde40('0x32')](_[_0xde40('0x4c')](_0x3043e0[_0xde40('0x30')],_0x1b93e2['filters']));if(_0x3043e0[_0xde40('0x30')][_0xde40('0x3c')]){_0x2a073e[_0xde40('0x3b')]=_['merge'](_0x2a073e['where'],{'$or':_[_0xde40('0x2f')](_0x2a073e[_0xde40('0x35')],function(_0xa09c29){var _0xd6b404={};_0xd6b404[_0xa09c29]={'$like':'%'+_0x3043e0[_0xde40('0x30')][_0xde40('0x3c')]+'%'};return _0xd6b404;})});}_0x2a073e=_[_0xde40('0x3e')]({},_0x2a073e,_0x3043e0[_0xde40('0x3f')]);return _0x5b7083[_0xde40('0x49')](_0x2a073e);}})['then'](function(_0x51c73c){if(_0x51c73c){_0x70673=_0x51c73c['length'];if(!_0x3043e0['query'][_0xde40('0x37')](_0xde40('0x38'))){_0x2a073e[_0xde40('0x1c')]=qs[_0xde40('0x1c')](_0x3043e0[_0xde40('0x30')][_0xde40('0x1c')]);_0x2a073e[_0xde40('0x1b')]=qs[_0xde40('0x1b')](_0x3043e0[_0xde40('0x30')]['offset']);}return _0x5b7083[_0xde40('0x49')](_0x2a073e);}})[_0xde40('0x24')](function(_0x45afdd){if(_0x45afdd){return _0x45afdd?{'count':_0x70673,'rows':_0x45afdd}:null;}})['then'](respondWithResult(_0x53383f,null))[_0xde40('0x42')](handleError(_0x53383f,null));};exports['addConfiguration']=function(_0x400c1d,_0x475c4b,_0xc6fd73){if(_0x400c1d[_0xde40('0x48')]['id']){delete _0x400c1d[_0xde40('0x48')]['id'];}return db['DeskAccount'][_0xde40('0x4a')]({'where':{'id':_0x400c1d[_0xde40('0x44')]['id']}})[_0xde40('0x24')](handleEntityNotFound(_0x475c4b,null))[_0xde40('0x24')](function(_0x3d56c3){if(_0x3d56c3){_0x400c1d['body'][_0xde40('0x4d')]=_0x3d56c3['id'];_0x400c1d['body'][_0xde40('0x4e')]=integrations[_0xde40('0x4f')](_0x400c1d[_0xde40('0x48')][_0xde40('0x50')],_0x400c1d[_0xde40('0x48')][_0xde40('0x2d')]);_0x400c1d[_0xde40('0x48')]['Descriptions']=integrations[_0xde40('0x51')](_0x400c1d[_0xde40('0x48')][_0xde40('0x50')],_0x400c1d['body'][_0xde40('0x2d')]);return db[_0xde40('0x52')]['create'](_0x400c1d['body'],{'include':[{'model':db[_0xde40('0x53')],'as':'Subjects'},{'model':db[_0xde40('0x53')],'as':_0xde40('0x54')}]});}return null;})[_0xde40('0x24')](respondWithResult(_0x475c4b,null))['catch'](handleError(_0x475c4b,null));};exports[_0xde40('0x55')]=function(_0x48bdcb,_0x10e7b0,_0x153b61){var _0x4708a1=[{'name':'priority','label':_0xde40('0x56'),'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 _0xb5a224='';return db[_0xde40('0x2b')][_0xde40('0x4a')]({'where':{'id':_0x48bdcb[_0xde40('0x44')]['id']},'attributes':['id',_0xde40('0x57'),_0xde40('0x58'),_0xde40('0x59'),_0xde40('0x5a'),_0xde40('0x5b'),'consumerSecret',_0xde40('0x5c'),_0xde40('0x5d')]})[_0xde40('0x24')](handleEntityNotFound(_0x10e7b0,null))[_0xde40('0x24')](function(_0x10a90e){if(_0x10a90e){_0xb5a224=_0x10a90e[_0xde40('0x57')];var _0x40be8e=_0xb5a224[_0xde40('0x5e')](-0x1);if(_0x40be8e==='/'){_0xb5a224=_0xb5a224['substring'](0x0,_0xb5a224[_0xde40('0x5f')](_0x40be8e));}var _0x37abe3={'method':_0xde40('0x60'),'uri':util[_0xde40('0x61')](_0xde40('0x62'),_0xb5a224),'headers':{'Content-Type':'application/json','Accept':_0xde40('0x63')},'json':!![]};if(_0x10a90e[_0xde40('0x58')]==='basic'){_0x37abe3[_0xde40('0x64')][_0xde40('0x65')]=util[_0xde40('0x61')](_0xde40('0x66'),new Buffer(util['format'](_0xde40('0x67'),_0x10a90e['username'],_0x10a90e['password']))[_0xde40('0x68')](_0xde40('0x69')));}return rp(_0x37abe3)['then'](function(_0x4f20c3){return _0x4708a1[_0xde40('0x6a')](_[_0xde40('0x2f')](_0x4f20c3[_0xde40('0x6b')][_0xde40('0x6c')],function(_0x11d2a5){return{'id':_0x11d2a5[_0xde40('0x28')],'name':_0x11d2a5[_0xde40('0x28')],'type':_0x11d2a5[_0xde40('0x2d')],'active':_0x11d2a5[_0xde40('0x6d')],'label':_0x11d2a5['label'],'custom':!![]};}));});}})[_0xde40('0x24')](function(_0x37f6e9){return{'count':_0x37f6e9[_0xde40('0x4b')],'rows':_0x37f6e9};})['then'](respondWithResult(_0x10e7b0,null))[_0xde40('0x42')](function(_0x3c200a){var _0x2d61ee=_0x48bdcb['query'][_0xde40('0x6e')]?0x1f4:_0x3c200a[_0xde40('0x6f')]||0x1f4;logger['error'](_0xde40('0x70'),_0xde40('0x55'),_0x2d61ee,JSON[_0xde40('0x71')](_0x3c200a));delete _0x3c200a[_0xde40('0x28')];if(_0x2d61ee===0x191){_0x2d61ee=0x190;}_0x10e7b0['status'](_0x2d61ee)[_0xde40('0x29')](_0x48bdcb[_0xde40('0x30')][_0xde40('0x6e')]?{'message':_0xde40('0x72'),'statusCode':_0x3c200a['statusCode']}:_0x3c200a);});};