Built motion from commit 9d1906d1.|2.5.40
[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 _0xddf3=['lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','end','stack','name','map','DeskAccount','type','model','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','rows','catch','show','params','includeAll','include','options','find','create','body','getConfigurations','findOne','rawAttributes','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','slice','lastIndexOf','GET','application/json','headers','Authorization','format','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','entries','active','label','error','stringify','send','test','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra'];(function(_0x39e4a1,_0x4edcc5){var _0x55b30e=function(_0x5efd8e){while(--_0x5efd8e){_0x39e4a1['push'](_0x39e4a1['shift']());}};_0x55b30e(++_0x4edcc5);}(_0xddf3,0x159));var _0x3ddf=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xddf3[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x3ddf('0x0'));var rimraf=require(_0x3ddf('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3ddf('0x2'));var rp=require(_0x3ddf('0x3'));var moment=require(_0x3ddf('0x4'));var BPromise=require(_0x3ddf('0x5'));var Mustache=require(_0x3ddf('0x6'));var util=require(_0x3ddf('0x7'));var path=require(_0x3ddf('0x8'));var sox=require(_0x3ddf('0x9'));var csv=require('to-csv');var ejs=require(_0x3ddf('0xa'));var fs=require('fs');var fs_extra=require(_0x3ddf('0xb'));var _=require(_0x3ddf('0xc'));var squel=require(_0x3ddf('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3ddf('0xe'));var toCsv=require(_0x3ddf('0xf'));var querystring=require(_0x3ddf('0x10'));var Papa=require(_0x3ddf('0x11'));var Redis=require('ioredis');var authService=require(_0x3ddf('0x12'));var qs=require(_0x3ddf('0x13'));var as=require(_0x3ddf('0x14'));var hardwareService=require(_0x3ddf('0x15'));var logger=require(_0x3ddf('0x16'))(_0x3ddf('0x17'));var utils=require(_0x3ddf('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x3ddf('0x19'));var db=require(_0x3ddf('0x1a'))['db'];var integrations=require(_0x3ddf('0x1b'));function respondWithStatusCode(_0x465169,_0x9bf329){_0x9bf329=_0x9bf329||0xcc;return function(_0x401f68){if(_0x401f68){return _0x465169[_0x3ddf('0x1c')](_0x9bf329);}return _0x465169[_0x3ddf('0x1d')](_0x9bf329)['end']();};}function respondWithResult(_0x5a7263,_0x1f9e68){_0x1f9e68=_0x1f9e68||0xc8;return function(_0x5b0a34){if(_0x5b0a34){return _0x5a7263['status'](_0x1f9e68)['json'](_0x5b0a34);}};}function respondWithFilteredResult(_0x1c6d1e,_0x4a03fe){return function(_0x14aa2e){if(_0x14aa2e){var _0x21e451=typeof _0x4a03fe[_0x3ddf('0x1e')]===_0x3ddf('0x1f')&&typeof _0x4a03fe['limit']===_0x3ddf('0x1f');var _0x2851f5=_0x14aa2e[_0x3ddf('0x20')];var _0x1be5d8=_0x21e451?0x0:_0x4a03fe[_0x3ddf('0x1e')];var _0x54bf5f=_0x21e451?_0x14aa2e[_0x3ddf('0x20')]:_0x4a03fe[_0x3ddf('0x1e')]+_0x4a03fe[_0x3ddf('0x21')];var _0x3cd0b5;if(_0x54bf5f>=_0x2851f5){_0x54bf5f=_0x2851f5;_0x3cd0b5=0xc8;}else{_0x3cd0b5=0xce;}_0x1c6d1e[_0x3ddf('0x1d')](_0x3cd0b5);return _0x1c6d1e[_0x3ddf('0x22')](_0x3ddf('0x23'),_0x1be5d8+'-'+_0x54bf5f+'/'+_0x2851f5)[_0x3ddf('0x24')](_0x14aa2e);}return null;};}function patchUpdates(_0x3fb2e9){return function(_0x14a9a8){try{jsonpatch[_0x3ddf('0x25')](_0x14a9a8,_0x3fb2e9,!![]);}catch(_0x1f7172){return BPromise[_0x3ddf('0x26')](_0x1f7172);}return _0x14a9a8[_0x3ddf('0x27')]();};}function saveUpdates(_0x3e96f3,_0x1fe563){return function(_0x4f90ae){if(_0x4f90ae){return _0x4f90ae[_0x3ddf('0x28')](_0x3e96f3)[_0x3ddf('0x29')](function(_0x34ae6f){return _0x34ae6f;});}return null;};}function removeEntity(_0x1badda,_0x5e5db8){return function(_0x3998b0){if(_0x3998b0){return _0x3998b0[_0x3ddf('0x2a')]()[_0x3ddf('0x29')](function(){_0x1badda[_0x3ddf('0x1d')](0xcc)[_0x3ddf('0x2b')]();});}};}function handleEntityNotFound(_0x320348,_0x2beab4){return function(_0x32834b){if(!_0x32834b){_0x320348[_0x3ddf('0x1c')](0x194);}return _0x32834b;};}function handleError(_0x420058,_0x512644){_0x512644=_0x512644||0x1f4;return function(_0x370cc6){logger['error'](_0x370cc6[_0x3ddf('0x2c')]);if(_0x370cc6[_0x3ddf('0x2d')]){delete _0x370cc6[_0x3ddf('0x2d')];}_0x420058['status'](_0x512644)['send'](_0x370cc6);};}exports['index']=function(_0x9529bf,_0x460c60){var _0x5d6411={},_0x376944={},_0x58d84a={'count':0x0,'rows':[]};var _0x469b5c=_[_0x3ddf('0x2e')](db[_0x3ddf('0x2f')]['rawAttributes'],function(_0x5ba4ae){return{'name':_0x5ba4ae['fieldName'],'type':_0x5ba4ae[_0x3ddf('0x30')]['key']};});_0x376944[_0x3ddf('0x31')]=_[_0x3ddf('0x2e')](_0x469b5c,_0x3ddf('0x2d'));_0x376944['query']=_[_0x3ddf('0x32')](_0x9529bf['query']);_0x376944[_0x3ddf('0x33')]=_[_0x3ddf('0x34')](_0x376944['model'],_0x376944[_0x3ddf('0x35')]);_0x5d6411['attributes']=_[_0x3ddf('0x34')](_0x376944[_0x3ddf('0x31')],qs[_0x3ddf('0x36')](_0x9529bf[_0x3ddf('0x35')]['fields']));_0x5d6411[_0x3ddf('0x37')]=_0x5d6411['attributes'][_0x3ddf('0x38')]?_0x5d6411['attributes']:_0x376944[_0x3ddf('0x31')];if(!_0x9529bf['query'][_0x3ddf('0x39')]('nolimit')){_0x5d6411[_0x3ddf('0x21')]=qs[_0x3ddf('0x21')](_0x9529bf['query'][_0x3ddf('0x21')]);_0x5d6411[_0x3ddf('0x1e')]=qs[_0x3ddf('0x1e')](_0x9529bf['query'][_0x3ddf('0x1e')]);}_0x5d6411[_0x3ddf('0x3a')]=qs[_0x3ddf('0x3b')](_0x9529bf[_0x3ddf('0x35')][_0x3ddf('0x3b')]);_0x5d6411['where']=qs[_0x3ddf('0x33')](_[_0x3ddf('0x3c')](_0x9529bf['query'],_0x376944[_0x3ddf('0x33')]),_0x469b5c);if(_0x9529bf[_0x3ddf('0x35')][_0x3ddf('0x3d')]){_0x5d6411[_0x3ddf('0x3e')]=_[_0x3ddf('0x3f')](_0x5d6411[_0x3ddf('0x3e')],{'$or':_[_0x3ddf('0x2e')](_0x469b5c,function(_0x4c7ac5){if(_0x4c7ac5['type']!==_0x3ddf('0x40')){var _0x3f6aa3={};_0x3f6aa3[_0x4c7ac5['name']]={'$like':'%'+_0x9529bf['query'][_0x3ddf('0x3d')]+'%'};return _0x3f6aa3;}})});}_0x5d6411=_[_0x3ddf('0x3f')]({},_0x5d6411,_0x9529bf['options']);var _0x4185be={'where':_0x5d6411['where']};return db['DeskAccount']['count'](_0x4185be)[_0x3ddf('0x29')](function(_0x1919d4){_0x58d84a['count']=_0x1919d4;if(_0x9529bf['query']['includeAll']){_0x5d6411['include']=[{'all':!![]}];}return db[_0x3ddf('0x2f')]['findAll'](_0x5d6411);})['then'](function(_0x3a1f31){_0x58d84a[_0x3ddf('0x41')]=_0x3a1f31;return _0x58d84a;})[_0x3ddf('0x29')](respondWithFilteredResult(_0x460c60,_0x5d6411))[_0x3ddf('0x42')](handleError(_0x460c60,null));};exports[_0x3ddf('0x43')]=function(_0x5ad99f,_0x10eabd){var _0x3e7c88={'raw':![],'where':{'id':_0x5ad99f[_0x3ddf('0x44')]['id']}},_0x3cd477={};_0x3cd477['model']=_[_0x3ddf('0x32')](db[_0x3ddf('0x2f')]['rawAttributes']);_0x3cd477['query']=_[_0x3ddf('0x32')](_0x5ad99f[_0x3ddf('0x35')]);_0x3cd477[_0x3ddf('0x33')]=_[_0x3ddf('0x34')](_0x3cd477[_0x3ddf('0x31')],_0x3cd477['query']);_0x3e7c88[_0x3ddf('0x37')]=_[_0x3ddf('0x34')](_0x3cd477['model'],qs[_0x3ddf('0x36')](_0x5ad99f['query'][_0x3ddf('0x36')]));_0x3e7c88[_0x3ddf('0x37')]=_0x3e7c88[_0x3ddf('0x37')][_0x3ddf('0x38')]?_0x3e7c88['attributes']:_0x3cd477[_0x3ddf('0x31')];if(_0x5ad99f[_0x3ddf('0x35')][_0x3ddf('0x45')]){_0x3e7c88[_0x3ddf('0x46')]=[{'all':!![]}];}_0x3e7c88=_[_0x3ddf('0x3f')]({},_0x3e7c88,_0x5ad99f[_0x3ddf('0x47')]);return db['DeskAccount'][_0x3ddf('0x48')](_0x3e7c88)['then'](handleEntityNotFound(_0x10eabd,null))[_0x3ddf('0x29')](respondWithResult(_0x10eabd,null))['catch'](handleError(_0x10eabd,null));};exports[_0x3ddf('0x49')]=function(_0x169578,_0x44cc7d){return db['DeskAccount'][_0x3ddf('0x49')](_0x169578['body'],{})[_0x3ddf('0x29')](respondWithResult(_0x44cc7d,0xc9))['catch'](handleError(_0x44cc7d,null));};exports[_0x3ddf('0x28')]=function(_0x9ef764,_0x4b1c4f){if(_0x9ef764[_0x3ddf('0x4a')]['id']){delete _0x9ef764[_0x3ddf('0x4a')]['id'];}return db[_0x3ddf('0x2f')][_0x3ddf('0x48')]({'where':{'id':_0x9ef764['params']['id']}})[_0x3ddf('0x29')](handleEntityNotFound(_0x4b1c4f,null))[_0x3ddf('0x29')](saveUpdates(_0x9ef764[_0x3ddf('0x4a')],null))[_0x3ddf('0x29')](respondWithResult(_0x4b1c4f,null))[_0x3ddf('0x42')](handleError(_0x4b1c4f,null));};exports[_0x3ddf('0x2a')]=function(_0x484f71,_0x30d257){return db['DeskAccount'][_0x3ddf('0x48')]({'where':{'id':_0x484f71['params']['id']}})[_0x3ddf('0x29')](handleEntityNotFound(_0x30d257,null))[_0x3ddf('0x29')](removeEntity(_0x30d257,null))[_0x3ddf('0x42')](handleError(_0x30d257,null));};exports[_0x3ddf('0x4b')]=function(_0xb6d1b,_0x3a7b4f,_0x593945){var _0x30aa01={};var _0x5a99a3={};var _0x359ca4;var _0x40412f;return db[_0x3ddf('0x2f')][_0x3ddf('0x4c')]({'where':{'id':_0xb6d1b[_0x3ddf('0x44')]['id']}})[_0x3ddf('0x29')](handleEntityNotFound(_0x3a7b4f,null))[_0x3ddf('0x29')](function(_0x8e4d0d){if(_0x8e4d0d){_0x359ca4=_0x8e4d0d;_0x5a99a3[_0x3ddf('0x31')]=_[_0x3ddf('0x32')](db['DeskConfiguration'][_0x3ddf('0x4d')]);_0x5a99a3['query']=_[_0x3ddf('0x32')](_0xb6d1b[_0x3ddf('0x35')]);_0x5a99a3['filters']=_[_0x3ddf('0x34')](_0x5a99a3[_0x3ddf('0x31')],_0x5a99a3['query']);_0x30aa01['attributes']=_['intersection'](_0x5a99a3[_0x3ddf('0x31')],qs[_0x3ddf('0x36')](_0xb6d1b[_0x3ddf('0x35')]['fields']));_0x30aa01[_0x3ddf('0x37')]=_0x30aa01[_0x3ddf('0x37')][_0x3ddf('0x38')]?_0x30aa01[_0x3ddf('0x37')]:_0x5a99a3[_0x3ddf('0x31')];_0x30aa01[_0x3ddf('0x3a')]=qs[_0x3ddf('0x3b')](_0xb6d1b[_0x3ddf('0x35')][_0x3ddf('0x3b')]);_0x30aa01[_0x3ddf('0x3e')]=qs['filters'](_['pick'](_0xb6d1b[_0x3ddf('0x35')],_0x5a99a3[_0x3ddf('0x33')]));if(_0xb6d1b['query'][_0x3ddf('0x3d')]){_0x30aa01[_0x3ddf('0x3e')]=_[_0x3ddf('0x3f')](_0x30aa01[_0x3ddf('0x3e')],{'$or':_[_0x3ddf('0x2e')](_0x30aa01[_0x3ddf('0x37')],function(_0x1f8ebb){var _0x2daca6={};_0x2daca6[_0x1f8ebb]={'$like':'%'+_0xb6d1b[_0x3ddf('0x35')][_0x3ddf('0x3d')]+'%'};return _0x2daca6;})});}_0x30aa01=_[_0x3ddf('0x3f')]({},_0x30aa01,_0xb6d1b['options']);return _0x359ca4[_0x3ddf('0x4b')](_0x30aa01);}})[_0x3ddf('0x29')](function(_0x32e0cd){if(_0x32e0cd){_0x40412f=_0x32e0cd['length'];if(!_0xb6d1b[_0x3ddf('0x35')][_0x3ddf('0x39')](_0x3ddf('0x4e'))){_0x30aa01[_0x3ddf('0x21')]=qs[_0x3ddf('0x21')](_0xb6d1b['query'][_0x3ddf('0x21')]);_0x30aa01['offset']=qs[_0x3ddf('0x1e')](_0xb6d1b[_0x3ddf('0x35')]['offset']);}return _0x359ca4[_0x3ddf('0x4b')](_0x30aa01);}})[_0x3ddf('0x29')](function(_0x4a44b1){if(_0x4a44b1){return _0x4a44b1?{'count':_0x40412f,'rows':_0x4a44b1}:null;}})[_0x3ddf('0x29')](respondWithResult(_0x3a7b4f,null))[_0x3ddf('0x42')](handleError(_0x3a7b4f,null));};exports[_0x3ddf('0x4f')]=function(_0x20df39,_0x1dc3de,_0x17a978){if(_0x20df39['body']['id']){delete _0x20df39[_0x3ddf('0x4a')]['id'];}return db[_0x3ddf('0x2f')][_0x3ddf('0x4c')]({'where':{'id':_0x20df39['params']['id']}})[_0x3ddf('0x29')](handleEntityNotFound(_0x1dc3de,null))[_0x3ddf('0x29')](function(_0x22a1f8){if(_0x22a1f8){_0x20df39[_0x3ddf('0x4a')][_0x3ddf('0x50')]=_0x22a1f8['id'];_0x20df39['body'][_0x3ddf('0x51')]=integrations[_0x3ddf('0x52')](_0x20df39[_0x3ddf('0x4a')][_0x3ddf('0x53')],_0x20df39['body'][_0x3ddf('0x30')]);_0x20df39['body'][_0x3ddf('0x54')]=integrations[_0x3ddf('0x55')](_0x20df39[_0x3ddf('0x4a')][_0x3ddf('0x53')],_0x20df39[_0x3ddf('0x4a')][_0x3ddf('0x30')]);return db[_0x3ddf('0x56')]['create'](_0x20df39['body'],{'include':[{'model':db[_0x3ddf('0x57')],'as':'Subjects'},{'model':db[_0x3ddf('0x57')],'as':_0x3ddf('0x54')}]});}return null;})[_0x3ddf('0x29')](respondWithResult(_0x1dc3de,null))[_0x3ddf('0x42')](handleError(_0x1dc3de,null));};exports[_0x3ddf('0x58')]=function(_0x509f4f,_0x1f44d6,_0x3e1daa){var _0x1e15fa=[{'name':_0x3ddf('0x59'),'label':'priority','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 _0x178b51='';return db['DeskAccount']['findOne']({'where':{'id':_0x509f4f[_0x3ddf('0x44')]['id']},'attributes':['id',_0x3ddf('0x5a'),_0x3ddf('0x5b'),_0x3ddf('0x5c'),_0x3ddf('0x5d'),_0x3ddf('0x5e'),_0x3ddf('0x5f'),_0x3ddf('0x60'),'tokenSecret']})[_0x3ddf('0x29')](handleEntityNotFound(_0x1f44d6,null))[_0x3ddf('0x29')](function(_0x16cad4){if(_0x16cad4){_0x178b51=_0x16cad4[_0x3ddf('0x5a')];var _0x3d6e4d=_0x178b51[_0x3ddf('0x61')](-0x1);if(_0x3d6e4d==='/'){_0x178b51=_0x178b51['substring'](0x0,_0x178b51[_0x3ddf('0x62')](_0x3d6e4d));}var _0x14782c={'method':_0x3ddf('0x63'),'uri':util['format']('%s/custom_fields',_0x178b51),'headers':{'Content-Type':_0x3ddf('0x64'),'Accept':_0x3ddf('0x64')},'json':!![]};if(_0x16cad4[_0x3ddf('0x5b')]==='basic'){_0x14782c[_0x3ddf('0x65')][_0x3ddf('0x66')]=util[_0x3ddf('0x67')](_0x3ddf('0x68'),new Buffer(util[_0x3ddf('0x67')](_0x3ddf('0x69'),_0x16cad4[_0x3ddf('0x5c')],_0x16cad4['password']))[_0x3ddf('0x6a')](_0x3ddf('0x6b')));}return rp(_0x14782c)[_0x3ddf('0x29')](function(_0x2502df){return _0x1e15fa[_0x3ddf('0x6c')](_['map'](_0x2502df[_0x3ddf('0x6d')][_0x3ddf('0x6e')],function(_0x572ecd){return{'id':_0x572ecd['name'],'name':_0x572ecd['name'],'type':_0x572ecd[_0x3ddf('0x30')],'active':_0x572ecd[_0x3ddf('0x6f')],'label':_0x572ecd[_0x3ddf('0x70')],'custom':!![]};}));});}})['then'](function(_0x55ea99){return{'count':_0x55ea99['length'],'rows':_0x55ea99};})[_0x3ddf('0x29')](respondWithResult(_0x1f44d6,null))[_0x3ddf('0x42')](function(_0x4b4fae){var _0x11df83=_0x509f4f[_0x3ddf('0x35')]['test']?0x1f4:_0x4b4fae['statusCode']||0x1f4;logger[_0x3ddf('0x71')]('getFields,\x20%s,\x20%s,\x20%s',_0x3ddf('0x58'),_0x11df83,JSON[_0x3ddf('0x72')](_0x4b4fae));delete _0x4b4fae[_0x3ddf('0x2d')];if(_0x11df83===0x191){_0x11df83=0x190;}_0x1f44d6[_0x3ddf('0x1d')](_0x11df83)[_0x3ddf('0x73')](_0x509f4f[_0x3ddf('0x35')][_0x3ddf('0x74')]?{'message':_0x3ddf('0x75'),'statusCode':_0x4b4fae[_0x3ddf('0x76')]}:_0x4b4fae);});};