Built motion from commit da617fac.|2.6.6
[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 _0x7216=['%s:%s','toString','base64','_embedded','entries','active','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','limit','undefined','offset','count','set','Content-Range','reject','save','update','destroy','then','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','fields','find','create','body','getConfigurations','findOne','DeskConfiguration','order','Subjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','username','password','consumerKey','consumerSecret','tokenSecret','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','basic','headers','Authorization'];(function(_0x10230f,_0xcaecbe){var _0x4a5d3e=function(_0xf9e10d){while(--_0xf9e10d){_0x10230f['push'](_0x10230f['shift']());}};_0x4a5d3e(++_0xcaecbe);}(_0x7216,0x80));var _0x6721=function(_0x46b9ee,_0x46054c){_0x46b9ee=_0x46b9ee-0x0;var _0x266c0b=_0x7216[_0x46b9ee];return _0x266c0b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6721('0x0'));var rp=require(_0x6721('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6721('0x2'));var util=require(_0x6721('0x3'));var path=require('path');var sox=require(_0x6721('0x4'));var csv=require(_0x6721('0x5'));var ejs=require(_0x6721('0x6'));var fs=require('fs');var fs_extra=require(_0x6721('0x7'));var _=require(_0x6721('0x8'));var squel=require(_0x6721('0x9'));var crypto=require(_0x6721('0xa'));var jsforce=require(_0x6721('0xb'));var deskjs=require(_0x6721('0xc'));var toCsv=require(_0x6721('0x5'));var querystring=require(_0x6721('0xd'));var Papa=require(_0x6721('0xe'));var Redis=require(_0x6721('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x6721('0x10'));var as=require(_0x6721('0x11'));var hardwareService=require(_0x6721('0x12'));var logger=require(_0x6721('0x13'))(_0x6721('0x14'));var utils=require(_0x6721('0x15'));var config=require(_0x6721('0x16'));var licenseUtil=require(_0x6721('0x17'));var db=require(_0x6721('0x18'))['db'];var integrations=require(_0x6721('0x19'));function respondWithStatusCode(_0x5a85ad,_0x43f2da){_0x43f2da=_0x43f2da||0xcc;return function(_0x23d281){if(_0x23d281){return _0x5a85ad[_0x6721('0x1a')](_0x43f2da);}return _0x5a85ad[_0x6721('0x1b')](_0x43f2da)[_0x6721('0x1c')]();};}function respondWithResult(_0x27a67a,_0x4cbcf5){_0x4cbcf5=_0x4cbcf5||0xc8;return function(_0x26d61c){if(_0x26d61c){return _0x27a67a[_0x6721('0x1b')](_0x4cbcf5)[_0x6721('0x1d')](_0x26d61c);}};}function respondWithFilteredResult(_0x486edb,_0x39aa77){return function(_0x110f44){if(_0x110f44){var _0x37cb67=typeof _0x39aa77['offset']==='undefined'&&typeof _0x39aa77[_0x6721('0x1e')]===_0x6721('0x1f');var _0x3a8e33=_0x110f44['count'];var _0x2e027c=_0x37cb67?0x0:_0x39aa77[_0x6721('0x20')];var _0x59cf9b=_0x37cb67?_0x110f44[_0x6721('0x21')]:_0x39aa77[_0x6721('0x20')]+_0x39aa77[_0x6721('0x1e')];var _0x293ea1;if(_0x59cf9b>=_0x3a8e33){_0x59cf9b=_0x3a8e33;_0x293ea1=0xc8;}else{_0x293ea1=0xce;}_0x486edb[_0x6721('0x1b')](_0x293ea1);return _0x486edb[_0x6721('0x22')](_0x6721('0x23'),_0x2e027c+'-'+_0x59cf9b+'/'+_0x3a8e33)['json'](_0x110f44);}return null;};}function patchUpdates(_0x1e810a){return function(_0x1b3bcd){try{jsonpatch['apply'](_0x1b3bcd,_0x1e810a,!![]);}catch(_0x146f5a){return BPromise[_0x6721('0x24')](_0x146f5a);}return _0x1b3bcd[_0x6721('0x25')]();};}function saveUpdates(_0x1d1771,_0x3ba8e6){return function(_0x315277){if(_0x315277){return _0x315277[_0x6721('0x26')](_0x1d1771)['then'](function(_0x1f4de0){return _0x1f4de0;});}return null;};}function removeEntity(_0x177c06,_0x3dfb50){return function(_0x7664d5){if(_0x7664d5){return _0x7664d5[_0x6721('0x27')]()[_0x6721('0x28')](function(){_0x177c06[_0x6721('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x21757b,_0x4a7217){return function(_0x4226fe){if(!_0x4226fe){_0x21757b[_0x6721('0x1a')](0x194);}return _0x4226fe;};}function handleError(_0x295717,_0x98853c){_0x98853c=_0x98853c||0x1f4;return function(_0x5b46e5){logger['error'](_0x5b46e5[_0x6721('0x29')]);if(_0x5b46e5[_0x6721('0x2a')]){delete _0x5b46e5[_0x6721('0x2a')];}_0x295717[_0x6721('0x1b')](_0x98853c)[_0x6721('0x2b')](_0x5b46e5);};}exports[_0x6721('0x2c')]=function(_0x30b1a7,_0x5f2fb2){var _0x1d7d15={},_0x103ffa={},_0x409fe1={'count':0x0,'rows':[]};var _0x7a5181=_[_0x6721('0x2d')](db[_0x6721('0x2e')][_0x6721('0x2f')],function(_0x24fa4b){return{'name':_0x24fa4b[_0x6721('0x30')],'type':_0x24fa4b['type'][_0x6721('0x31')]};});_0x103ffa[_0x6721('0x32')]=_[_0x6721('0x2d')](_0x7a5181,_0x6721('0x2a'));_0x103ffa[_0x6721('0x33')]=_[_0x6721('0x34')](_0x30b1a7[_0x6721('0x33')]);_0x103ffa[_0x6721('0x35')]=_[_0x6721('0x36')](_0x103ffa['model'],_0x103ffa[_0x6721('0x33')]);_0x1d7d15[_0x6721('0x37')]=_[_0x6721('0x36')](_0x103ffa[_0x6721('0x32')],qs['fields'](_0x30b1a7[_0x6721('0x33')]['fields']));_0x1d7d15[_0x6721('0x37')]=_0x1d7d15[_0x6721('0x37')][_0x6721('0x38')]?_0x1d7d15[_0x6721('0x37')]:_0x103ffa[_0x6721('0x32')];if(!_0x30b1a7['query'][_0x6721('0x39')](_0x6721('0x3a'))){_0x1d7d15[_0x6721('0x1e')]=qs[_0x6721('0x1e')](_0x30b1a7[_0x6721('0x33')][_0x6721('0x1e')]);_0x1d7d15[_0x6721('0x20')]=qs[_0x6721('0x20')](_0x30b1a7[_0x6721('0x33')][_0x6721('0x20')]);}_0x1d7d15['order']=qs['sort'](_0x30b1a7[_0x6721('0x33')][_0x6721('0x3b')]);_0x1d7d15['where']=qs['filters'](_[_0x6721('0x3c')](_0x30b1a7[_0x6721('0x33')],_0x103ffa[_0x6721('0x35')]),_0x7a5181);if(_0x30b1a7[_0x6721('0x33')][_0x6721('0x3d')]){_0x1d7d15[_0x6721('0x3e')]=_[_0x6721('0x3f')](_0x1d7d15[_0x6721('0x3e')],{'$or':_['map'](_0x7a5181,function(_0x5d782f){if(_0x5d782f[_0x6721('0x40')]!==_0x6721('0x41')){var _0x3cc643={};_0x3cc643[_0x5d782f[_0x6721('0x2a')]]={'$like':'%'+_0x30b1a7[_0x6721('0x33')][_0x6721('0x3d')]+'%'};return _0x3cc643;}})});}_0x1d7d15=_[_0x6721('0x3f')]({},_0x1d7d15,_0x30b1a7[_0x6721('0x42')]);var _0x1355b0={'where':_0x1d7d15[_0x6721('0x3e')]};return db['DeskAccount']['count'](_0x1355b0)[_0x6721('0x28')](function(_0x4b2765){_0x409fe1['count']=_0x4b2765;if(_0x30b1a7[_0x6721('0x33')][_0x6721('0x43')]){_0x1d7d15[_0x6721('0x44')]=[{'all':!![]}];}return db[_0x6721('0x2e')][_0x6721('0x45')](_0x1d7d15);})['then'](function(_0x2482c9){_0x409fe1[_0x6721('0x46')]=_0x2482c9;return _0x409fe1;})[_0x6721('0x28')](respondWithFilteredResult(_0x5f2fb2,_0x1d7d15))[_0x6721('0x47')](handleError(_0x5f2fb2,null));};exports[_0x6721('0x48')]=function(_0x2dbdd7,_0x234c9f){var _0x15486e={'raw':![],'where':{'id':_0x2dbdd7[_0x6721('0x49')]['id']}},_0x596160={};_0x596160[_0x6721('0x32')]=_['keys'](db[_0x6721('0x2e')][_0x6721('0x2f')]);_0x596160[_0x6721('0x33')]=_[_0x6721('0x34')](_0x2dbdd7[_0x6721('0x33')]);_0x596160[_0x6721('0x35')]=_['intersection'](_0x596160[_0x6721('0x32')],_0x596160[_0x6721('0x33')]);_0x15486e['attributes']=_[_0x6721('0x36')](_0x596160[_0x6721('0x32')],qs[_0x6721('0x4a')](_0x2dbdd7[_0x6721('0x33')][_0x6721('0x4a')]));_0x15486e[_0x6721('0x37')]=_0x15486e[_0x6721('0x37')][_0x6721('0x38')]?_0x15486e[_0x6721('0x37')]:_0x596160[_0x6721('0x32')];if(_0x2dbdd7[_0x6721('0x33')][_0x6721('0x43')]){_0x15486e[_0x6721('0x44')]=[{'all':!![]}];}_0x15486e=_[_0x6721('0x3f')]({},_0x15486e,_0x2dbdd7[_0x6721('0x42')]);return db['DeskAccount'][_0x6721('0x4b')](_0x15486e)[_0x6721('0x28')](handleEntityNotFound(_0x234c9f,null))[_0x6721('0x28')](respondWithResult(_0x234c9f,null))[_0x6721('0x47')](handleError(_0x234c9f,null));};exports['create']=function(_0x265d45,_0xfd5efa){return db[_0x6721('0x2e')][_0x6721('0x4c')](_0x265d45[_0x6721('0x4d')],{})[_0x6721('0x28')](respondWithResult(_0xfd5efa,0xc9))[_0x6721('0x47')](handleError(_0xfd5efa,null));};exports['update']=function(_0x551e71,_0x36e7dc){if(_0x551e71['body']['id']){delete _0x551e71['body']['id'];}return db[_0x6721('0x2e')][_0x6721('0x4b')]({'where':{'id':_0x551e71['params']['id']}})[_0x6721('0x28')](handleEntityNotFound(_0x36e7dc,null))[_0x6721('0x28')](saveUpdates(_0x551e71[_0x6721('0x4d')],null))[_0x6721('0x28')](respondWithResult(_0x36e7dc,null))[_0x6721('0x47')](handleError(_0x36e7dc,null));};exports['destroy']=function(_0x232c64,_0x9c004){return db[_0x6721('0x2e')]['find']({'where':{'id':_0x232c64[_0x6721('0x49')]['id']}})[_0x6721('0x28')](handleEntityNotFound(_0x9c004,null))['then'](removeEntity(_0x9c004,null))[_0x6721('0x47')](handleError(_0x9c004,null));};exports[_0x6721('0x4e')]=function(_0x4c0a4f,_0x25de44,_0x536d44){var _0x25c1a5={};var _0x5e04c6={};var _0x13649b;var _0x237704;return db[_0x6721('0x2e')][_0x6721('0x4f')]({'where':{'id':_0x4c0a4f['params']['id']}})[_0x6721('0x28')](handleEntityNotFound(_0x25de44,null))[_0x6721('0x28')](function(_0xfcabc2){if(_0xfcabc2){_0x13649b=_0xfcabc2;_0x5e04c6[_0x6721('0x32')]=_['keys'](db[_0x6721('0x50')][_0x6721('0x2f')]);_0x5e04c6[_0x6721('0x33')]=_[_0x6721('0x34')](_0x4c0a4f['query']);_0x5e04c6[_0x6721('0x35')]=_['intersection'](_0x5e04c6['model'],_0x5e04c6[_0x6721('0x33')]);_0x25c1a5[_0x6721('0x37')]=_[_0x6721('0x36')](_0x5e04c6['model'],qs[_0x6721('0x4a')](_0x4c0a4f[_0x6721('0x33')]['fields']));_0x25c1a5[_0x6721('0x37')]=_0x25c1a5[_0x6721('0x37')][_0x6721('0x38')]?_0x25c1a5[_0x6721('0x37')]:_0x5e04c6['model'];_0x25c1a5[_0x6721('0x51')]=qs[_0x6721('0x3b')](_0x4c0a4f['query']['sort']);_0x25c1a5[_0x6721('0x3e')]=qs[_0x6721('0x35')](_['pick'](_0x4c0a4f[_0x6721('0x33')],_0x5e04c6['filters']));if(_0x4c0a4f[_0x6721('0x33')]['filter']){_0x25c1a5[_0x6721('0x3e')]=_['merge'](_0x25c1a5[_0x6721('0x3e')],{'$or':_[_0x6721('0x2d')](_0x25c1a5['attributes'],function(_0x4f2e6e){var _0x5b5c1c={};_0x5b5c1c[_0x4f2e6e]={'$like':'%'+_0x4c0a4f[_0x6721('0x33')][_0x6721('0x3d')]+'%'};return _0x5b5c1c;})});}_0x25c1a5=_[_0x6721('0x3f')]({},_0x25c1a5,_0x4c0a4f[_0x6721('0x42')]);return _0x13649b[_0x6721('0x4e')](_0x25c1a5);}})[_0x6721('0x28')](function(_0x39c7a3){if(_0x39c7a3){_0x237704=_0x39c7a3[_0x6721('0x38')];if(!_0x4c0a4f[_0x6721('0x33')][_0x6721('0x39')]('nolimit')){_0x25c1a5[_0x6721('0x1e')]=qs[_0x6721('0x1e')](_0x4c0a4f[_0x6721('0x33')]['limit']);_0x25c1a5[_0x6721('0x20')]=qs[_0x6721('0x20')](_0x4c0a4f[_0x6721('0x33')][_0x6721('0x20')]);}return _0x13649b[_0x6721('0x4e')](_0x25c1a5);}})['then'](function(_0x465abc){if(_0x465abc){return _0x465abc?{'count':_0x237704,'rows':_0x465abc}:null;}})['then'](respondWithResult(_0x25de44,null))['catch'](handleError(_0x25de44,null));};exports['addConfiguration']=function(_0x3e3536,_0x20fe9a,_0x5404ed){if(_0x3e3536[_0x6721('0x4d')]['id']){delete _0x3e3536[_0x6721('0x4d')]['id'];}return db[_0x6721('0x2e')][_0x6721('0x4f')]({'where':{'id':_0x3e3536[_0x6721('0x49')]['id']}})['then'](handleEntityNotFound(_0x20fe9a,null))['then'](function(_0x242441){if(_0x242441){_0x3e3536[_0x6721('0x4d')]['AccountId']=_0x242441['id'];_0x3e3536[_0x6721('0x4d')][_0x6721('0x52')]=integrations['getSubjects'](_0x3e3536[_0x6721('0x4d')][_0x6721('0x53')],_0x3e3536[_0x6721('0x4d')][_0x6721('0x40')]);_0x3e3536['body'][_0x6721('0x54')]=integrations[_0x6721('0x55')](_0x3e3536[_0x6721('0x4d')][_0x6721('0x53')],_0x3e3536[_0x6721('0x4d')][_0x6721('0x40')]);return db['DeskConfiguration'][_0x6721('0x4c')](_0x3e3536[_0x6721('0x4d')],{'include':[{'model':db['DeskField'],'as':_0x6721('0x52')},{'model':db[_0x6721('0x56')],'as':_0x6721('0x54')}]});}return null;})[_0x6721('0x28')](respondWithResult(_0x20fe9a,null))[_0x6721('0x47')](handleError(_0x20fe9a,null));};exports[_0x6721('0x57')]=function(_0x2a3110,_0x11afc9,_0x4e8c2b){var _0x4a45f3=[{'name':_0x6721('0x58'),'label':_0x6721('0x58'),'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 _0x7659a9='';return db[_0x6721('0x2e')]['findOne']({'where':{'id':_0x2a3110[_0x6721('0x49')]['id']},'attributes':['id','remoteUri','authType',_0x6721('0x59'),_0x6721('0x5a'),_0x6721('0x5b'),_0x6721('0x5c'),'token',_0x6721('0x5d')]})[_0x6721('0x28')](handleEntityNotFound(_0x11afc9,null))[_0x6721('0x28')](function(_0x621e2f){if(_0x621e2f){_0x7659a9=_0x621e2f['remoteUri'];var _0x5b6019=_0x7659a9['slice'](-0x1);if(_0x5b6019==='/'){_0x7659a9=_0x7659a9[_0x6721('0x5e')](0x0,_0x7659a9[_0x6721('0x5f')](_0x5b6019));}var _0x2a5f7d={'method':_0x6721('0x60'),'uri':util[_0x6721('0x61')](_0x6721('0x62'),_0x7659a9),'headers':{'Content-Type':'application/json','Accept':_0x6721('0x63')},'json':!![]};if(_0x621e2f[_0x6721('0x64')]===_0x6721('0x65')){_0x2a5f7d[_0x6721('0x66')][_0x6721('0x67')]=util[_0x6721('0x61')]('Basic\x20%s',new Buffer(util[_0x6721('0x61')](_0x6721('0x68'),_0x621e2f[_0x6721('0x59')],_0x621e2f['password']))[_0x6721('0x69')](_0x6721('0x6a')));}return rp(_0x2a5f7d)['then'](function(_0x3dde75){return _0x4a45f3['concat'](_[_0x6721('0x2d')](_0x3dde75[_0x6721('0x6b')][_0x6721('0x6c')],function(_0x4c566d){return{'id':_0x4c566d[_0x6721('0x2a')],'name':_0x4c566d[_0x6721('0x2a')],'type':_0x4c566d[_0x6721('0x40')],'active':_0x4c566d[_0x6721('0x6d')],'label':_0x4c566d['label'],'custom':!![]};}));});}})[_0x6721('0x28')](function(_0x3803b5){return{'count':_0x3803b5['length'],'rows':_0x3803b5};})[_0x6721('0x28')](respondWithResult(_0x11afc9,null))[_0x6721('0x47')](function(_0x55a2ae){var _0x581bb3=_0x2a3110[_0x6721('0x33')][_0x6721('0x6e')]?0x1f4:_0x55a2ae['statusCode']||0x1f4;logger[_0x6721('0x6f')](_0x6721('0x70'),'getFields',_0x581bb3,JSON[_0x6721('0x71')](_0x55a2ae));delete _0x55a2ae[_0x6721('0x2a')];if(_0x581bb3===0x191){_0x581bb3=0x190;}_0x11afc9[_0x6721('0x1b')](_0x581bb3)['send'](_0x2a3110['query'][_0x6721('0x6e')]?{'message':_0x6721('0x72'),'statusCode':_0x55a2ae[_0x6721('0x73')]}:_0x55a2ae);});};