2f02afb51735d79d9a3d2138f519ac6d39f9e944
[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 _0xbe4f=['Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','authType','username','consumerKey','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','GET','format','application/json','basic','Authorization','Basic\x20%s','%s:%s','password','base64','concat','_embedded','entries','active','label','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','jsforce','to-csv','querystring','papaparse','ioredis','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','undefined','Content-Range','json','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','map','DeskAccount','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','pick','merge','VIRTUAL','filter','count','includeAll','include','findAll','catch','show','length','options','create','body','find','params','getConfigurations','findOne','DeskConfiguration','rawAttributes','addConfiguration','AccountId','Subjects','getSubjects','channel'];(function(_0x56fe16,_0x3495ed){var _0x17b2d1=function(_0xf629aa){while(--_0xf629aa){_0x56fe16['push'](_0x56fe16['shift']());}};_0x17b2d1(++_0x3495ed);}(_0xbe4f,0x16f));var _0xfbe4=function(_0x4d6920,_0xa48f35){_0x4d6920=_0x4d6920-0x0;var _0x478335=_0xbe4f[_0x4d6920];return _0x478335;};'use strict';var emlformat=require(_0xfbe4('0x0'));var rimraf=require(_0xfbe4('0x1'));var zipdir=require(_0xfbe4('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfbe4('0x3'));var moment=require(_0xfbe4('0x4'));var BPromise=require(_0xfbe4('0x5'));var Mustache=require(_0xfbe4('0x6'));var util=require(_0xfbe4('0x7'));var path=require('path');var sox=require(_0xfbe4('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfbe4('0x9'));var _=require(_0xfbe4('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xfbe4('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xfbe4('0xc'));var querystring=require(_0xfbe4('0xd'));var Papa=require(_0xfbe4('0xe'));var Redis=require(_0xfbe4('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfbe4('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xfbe4('0x11'));var config=require(_0xfbe4('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0xfbe4('0x13'))['db'];var integrations=require(_0xfbe4('0x14'));function respondWithStatusCode(_0x5593cf,_0x3d1c4a){_0x3d1c4a=_0x3d1c4a||0xcc;return function(_0x50f083){if(_0x50f083){return _0x5593cf[_0xfbe4('0x15')](_0x3d1c4a);}return _0x5593cf[_0xfbe4('0x16')](_0x3d1c4a)['end']();};}function respondWithResult(_0x332739,_0x2424f9){_0x2424f9=_0x2424f9||0xc8;return function(_0x2c7f9a){if(_0x2c7f9a){return _0x332739['status'](_0x2424f9)['json'](_0x2c7f9a);}};}function respondWithFilteredResult(_0x4e5f62,_0x3a4f51){return function(_0x3059b2){if(_0x3059b2){var _0x471b21=typeof _0x3a4f51[_0xfbe4('0x17')]===_0xfbe4('0x18')&&typeof _0x3a4f51['limit']===_0xfbe4('0x18');var _0x4d07fb=_0x3059b2['count'];var _0x273596=_0x471b21?0x0:_0x3a4f51['offset'];var _0x4fa255=_0x471b21?_0x3059b2['count']:_0x3a4f51[_0xfbe4('0x17')]+_0x3a4f51['limit'];var _0x397290;if(_0x4fa255>=_0x4d07fb){_0x4fa255=_0x4d07fb;_0x397290=0xc8;}else{_0x397290=0xce;}_0x4e5f62[_0xfbe4('0x16')](_0x397290);return _0x4e5f62['set'](_0xfbe4('0x19'),_0x273596+'-'+_0x4fa255+'/'+_0x4d07fb)[_0xfbe4('0x1a')](_0x3059b2);}return null;};}function patchUpdates(_0x188b74){return function(_0x15071a){try{jsonpatch[_0xfbe4('0x1b')](_0x15071a,_0x188b74,!![]);}catch(_0x38832e){return BPromise[_0xfbe4('0x1c')](_0x38832e);}return _0x15071a[_0xfbe4('0x1d')]();};}function saveUpdates(_0x3da3d9,_0x516bb2){return function(_0x143231){if(_0x143231){return _0x143231[_0xfbe4('0x1e')](_0x3da3d9)[_0xfbe4('0x1f')](function(_0x518fce){return _0x518fce;});}return null;};}function removeEntity(_0x1d0550,_0xc1f73b){return function(_0x3bc777){if(_0x3bc777){return _0x3bc777[_0xfbe4('0x20')]()[_0xfbe4('0x1f')](function(){_0x1d0550[_0xfbe4('0x16')](0xcc)[_0xfbe4('0x21')]();});}};}function handleEntityNotFound(_0xb97ebf,_0xdf34e1){return function(_0x3115d4){if(!_0x3115d4){_0xb97ebf[_0xfbe4('0x15')](0x194);}return _0x3115d4;};}function handleError(_0x5a9f70,_0x3f282e){_0x3f282e=_0x3f282e||0x1f4;return function(_0x589319){logger[_0xfbe4('0x22')](_0x589319[_0xfbe4('0x23')]);if(_0x589319[_0xfbe4('0x24')]){delete _0x589319[_0xfbe4('0x24')];}_0x5a9f70[_0xfbe4('0x16')](_0x3f282e)[_0xfbe4('0x25')](_0x589319);};}exports[_0xfbe4('0x26')]=function(_0x5dd12b,_0x525198){var _0x126421={},_0x55358d={},_0x331eb3={'count':0x0,'rows':[]};var _0x53c8e9=_[_0xfbe4('0x27')](db[_0xfbe4('0x28')]['rawAttributes'],function(_0x6945a){return{'name':_0x6945a['fieldName'],'type':_0x6945a[_0xfbe4('0x29')][_0xfbe4('0x2a')]};});_0x55358d[_0xfbe4('0x2b')]=_[_0xfbe4('0x27')](_0x53c8e9,_0xfbe4('0x24'));_0x55358d[_0xfbe4('0x2c')]=_[_0xfbe4('0x2d')](_0x5dd12b[_0xfbe4('0x2c')]);_0x55358d[_0xfbe4('0x2e')]=_[_0xfbe4('0x2f')](_0x55358d[_0xfbe4('0x2b')],_0x55358d[_0xfbe4('0x2c')]);_0x126421[_0xfbe4('0x30')]=_[_0xfbe4('0x2f')](_0x55358d[_0xfbe4('0x2b')],qs['fields'](_0x5dd12b['query'][_0xfbe4('0x31')]));_0x126421[_0xfbe4('0x30')]=_0x126421[_0xfbe4('0x30')]['length']?_0x126421[_0xfbe4('0x30')]:_0x55358d[_0xfbe4('0x2b')];if(!_0x5dd12b['query'][_0xfbe4('0x32')](_0xfbe4('0x33'))){_0x126421[_0xfbe4('0x34')]=qs['limit'](_0x5dd12b[_0xfbe4('0x2c')]['limit']);_0x126421[_0xfbe4('0x17')]=qs[_0xfbe4('0x17')](_0x5dd12b['query'][_0xfbe4('0x17')]);}_0x126421[_0xfbe4('0x35')]=qs[_0xfbe4('0x36')](_0x5dd12b[_0xfbe4('0x2c')][_0xfbe4('0x36')]);_0x126421[_0xfbe4('0x37')]=qs[_0xfbe4('0x2e')](_[_0xfbe4('0x38')](_0x5dd12b[_0xfbe4('0x2c')],_0x55358d[_0xfbe4('0x2e')]),_0x53c8e9);if(_0x5dd12b[_0xfbe4('0x2c')]['filter']){_0x126421[_0xfbe4('0x37')]=_[_0xfbe4('0x39')](_0x126421[_0xfbe4('0x37')],{'$or':_[_0xfbe4('0x27')](_0x53c8e9,function(_0x13650a){if(_0x13650a[_0xfbe4('0x29')]!==_0xfbe4('0x3a')){var _0x423778={};_0x423778[_0x13650a['name']]={'$like':'%'+_0x5dd12b['query'][_0xfbe4('0x3b')]+'%'};return _0x423778;}})});}_0x126421=_['merge']({},_0x126421,_0x5dd12b['options']);var _0x3a9b94={'where':_0x126421[_0xfbe4('0x37')]};return db['DeskAccount']['count'](_0x3a9b94)[_0xfbe4('0x1f')](function(_0x4be791){_0x331eb3[_0xfbe4('0x3c')]=_0x4be791;if(_0x5dd12b['query'][_0xfbe4('0x3d')]){_0x126421[_0xfbe4('0x3e')]=[{'all':!![]}];}return db['DeskAccount'][_0xfbe4('0x3f')](_0x126421);})[_0xfbe4('0x1f')](function(_0x96f8ac){_0x331eb3['rows']=_0x96f8ac;return _0x331eb3;})[_0xfbe4('0x1f')](respondWithFilteredResult(_0x525198,_0x126421))[_0xfbe4('0x40')](handleError(_0x525198,null));};exports[_0xfbe4('0x41')]=function(_0x385161,_0x1146e5){var _0x3973e3={'raw':![],'where':{'id':_0x385161['params']['id']}},_0x60c339={};_0x60c339[_0xfbe4('0x2b')]=_[_0xfbe4('0x2d')](db['DeskAccount']['rawAttributes']);_0x60c339[_0xfbe4('0x2c')]=_['keys'](_0x385161[_0xfbe4('0x2c')]);_0x60c339['filters']=_['intersection'](_0x60c339[_0xfbe4('0x2b')],_0x60c339[_0xfbe4('0x2c')]);_0x3973e3['attributes']=_['intersection'](_0x60c339['model'],qs[_0xfbe4('0x31')](_0x385161[_0xfbe4('0x2c')][_0xfbe4('0x31')]));_0x3973e3[_0xfbe4('0x30')]=_0x3973e3[_0xfbe4('0x30')][_0xfbe4('0x42')]?_0x3973e3[_0xfbe4('0x30')]:_0x60c339['model'];if(_0x385161['query'][_0xfbe4('0x3d')]){_0x3973e3[_0xfbe4('0x3e')]=[{'all':!![]}];}_0x3973e3=_[_0xfbe4('0x39')]({},_0x3973e3,_0x385161[_0xfbe4('0x43')]);return db['DeskAccount']['find'](_0x3973e3)[_0xfbe4('0x1f')](handleEntityNotFound(_0x1146e5,null))[_0xfbe4('0x1f')](respondWithResult(_0x1146e5,null))[_0xfbe4('0x40')](handleError(_0x1146e5,null));};exports[_0xfbe4('0x44')]=function(_0x56c1a3,_0x95fbd0){return db[_0xfbe4('0x28')][_0xfbe4('0x44')](_0x56c1a3['body'],{})[_0xfbe4('0x1f')](respondWithResult(_0x95fbd0,0xc9))[_0xfbe4('0x40')](handleError(_0x95fbd0,null));};exports[_0xfbe4('0x1e')]=function(_0x12c395,_0x340cd4){if(_0x12c395[_0xfbe4('0x45')]['id']){delete _0x12c395[_0xfbe4('0x45')]['id'];}return db['DeskAccount']['find']({'where':{'id':_0x12c395['params']['id']}})['then'](handleEntityNotFound(_0x340cd4,null))[_0xfbe4('0x1f')](saveUpdates(_0x12c395[_0xfbe4('0x45')],null))[_0xfbe4('0x1f')](respondWithResult(_0x340cd4,null))[_0xfbe4('0x40')](handleError(_0x340cd4,null));};exports[_0xfbe4('0x20')]=function(_0x2e02d9,_0x49367b){return db[_0xfbe4('0x28')][_0xfbe4('0x46')]({'where':{'id':_0x2e02d9[_0xfbe4('0x47')]['id']}})[_0xfbe4('0x1f')](handleEntityNotFound(_0x49367b,null))['then'](removeEntity(_0x49367b,null))[_0xfbe4('0x40')](handleError(_0x49367b,null));};exports[_0xfbe4('0x48')]=function(_0xff4e67,_0x1fe22b,_0x55cbc9){var _0x1f2425={};var _0x3cc7c8={};var _0x34355f;var _0x368d8b;return db[_0xfbe4('0x28')][_0xfbe4('0x49')]({'where':{'id':_0xff4e67[_0xfbe4('0x47')]['id']}})[_0xfbe4('0x1f')](handleEntityNotFound(_0x1fe22b,null))[_0xfbe4('0x1f')](function(_0x336266){if(_0x336266){_0x34355f=_0x336266;_0x3cc7c8[_0xfbe4('0x2b')]=_[_0xfbe4('0x2d')](db[_0xfbe4('0x4a')][_0xfbe4('0x4b')]);_0x3cc7c8[_0xfbe4('0x2c')]=_[_0xfbe4('0x2d')](_0xff4e67[_0xfbe4('0x2c')]);_0x3cc7c8['filters']=_[_0xfbe4('0x2f')](_0x3cc7c8[_0xfbe4('0x2b')],_0x3cc7c8[_0xfbe4('0x2c')]);_0x1f2425[_0xfbe4('0x30')]=_[_0xfbe4('0x2f')](_0x3cc7c8['model'],qs[_0xfbe4('0x31')](_0xff4e67['query'][_0xfbe4('0x31')]));_0x1f2425['attributes']=_0x1f2425['attributes'][_0xfbe4('0x42')]?_0x1f2425[_0xfbe4('0x30')]:_0x3cc7c8[_0xfbe4('0x2b')];_0x1f2425[_0xfbe4('0x35')]=qs[_0xfbe4('0x36')](_0xff4e67['query'][_0xfbe4('0x36')]);_0x1f2425[_0xfbe4('0x37')]=qs[_0xfbe4('0x2e')](_[_0xfbe4('0x38')](_0xff4e67[_0xfbe4('0x2c')],_0x3cc7c8[_0xfbe4('0x2e')]));if(_0xff4e67[_0xfbe4('0x2c')][_0xfbe4('0x3b')]){_0x1f2425['where']=_[_0xfbe4('0x39')](_0x1f2425[_0xfbe4('0x37')],{'$or':_[_0xfbe4('0x27')](_0x1f2425[_0xfbe4('0x30')],function(_0x1cb174){var _0x2000a7={};_0x2000a7[_0x1cb174]={'$like':'%'+_0xff4e67[_0xfbe4('0x2c')][_0xfbe4('0x3b')]+'%'};return _0x2000a7;})});}_0x1f2425=_['merge']({},_0x1f2425,_0xff4e67['options']);return _0x34355f[_0xfbe4('0x48')](_0x1f2425);}})[_0xfbe4('0x1f')](function(_0x9cc681){if(_0x9cc681){_0x368d8b=_0x9cc681[_0xfbe4('0x42')];if(!_0xff4e67[_0xfbe4('0x2c')][_0xfbe4('0x32')](_0xfbe4('0x33'))){_0x1f2425[_0xfbe4('0x34')]=qs[_0xfbe4('0x34')](_0xff4e67[_0xfbe4('0x2c')]['limit']);_0x1f2425[_0xfbe4('0x17')]=qs[_0xfbe4('0x17')](_0xff4e67[_0xfbe4('0x2c')][_0xfbe4('0x17')]);}return _0x34355f[_0xfbe4('0x48')](_0x1f2425);}})['then'](function(_0x2ec298){if(_0x2ec298){return _0x2ec298?{'count':_0x368d8b,'rows':_0x2ec298}:null;}})['then'](respondWithResult(_0x1fe22b,null))['catch'](handleError(_0x1fe22b,null));};exports[_0xfbe4('0x4c')]=function(_0x2aab38,_0x3e6206,_0x1dc520){if(_0x2aab38[_0xfbe4('0x45')]['id']){delete _0x2aab38[_0xfbe4('0x45')]['id'];}return db[_0xfbe4('0x28')][_0xfbe4('0x49')]({'where':{'id':_0x2aab38[_0xfbe4('0x47')]['id']}})[_0xfbe4('0x1f')](handleEntityNotFound(_0x3e6206,null))[_0xfbe4('0x1f')](function(_0x52eda3){if(_0x52eda3){_0x2aab38[_0xfbe4('0x45')][_0xfbe4('0x4d')]=_0x52eda3['id'];_0x2aab38[_0xfbe4('0x45')][_0xfbe4('0x4e')]=integrations[_0xfbe4('0x4f')](_0x2aab38[_0xfbe4('0x45')][_0xfbe4('0x50')],_0x2aab38['body'][_0xfbe4('0x29')]);_0x2aab38['body'][_0xfbe4('0x51')]=integrations[_0xfbe4('0x52')](_0x2aab38[_0xfbe4('0x45')]['channel'],_0x2aab38[_0xfbe4('0x45')]['type']);return db[_0xfbe4('0x4a')][_0xfbe4('0x44')](_0x2aab38[_0xfbe4('0x45')],{'include':[{'model':db[_0xfbe4('0x53')],'as':_0xfbe4('0x4e')},{'model':db[_0xfbe4('0x53')],'as':_0xfbe4('0x51')}]});}return null;})[_0xfbe4('0x1f')](respondWithResult(_0x3e6206,null))[_0xfbe4('0x40')](handleError(_0x3e6206,null));};exports[_0xfbe4('0x54')]=function(_0xdbe5e9,_0x57ed04,_0x5d6554){var _0x5b30ae=[{'name':_0xfbe4('0x55'),'label':_0xfbe4('0x55'),'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 _0x1a7978='';return db[_0xfbe4('0x28')][_0xfbe4('0x49')]({'where':{'id':_0xdbe5e9[_0xfbe4('0x47')]['id']},'attributes':['id',_0xfbe4('0x56'),_0xfbe4('0x57'),_0xfbe4('0x58'),'password',_0xfbe4('0x59'),_0xfbe4('0x5a'),_0xfbe4('0x5b'),_0xfbe4('0x5c')]})['then'](handleEntityNotFound(_0x57ed04,null))[_0xfbe4('0x1f')](function(_0x5c28be){if(_0x5c28be){_0x1a7978=_0x5c28be[_0xfbe4('0x56')];var _0x46d911=_0x1a7978[_0xfbe4('0x5d')](-0x1);if(_0x46d911==='/'){_0x1a7978=_0x1a7978[_0xfbe4('0x5e')](0x0,_0x1a7978[_0xfbe4('0x5f')](_0x46d911));}var _0x2b47d0={'method':_0xfbe4('0x60'),'uri':util[_0xfbe4('0x61')]('%s/custom_fields',_0x1a7978),'headers':{'Content-Type':_0xfbe4('0x62'),'Accept':_0xfbe4('0x62')},'json':!![]};if(_0x5c28be['authType']===_0xfbe4('0x63')){_0x2b47d0['headers'][_0xfbe4('0x64')]=util['format'](_0xfbe4('0x65'),new Buffer(util[_0xfbe4('0x61')](_0xfbe4('0x66'),_0x5c28be[_0xfbe4('0x58')],_0x5c28be[_0xfbe4('0x67')]))['toString'](_0xfbe4('0x68')));}return rp(_0x2b47d0)[_0xfbe4('0x1f')](function(_0x39961f){return _0x5b30ae[_0xfbe4('0x69')](_['map'](_0x39961f[_0xfbe4('0x6a')][_0xfbe4('0x6b')],function(_0x2497ee){return{'id':_0x2497ee[_0xfbe4('0x24')],'name':_0x2497ee['name'],'type':_0x2497ee['type'],'active':_0x2497ee[_0xfbe4('0x6c')],'label':_0x2497ee[_0xfbe4('0x6d')],'custom':!![]};}));});}})[_0xfbe4('0x1f')](function(_0x2c8dd3){return{'count':_0x2c8dd3['length'],'rows':_0x2c8dd3};})['then'](respondWithResult(_0x57ed04,null))['catch'](function(_0x6ccf9d){var _0x52317c=_0xdbe5e9[_0xfbe4('0x2c')]['test']?0x1f4:_0x6ccf9d[_0xfbe4('0x6e')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x52317c,JSON['stringify'](_0x6ccf9d));delete _0x6ccf9d['name'];if(_0x52317c===0x191){_0x52317c=0x190;}_0x57ed04[_0xfbe4('0x16')](_0x52317c)[_0xfbe4('0x25')](_0xdbe5e9['query']['test']?{'message':_0xfbe4('0x6f'),'statusCode':_0x6ccf9d[_0xfbe4('0x6e')]}:_0x6ccf9d);});};