a48f9ca6f4778741edbcb1eb64cd5e46833abf0c
[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 _0x53be=['format','%s/custom_fields','application/json','basic','Authorization','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','save','update','destroy','then','error','stack','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','name','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','includeAll','include','rows','catch','show','params','keys','options','find','create','body','getConfigurations','DeskConfiguration','pick','addConfiguration','findOne','channel','getDescriptions','DeskField','Subjects','Descriptions','getFields','priority','remoteUri','authType','username','password','consumerKey','tokenSecret','slice','substring','GET'];(function(_0x513545,_0x158f2e){var _0x18b7c5=function(_0x58514c){while(--_0x58514c){_0x513545['push'](_0x513545['shift']());}};_0x18b7c5(++_0x158f2e);}(_0x53be,0xee));var _0xe53b=function(_0x5034e6,_0x4906ac){_0x5034e6=_0x5034e6-0x0;var _0x56263b=_0x53be[_0x5034e6];return _0x56263b;};'use strict';var emlformat=require(_0xe53b('0x0'));var rimraf=require(_0xe53b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe53b('0x2'));var rp=require(_0xe53b('0x3'));var moment=require(_0xe53b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe53b('0x5'));var util=require(_0xe53b('0x6'));var path=require(_0xe53b('0x7'));var sox=require(_0xe53b('0x8'));var csv=require(_0xe53b('0x9'));var ejs=require(_0xe53b('0xa'));var fs=require('fs');var fs_extra=require(_0xe53b('0xb'));var _=require('lodash');var squel=require(_0xe53b('0xc'));var crypto=require(_0xe53b('0xd'));var jsforce=require(_0xe53b('0xe'));var deskjs=require(_0xe53b('0xf'));var toCsv=require(_0xe53b('0x9'));var querystring=require('querystring');var Papa=require(_0xe53b('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xe53b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe53b('0x12'))(_0xe53b('0x13'));var utils=require('../../config/utils');var config=require(_0xe53b('0x14'));var licenseUtil=require(_0xe53b('0x15'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x1553f9,_0x3a2e3e){_0x3a2e3e=_0x3a2e3e||0xcc;return function(_0x314fd1){if(_0x314fd1){return _0x1553f9[_0xe53b('0x16')](_0x3a2e3e);}return _0x1553f9['status'](_0x3a2e3e)[_0xe53b('0x17')]();};}function respondWithResult(_0x2d71d6,_0x52ad98){_0x52ad98=_0x52ad98||0xc8;return function(_0x227ba7){if(_0x227ba7){return _0x2d71d6[_0xe53b('0x18')](_0x52ad98)[_0xe53b('0x19')](_0x227ba7);}};}function respondWithFilteredResult(_0x57cf76,_0x789f27){return function(_0x31955d){if(_0x31955d){var _0x49b79c=typeof _0x789f27[_0xe53b('0x1a')]===_0xe53b('0x1b')&&typeof _0x789f27[_0xe53b('0x1c')]==='undefined';var _0x1ad47a=_0x31955d[_0xe53b('0x1d')];var _0x2da60a=_0x49b79c?0x0:_0x789f27[_0xe53b('0x1a')];var _0x417b10=_0x49b79c?_0x31955d[_0xe53b('0x1d')]:_0x789f27['offset']+_0x789f27[_0xe53b('0x1c')];var _0xc026bd;if(_0x417b10>=_0x1ad47a){_0x417b10=_0x1ad47a;_0xc026bd=0xc8;}else{_0xc026bd=0xce;}_0x57cf76[_0xe53b('0x18')](_0xc026bd);return _0x57cf76['set'](_0xe53b('0x1e'),_0x2da60a+'-'+_0x417b10+'/'+_0x1ad47a)[_0xe53b('0x19')](_0x31955d);}return null;};}function patchUpdates(_0x20fa77){return function(_0x4c07b4){try{jsonpatch['apply'](_0x4c07b4,_0x20fa77,!![]);}catch(_0x1f20cd){return BPromise['reject'](_0x1f20cd);}return _0x4c07b4[_0xe53b('0x1f')]();};}function saveUpdates(_0x16701c,_0x32b271){return function(_0xa05ce6){if(_0xa05ce6){return _0xa05ce6[_0xe53b('0x20')](_0x16701c)['then'](function(_0x40e03d){return _0x40e03d;});}return null;};}function removeEntity(_0x26ba5d,_0x270245){return function(_0x3976af){if(_0x3976af){return _0x3976af[_0xe53b('0x21')]()[_0xe53b('0x22')](function(){_0x26ba5d[_0xe53b('0x18')](0xcc)[_0xe53b('0x17')]();});}};}function handleEntityNotFound(_0x36f537,_0x3b5a92){return function(_0x1acce1){if(!_0x1acce1){_0x36f537[_0xe53b('0x16')](0x194);}return _0x1acce1;};}function handleError(_0x55c9cf,_0x40cdcd){_0x40cdcd=_0x40cdcd||0x1f4;return function(_0x26c9e3){logger[_0xe53b('0x23')](_0x26c9e3[_0xe53b('0x24')]);if(_0x26c9e3['name']){delete _0x26c9e3['name'];}_0x55c9cf[_0xe53b('0x18')](_0x40cdcd)[_0xe53b('0x25')](_0x26c9e3);};}exports[_0xe53b('0x26')]=function(_0x319004,_0x478227){var _0x24a534={},_0x42582d={},_0x3882ac={'count':0x0,'rows':[]};var _0x44444b=_[_0xe53b('0x27')](db[_0xe53b('0x28')][_0xe53b('0x29')],function(_0x2c6ca5){return{'name':_0x2c6ca5[_0xe53b('0x2a')],'type':_0x2c6ca5[_0xe53b('0x2b')][_0xe53b('0x2c')]};});_0x42582d[_0xe53b('0x2d')]=_[_0xe53b('0x27')](_0x44444b,_0xe53b('0x2e'));_0x42582d['query']=_['keys'](_0x319004[_0xe53b('0x2f')]);_0x42582d[_0xe53b('0x30')]=_[_0xe53b('0x31')](_0x42582d[_0xe53b('0x2d')],_0x42582d[_0xe53b('0x2f')]);_0x24a534[_0xe53b('0x32')]=_['intersection'](_0x42582d[_0xe53b('0x2d')],qs[_0xe53b('0x33')](_0x319004[_0xe53b('0x2f')][_0xe53b('0x33')]));_0x24a534[_0xe53b('0x32')]=_0x24a534['attributes'][_0xe53b('0x34')]?_0x24a534[_0xe53b('0x32')]:_0x42582d['model'];if(!_0x319004[_0xe53b('0x2f')][_0xe53b('0x35')]('nolimit')){_0x24a534['limit']=qs[_0xe53b('0x1c')](_0x319004[_0xe53b('0x2f')][_0xe53b('0x1c')]);_0x24a534[_0xe53b('0x1a')]=qs[_0xe53b('0x1a')](_0x319004[_0xe53b('0x2f')][_0xe53b('0x1a')]);}_0x24a534[_0xe53b('0x36')]=qs[_0xe53b('0x37')](_0x319004['query']['sort']);_0x24a534[_0xe53b('0x38')]=qs[_0xe53b('0x30')](_['pick'](_0x319004[_0xe53b('0x2f')],_0x42582d[_0xe53b('0x30')]),_0x44444b);if(_0x319004[_0xe53b('0x2f')]['filter']){_0x24a534['where']=_[_0xe53b('0x39')](_0x24a534[_0xe53b('0x38')],{'$or':_[_0xe53b('0x27')](_0x44444b,function(_0x7e76f3){if(_0x7e76f3[_0xe53b('0x2b')]!==_0xe53b('0x3a')){var _0x5626e0={};_0x5626e0[_0x7e76f3[_0xe53b('0x2e')]]={'$like':'%'+_0x319004[_0xe53b('0x2f')][_0xe53b('0x3b')]+'%'};return _0x5626e0;}})});}_0x24a534=_[_0xe53b('0x39')]({},_0x24a534,_0x319004['options']);var _0x2c38b4={'where':_0x24a534[_0xe53b('0x38')]};return db[_0xe53b('0x28')]['count'](_0x2c38b4)[_0xe53b('0x22')](function(_0x1e697d){_0x3882ac[_0xe53b('0x1d')]=_0x1e697d;if(_0x319004[_0xe53b('0x2f')][_0xe53b('0x3c')]){_0x24a534[_0xe53b('0x3d')]=[{'all':!![]}];}return db[_0xe53b('0x28')]['findAll'](_0x24a534);})[_0xe53b('0x22')](function(_0x414ff9){_0x3882ac[_0xe53b('0x3e')]=_0x414ff9;return _0x3882ac;})[_0xe53b('0x22')](respondWithFilteredResult(_0x478227,_0x24a534))[_0xe53b('0x3f')](handleError(_0x478227,null));};exports[_0xe53b('0x40')]=function(_0x4052b3,_0x2d8c5e){var _0x1658a2={'raw':![],'where':{'id':_0x4052b3[_0xe53b('0x41')]['id']}},_0x115492={};_0x115492[_0xe53b('0x2d')]=_[_0xe53b('0x42')](db['DeskAccount'][_0xe53b('0x29')]);_0x115492[_0xe53b('0x2f')]=_[_0xe53b('0x42')](_0x4052b3[_0xe53b('0x2f')]);_0x115492[_0xe53b('0x30')]=_[_0xe53b('0x31')](_0x115492[_0xe53b('0x2d')],_0x115492[_0xe53b('0x2f')]);_0x1658a2['attributes']=_['intersection'](_0x115492['model'],qs['fields'](_0x4052b3['query'][_0xe53b('0x33')]));_0x1658a2[_0xe53b('0x32')]=_0x1658a2[_0xe53b('0x32')][_0xe53b('0x34')]?_0x1658a2[_0xe53b('0x32')]:_0x115492['model'];if(_0x4052b3[_0xe53b('0x2f')][_0xe53b('0x3c')]){_0x1658a2[_0xe53b('0x3d')]=[{'all':!![]}];}_0x1658a2=_[_0xe53b('0x39')]({},_0x1658a2,_0x4052b3[_0xe53b('0x43')]);return db['DeskAccount'][_0xe53b('0x44')](_0x1658a2)[_0xe53b('0x22')](handleEntityNotFound(_0x2d8c5e,null))[_0xe53b('0x22')](respondWithResult(_0x2d8c5e,null))['catch'](handleError(_0x2d8c5e,null));};exports[_0xe53b('0x45')]=function(_0x5debc0,_0x357276){return db[_0xe53b('0x28')][_0xe53b('0x45')](_0x5debc0[_0xe53b('0x46')],{})['then'](respondWithResult(_0x357276,0xc9))[_0xe53b('0x3f')](handleError(_0x357276,null));};exports[_0xe53b('0x20')]=function(_0xf9c9e4,_0x333777){if(_0xf9c9e4[_0xe53b('0x46')]['id']){delete _0xf9c9e4[_0xe53b('0x46')]['id'];}return db[_0xe53b('0x28')]['find']({'where':{'id':_0xf9c9e4[_0xe53b('0x41')]['id']}})[_0xe53b('0x22')](handleEntityNotFound(_0x333777,null))[_0xe53b('0x22')](saveUpdates(_0xf9c9e4[_0xe53b('0x46')],null))[_0xe53b('0x22')](respondWithResult(_0x333777,null))[_0xe53b('0x3f')](handleError(_0x333777,null));};exports[_0xe53b('0x21')]=function(_0x4a96e1,_0x223ef7){return db[_0xe53b('0x28')][_0xe53b('0x44')]({'where':{'id':_0x4a96e1[_0xe53b('0x41')]['id']}})[_0xe53b('0x22')](handleEntityNotFound(_0x223ef7,null))[_0xe53b('0x22')](removeEntity(_0x223ef7,null))[_0xe53b('0x3f')](handleError(_0x223ef7,null));};exports[_0xe53b('0x47')]=function(_0x3c58f2,_0x1d5b7e,_0x336ae5){var _0x1b9f8c={};var _0x3f15c6={};var _0x2e8c2b;var _0x4cb33d;return db[_0xe53b('0x28')]['findOne']({'where':{'id':_0x3c58f2[_0xe53b('0x41')]['id']}})[_0xe53b('0x22')](handleEntityNotFound(_0x1d5b7e,null))[_0xe53b('0x22')](function(_0x1a64f9){if(_0x1a64f9){_0x2e8c2b=_0x1a64f9;_0x3f15c6[_0xe53b('0x2d')]=_[_0xe53b('0x42')](db[_0xe53b('0x48')]['rawAttributes']);_0x3f15c6['query']=_['keys'](_0x3c58f2[_0xe53b('0x2f')]);_0x3f15c6[_0xe53b('0x30')]=_[_0xe53b('0x31')](_0x3f15c6['model'],_0x3f15c6[_0xe53b('0x2f')]);_0x1b9f8c['attributes']=_['intersection'](_0x3f15c6[_0xe53b('0x2d')],qs[_0xe53b('0x33')](_0x3c58f2[_0xe53b('0x2f')]['fields']));_0x1b9f8c['attributes']=_0x1b9f8c[_0xe53b('0x32')]['length']?_0x1b9f8c[_0xe53b('0x32')]:_0x3f15c6[_0xe53b('0x2d')];_0x1b9f8c['order']=qs[_0xe53b('0x37')](_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x37')]);_0x1b9f8c['where']=qs[_0xe53b('0x30')](_[_0xe53b('0x49')](_0x3c58f2[_0xe53b('0x2f')],_0x3f15c6['filters']));if(_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x3b')]){_0x1b9f8c[_0xe53b('0x38')]=_[_0xe53b('0x39')](_0x1b9f8c[_0xe53b('0x38')],{'$or':_[_0xe53b('0x27')](_0x1b9f8c[_0xe53b('0x32')],function(_0x2c4396){var _0x152e10={};_0x152e10[_0x2c4396]={'$like':'%'+_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x3b')]+'%'};return _0x152e10;})});}_0x1b9f8c=_[_0xe53b('0x39')]({},_0x1b9f8c,_0x3c58f2[_0xe53b('0x43')]);return _0x2e8c2b[_0xe53b('0x47')](_0x1b9f8c);}})[_0xe53b('0x22')](function(_0x5eda47){if(_0x5eda47){_0x4cb33d=_0x5eda47[_0xe53b('0x34')];if(!_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x35')]('nolimit')){_0x1b9f8c[_0xe53b('0x1c')]=qs['limit'](_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x1c')]);_0x1b9f8c[_0xe53b('0x1a')]=qs[_0xe53b('0x1a')](_0x3c58f2[_0xe53b('0x2f')][_0xe53b('0x1a')]);}return _0x2e8c2b['getConfigurations'](_0x1b9f8c);}})[_0xe53b('0x22')](function(_0x42a6f8){if(_0x42a6f8){return _0x42a6f8?{'count':_0x4cb33d,'rows':_0x42a6f8}:null;}})[_0xe53b('0x22')](respondWithResult(_0x1d5b7e,null))[_0xe53b('0x3f')](handleError(_0x1d5b7e,null));};exports[_0xe53b('0x4a')]=function(_0x1a19f2,_0x2cabb0,_0x29e075){if(_0x1a19f2['body']['id']){delete _0x1a19f2[_0xe53b('0x46')]['id'];}return db[_0xe53b('0x28')][_0xe53b('0x4b')]({'where':{'id':_0x1a19f2[_0xe53b('0x41')]['id']}})[_0xe53b('0x22')](handleEntityNotFound(_0x2cabb0,null))[_0xe53b('0x22')](function(_0x530cab){if(_0x530cab){_0x1a19f2[_0xe53b('0x46')]['AccountId']=_0x530cab['id'];_0x1a19f2[_0xe53b('0x46')]['Subjects']=integrations['getSubjects'](_0x1a19f2[_0xe53b('0x46')][_0xe53b('0x4c')],_0x1a19f2[_0xe53b('0x46')][_0xe53b('0x2b')]);_0x1a19f2['body']['Descriptions']=integrations[_0xe53b('0x4d')](_0x1a19f2['body'][_0xe53b('0x4c')],_0x1a19f2[_0xe53b('0x46')][_0xe53b('0x2b')]);return db[_0xe53b('0x48')][_0xe53b('0x45')](_0x1a19f2[_0xe53b('0x46')],{'include':[{'model':db[_0xe53b('0x4e')],'as':_0xe53b('0x4f')},{'model':db[_0xe53b('0x4e')],'as':_0xe53b('0x50')}]});}return null;})['then'](respondWithResult(_0x2cabb0,null))['catch'](handleError(_0x2cabb0,null));};exports[_0xe53b('0x51')]=function(_0x6e7b27,_0x5d3990,_0x1ca85d){var _0x238445=[{'name':_0xe53b('0x52'),'label':_0xe53b('0x52'),'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 _0x58cb7a='';return db[_0xe53b('0x28')][_0xe53b('0x4b')]({'where':{'id':_0x6e7b27[_0xe53b('0x41')]['id']},'attributes':['id',_0xe53b('0x53'),_0xe53b('0x54'),_0xe53b('0x55'),_0xe53b('0x56'),_0xe53b('0x57'),'consumerSecret','token',_0xe53b('0x58')]})[_0xe53b('0x22')](handleEntityNotFound(_0x5d3990,null))[_0xe53b('0x22')](function(_0x44c781){if(_0x44c781){_0x58cb7a=_0x44c781[_0xe53b('0x53')];var _0x3d2b94=_0x58cb7a[_0xe53b('0x59')](-0x1);if(_0x3d2b94==='/'){_0x58cb7a=_0x58cb7a[_0xe53b('0x5a')](0x0,_0x58cb7a['lastIndexOf'](_0x3d2b94));}var _0x4e16eb={'method':_0xe53b('0x5b'),'uri':util[_0xe53b('0x5c')](_0xe53b('0x5d'),_0x58cb7a),'headers':{'Content-Type':_0xe53b('0x5e'),'Accept':_0xe53b('0x5e')},'json':!![]};if(_0x44c781[_0xe53b('0x54')]===_0xe53b('0x5f')){_0x4e16eb['headers'][_0xe53b('0x60')]=util['format'](_0xe53b('0x61'),new Buffer(util['format'](_0xe53b('0x62'),_0x44c781[_0xe53b('0x55')],_0x44c781[_0xe53b('0x56')]))[_0xe53b('0x63')](_0xe53b('0x64')));}return rp(_0x4e16eb)[_0xe53b('0x22')](function(_0x5b1815){return _0x238445[_0xe53b('0x65')](_['map'](_0x5b1815[_0xe53b('0x66')][_0xe53b('0x67')],function(_0x2a9f14){return{'id':_0x2a9f14['name'],'name':_0x2a9f14[_0xe53b('0x2e')],'type':_0x2a9f14[_0xe53b('0x2b')],'active':_0x2a9f14[_0xe53b('0x68')],'label':_0x2a9f14[_0xe53b('0x69')],'custom':!![]};}));});}})['then'](function(_0x5b0e23){return{'count':_0x5b0e23[_0xe53b('0x34')],'rows':_0x5b0e23};})[_0xe53b('0x22')](respondWithResult(_0x5d3990,null))[_0xe53b('0x3f')](function(_0x48b24d){var _0x2ee8b7=_0x6e7b27[_0xe53b('0x2f')][_0xe53b('0x6a')]?0x1f4:_0x48b24d[_0xe53b('0x6b')]||0x1f4;logger[_0xe53b('0x23')](_0xe53b('0x6c'),_0xe53b('0x51'),_0x2ee8b7,JSON[_0xe53b('0x6d')](_0x48b24d));delete _0x48b24d[_0xe53b('0x2e')];if(_0x2ee8b7===0x191){_0x2ee8b7=0x190;}_0x5d3990['status'](_0x2ee8b7)[_0xe53b('0x25')](_0x6e7b27[_0xe53b('0x2f')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x48b24d[_0xe53b('0x6b')]}:_0x48b24d);});};