76a12ad731853ddc9c59f647b26d99ca20e6aae2
[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 _0x39e0=['find','create','body','destroy','getConfigurations','findOne','order','nolimit','addConfiguration','AccountId','Subjects','type','getDescriptions','DeskConfiguration','DeskField','Descriptions','getFields','priority','remoteUri','authType','username','password','consumerKey','token','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','base64','concat','_embedded','entries','active','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','then','error','name','send','index','map','DeskAccount','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','include','findAll','catch','show','params','rawAttributes'];(function(_0x4e9d3c,_0x1f4b98){var _0x2d0825=function(_0x384676){while(--_0x384676){_0x4e9d3c['push'](_0x4e9d3c['shift']());}};_0x2d0825(++_0x1f4b98);}(_0x39e0,0x1e9));var _0x039e=function(_0x36aa02,_0x22844c){_0x36aa02=_0x36aa02-0x0;var _0x41c9c3=_0x39e0[_0x36aa02];return _0x41c9c3;};'use strict';var emlformat=require(_0x039e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x039e('0x1'));var jsonpatch=require(_0x039e('0x2'));var rp=require(_0x039e('0x3'));var moment=require('moment');var BPromise=require(_0x039e('0x4'));var Mustache=require(_0x039e('0x5'));var util=require(_0x039e('0x6'));var path=require('path');var sox=require(_0x039e('0x7'));var csv=require(_0x039e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x039e('0x9'));var _=require('lodash');var squel=require(_0x039e('0xa'));var crypto=require(_0x039e('0xb'));var jsforce=require(_0x039e('0xc'));var deskjs=require(_0x039e('0xd'));var toCsv=require(_0x039e('0x8'));var querystring=require(_0x039e('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x039e('0xf'));var qs=require(_0x039e('0x10'));var as=require(_0x039e('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x039e('0x12'));var utils=require(_0x039e('0x13'));var config=require(_0x039e('0x14'));var licenseUtil=require(_0x039e('0x15'));var db=require(_0x039e('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5d992f,_0x301252){_0x301252=_0x301252||0xcc;return function(_0x45a617){if(_0x45a617){return _0x5d992f[_0x039e('0x17')](_0x301252);}return _0x5d992f[_0x039e('0x18')](_0x301252)[_0x039e('0x19')]();};}function respondWithResult(_0x348d16,_0x51daaa){_0x51daaa=_0x51daaa||0xc8;return function(_0x4ece95){if(_0x4ece95){return _0x348d16[_0x039e('0x18')](_0x51daaa)['json'](_0x4ece95);}};}function respondWithFilteredResult(_0x144bc4,_0x453d99){return function(_0x37176c){if(_0x37176c){var _0x137be1=typeof _0x453d99[_0x039e('0x1a')]===_0x039e('0x1b')&&typeof _0x453d99[_0x039e('0x1c')]==='undefined';var _0x45520b=_0x37176c['count'];var _0x9cf319=_0x137be1?0x0:_0x453d99[_0x039e('0x1a')];var _0x4c66a2=_0x137be1?_0x37176c[_0x039e('0x1d')]:_0x453d99[_0x039e('0x1a')]+_0x453d99['limit'];var _0x110c51;if(_0x4c66a2>=_0x45520b){_0x4c66a2=_0x45520b;_0x110c51=0xc8;}else{_0x110c51=0xce;}_0x144bc4[_0x039e('0x18')](_0x110c51);return _0x144bc4[_0x039e('0x1e')](_0x039e('0x1f'),_0x9cf319+'-'+_0x4c66a2+'/'+_0x45520b)[_0x039e('0x20')](_0x37176c);}return null;};}function patchUpdates(_0x28892a){return function(_0x336477){try{jsonpatch['apply'](_0x336477,_0x28892a,!![]);}catch(_0xa555de){return BPromise[_0x039e('0x21')](_0xa555de);}return _0x336477[_0x039e('0x22')]();};}function saveUpdates(_0x38335c,_0x57337b){return function(_0x58b9a7){if(_0x58b9a7){return _0x58b9a7['update'](_0x38335c)['then'](function(_0x262b98){return _0x262b98;});}return null;};}function removeEntity(_0x50cce2,_0x1623ce){return function(_0x5c90db){if(_0x5c90db){return _0x5c90db['destroy']()[_0x039e('0x23')](function(){_0x50cce2[_0x039e('0x18')](0xcc)[_0x039e('0x19')]();});}};}function handleEntityNotFound(_0x901a19,_0x240427){return function(_0x2c7611){if(!_0x2c7611){_0x901a19[_0x039e('0x17')](0x194);}return _0x2c7611;};}function handleError(_0x2646be,_0x275b08){_0x275b08=_0x275b08||0x1f4;return function(_0x106d49){logger[_0x039e('0x24')](_0x106d49['stack']);if(_0x106d49['name']){delete _0x106d49[_0x039e('0x25')];}_0x2646be['status'](_0x275b08)[_0x039e('0x26')](_0x106d49);};}exports[_0x039e('0x27')]=function(_0x17ccb8,_0x159841){var _0x250210={},_0x55e567={},_0x38f002={'count':0x0,'rows':[]};var _0x5e1682=_[_0x039e('0x28')](db[_0x039e('0x29')]['rawAttributes'],function(_0x5443b8){return{'name':_0x5443b8[_0x039e('0x2a')],'type':_0x5443b8['type'][_0x039e('0x2b')]};});_0x55e567[_0x039e('0x2c')]=_[_0x039e('0x28')](_0x5e1682,'name');_0x55e567['query']=_[_0x039e('0x2d')](_0x17ccb8[_0x039e('0x2e')]);_0x55e567[_0x039e('0x2f')]=_[_0x039e('0x30')](_0x55e567[_0x039e('0x2c')],_0x55e567['query']);_0x250210[_0x039e('0x31')]=_[_0x039e('0x30')](_0x55e567[_0x039e('0x2c')],qs[_0x039e('0x32')](_0x17ccb8[_0x039e('0x2e')][_0x039e('0x32')]));_0x250210['attributes']=_0x250210['attributes'][_0x039e('0x33')]?_0x250210[_0x039e('0x31')]:_0x55e567[_0x039e('0x2c')];if(!_0x17ccb8['query'][_0x039e('0x34')]('nolimit')){_0x250210[_0x039e('0x1c')]=qs['limit'](_0x17ccb8[_0x039e('0x2e')][_0x039e('0x1c')]);_0x250210[_0x039e('0x1a')]=qs[_0x039e('0x1a')](_0x17ccb8[_0x039e('0x2e')][_0x039e('0x1a')]);}_0x250210['order']=qs[_0x039e('0x35')](_0x17ccb8[_0x039e('0x2e')]['sort']);_0x250210[_0x039e('0x36')]=qs[_0x039e('0x2f')](_[_0x039e('0x37')](_0x17ccb8[_0x039e('0x2e')],_0x55e567[_0x039e('0x2f')]),_0x5e1682);if(_0x17ccb8[_0x039e('0x2e')][_0x039e('0x38')]){_0x250210[_0x039e('0x36')]=_[_0x039e('0x39')](_0x250210[_0x039e('0x36')],{'$or':_['map'](_0x5e1682,function(_0x454590){if(_0x454590['type']!=='VIRTUAL'){var _0x1b8af6={};_0x1b8af6[_0x454590[_0x039e('0x25')]]={'$like':'%'+_0x17ccb8[_0x039e('0x2e')][_0x039e('0x38')]+'%'};return _0x1b8af6;}})});}_0x250210=_[_0x039e('0x39')]({},_0x250210,_0x17ccb8[_0x039e('0x3a')]);var _0x37f284={'where':_0x250210[_0x039e('0x36')]};return db['DeskAccount']['count'](_0x37f284)[_0x039e('0x23')](function(_0xa23a09){_0x38f002['count']=_0xa23a09;if(_0x17ccb8[_0x039e('0x2e')][_0x039e('0x3b')]){_0x250210[_0x039e('0x3c')]=[{'all':!![]}];}return db[_0x039e('0x29')][_0x039e('0x3d')](_0x250210);})[_0x039e('0x23')](function(_0xc4d28f){_0x38f002['rows']=_0xc4d28f;return _0x38f002;})['then'](respondWithFilteredResult(_0x159841,_0x250210))[_0x039e('0x3e')](handleError(_0x159841,null));};exports[_0x039e('0x3f')]=function(_0x43c91c,_0x548634){var _0x5396f3={'raw':![],'where':{'id':_0x43c91c[_0x039e('0x40')]['id']}},_0x30e458={};_0x30e458['model']=_[_0x039e('0x2d')](db['DeskAccount'][_0x039e('0x41')]);_0x30e458[_0x039e('0x2e')]=_[_0x039e('0x2d')](_0x43c91c[_0x039e('0x2e')]);_0x30e458[_0x039e('0x2f')]=_['intersection'](_0x30e458[_0x039e('0x2c')],_0x30e458[_0x039e('0x2e')]);_0x5396f3[_0x039e('0x31')]=_[_0x039e('0x30')](_0x30e458['model'],qs[_0x039e('0x32')](_0x43c91c[_0x039e('0x2e')][_0x039e('0x32')]));_0x5396f3[_0x039e('0x31')]=_0x5396f3['attributes'][_0x039e('0x33')]?_0x5396f3['attributes']:_0x30e458[_0x039e('0x2c')];if(_0x43c91c[_0x039e('0x2e')][_0x039e('0x3b')]){_0x5396f3[_0x039e('0x3c')]=[{'all':!![]}];}_0x5396f3=_[_0x039e('0x39')]({},_0x5396f3,_0x43c91c[_0x039e('0x3a')]);return db['DeskAccount'][_0x039e('0x42')](_0x5396f3)[_0x039e('0x23')](handleEntityNotFound(_0x548634,null))['then'](respondWithResult(_0x548634,null))[_0x039e('0x3e')](handleError(_0x548634,null));};exports[_0x039e('0x43')]=function(_0x4a263c,_0x478997){return db['DeskAccount'][_0x039e('0x43')](_0x4a263c['body'],{})['then'](respondWithResult(_0x478997,0xc9))['catch'](handleError(_0x478997,null));};exports['update']=function(_0x5bc536,_0x5783e8){if(_0x5bc536[_0x039e('0x44')]['id']){delete _0x5bc536['body']['id'];}return db['DeskAccount'][_0x039e('0x42')]({'where':{'id':_0x5bc536[_0x039e('0x40')]['id']}})['then'](handleEntityNotFound(_0x5783e8,null))[_0x039e('0x23')](saveUpdates(_0x5bc536[_0x039e('0x44')],null))['then'](respondWithResult(_0x5783e8,null))[_0x039e('0x3e')](handleError(_0x5783e8,null));};exports[_0x039e('0x45')]=function(_0x1a7448,_0x3ae1f0){return db[_0x039e('0x29')][_0x039e('0x42')]({'where':{'id':_0x1a7448[_0x039e('0x40')]['id']}})[_0x039e('0x23')](handleEntityNotFound(_0x3ae1f0,null))[_0x039e('0x23')](removeEntity(_0x3ae1f0,null))['catch'](handleError(_0x3ae1f0,null));};exports[_0x039e('0x46')]=function(_0x366303,_0x50f77a,_0x17f780){var _0x3a14df={};var _0x4456ac={};var _0x387118;var _0x1af700;return db[_0x039e('0x29')][_0x039e('0x47')]({'where':{'id':_0x366303[_0x039e('0x40')]['id']}})['then'](handleEntityNotFound(_0x50f77a,null))[_0x039e('0x23')](function(_0x446cf7){if(_0x446cf7){_0x387118=_0x446cf7;_0x4456ac[_0x039e('0x2c')]=_[_0x039e('0x2d')](db['DeskConfiguration'][_0x039e('0x41')]);_0x4456ac[_0x039e('0x2e')]=_[_0x039e('0x2d')](_0x366303['query']);_0x4456ac[_0x039e('0x2f')]=_[_0x039e('0x30')](_0x4456ac[_0x039e('0x2c')],_0x4456ac['query']);_0x3a14df[_0x039e('0x31')]=_[_0x039e('0x30')](_0x4456ac[_0x039e('0x2c')],qs['fields'](_0x366303[_0x039e('0x2e')][_0x039e('0x32')]));_0x3a14df['attributes']=_0x3a14df[_0x039e('0x31')][_0x039e('0x33')]?_0x3a14df[_0x039e('0x31')]:_0x4456ac[_0x039e('0x2c')];_0x3a14df[_0x039e('0x48')]=qs[_0x039e('0x35')](_0x366303[_0x039e('0x2e')][_0x039e('0x35')]);_0x3a14df['where']=qs['filters'](_[_0x039e('0x37')](_0x366303[_0x039e('0x2e')],_0x4456ac['filters']));if(_0x366303[_0x039e('0x2e')][_0x039e('0x38')]){_0x3a14df['where']=_[_0x039e('0x39')](_0x3a14df[_0x039e('0x36')],{'$or':_[_0x039e('0x28')](_0x3a14df[_0x039e('0x31')],function(_0x141d86){var _0x1c0018={};_0x1c0018[_0x141d86]={'$like':'%'+_0x366303[_0x039e('0x2e')][_0x039e('0x38')]+'%'};return _0x1c0018;})});}_0x3a14df=_['merge']({},_0x3a14df,_0x366303[_0x039e('0x3a')]);return _0x387118['getConfigurations'](_0x3a14df);}})['then'](function(_0x49191b){if(_0x49191b){_0x1af700=_0x49191b[_0x039e('0x33')];if(!_0x366303[_0x039e('0x2e')][_0x039e('0x34')](_0x039e('0x49'))){_0x3a14df[_0x039e('0x1c')]=qs[_0x039e('0x1c')](_0x366303[_0x039e('0x2e')][_0x039e('0x1c')]);_0x3a14df[_0x039e('0x1a')]=qs['offset'](_0x366303[_0x039e('0x2e')]['offset']);}return _0x387118['getConfigurations'](_0x3a14df);}})['then'](function(_0x41f5ea){if(_0x41f5ea){return _0x41f5ea?{'count':_0x1af700,'rows':_0x41f5ea}:null;}})[_0x039e('0x23')](respondWithResult(_0x50f77a,null))[_0x039e('0x3e')](handleError(_0x50f77a,null));};exports[_0x039e('0x4a')]=function(_0xf55eb0,_0x572e81,_0x2727ab){if(_0xf55eb0['body']['id']){delete _0xf55eb0[_0x039e('0x44')]['id'];}return db[_0x039e('0x29')][_0x039e('0x47')]({'where':{'id':_0xf55eb0[_0x039e('0x40')]['id']}})[_0x039e('0x23')](handleEntityNotFound(_0x572e81,null))[_0x039e('0x23')](function(_0x155c83){if(_0x155c83){_0xf55eb0['body'][_0x039e('0x4b')]=_0x155c83['id'];_0xf55eb0[_0x039e('0x44')][_0x039e('0x4c')]=integrations['getSubjects'](_0xf55eb0[_0x039e('0x44')]['channel'],_0xf55eb0[_0x039e('0x44')][_0x039e('0x4d')]);_0xf55eb0[_0x039e('0x44')]['Descriptions']=integrations[_0x039e('0x4e')](_0xf55eb0['body']['channel'],_0xf55eb0[_0x039e('0x44')][_0x039e('0x4d')]);return db[_0x039e('0x4f')][_0x039e('0x43')](_0xf55eb0[_0x039e('0x44')],{'include':[{'model':db['DeskField'],'as':'Subjects'},{'model':db[_0x039e('0x50')],'as':_0x039e('0x51')}]});}return null;})[_0x039e('0x23')](respondWithResult(_0x572e81,null))[_0x039e('0x3e')](handleError(_0x572e81,null));};exports[_0x039e('0x52')]=function(_0x17ba66,_0x343b5f,_0x1e6f24){var _0x23656c=[{'name':_0x039e('0x53'),'label':_0x039e('0x53'),'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 _0x2ee6fb='';return db[_0x039e('0x29')][_0x039e('0x47')]({'where':{'id':_0x17ba66['params']['id']},'attributes':['id',_0x039e('0x54'),_0x039e('0x55'),_0x039e('0x56'),_0x039e('0x57'),_0x039e('0x58'),'consumerSecret',_0x039e('0x59'),'tokenSecret']})['then'](handleEntityNotFound(_0x343b5f,null))[_0x039e('0x23')](function(_0x299529){if(_0x299529){_0x2ee6fb=_0x299529[_0x039e('0x54')];var _0x453218=_0x2ee6fb[_0x039e('0x5a')](-0x1);if(_0x453218==='/'){_0x2ee6fb=_0x2ee6fb[_0x039e('0x5b')](0x0,_0x2ee6fb[_0x039e('0x5c')](_0x453218));}var _0x3e4972={'method':_0x039e('0x5d'),'uri':util[_0x039e('0x5e')](_0x039e('0x5f'),_0x2ee6fb),'headers':{'Content-Type':_0x039e('0x60'),'Accept':_0x039e('0x60')},'json':!![]};if(_0x299529[_0x039e('0x55')]===_0x039e('0x61')){_0x3e4972[_0x039e('0x62')][_0x039e('0x63')]=util['format'](_0x039e('0x64'),new Buffer(util[_0x039e('0x5e')]('%s:%s',_0x299529['username'],_0x299529[_0x039e('0x57')]))['toString'](_0x039e('0x65')));}return rp(_0x3e4972)[_0x039e('0x23')](function(_0x4af077){return _0x23656c[_0x039e('0x66')](_[_0x039e('0x28')](_0x4af077[_0x039e('0x67')][_0x039e('0x68')],function(_0x14fde9){return{'id':_0x14fde9[_0x039e('0x25')],'name':_0x14fde9[_0x039e('0x25')],'type':_0x14fde9[_0x039e('0x4d')],'active':_0x14fde9[_0x039e('0x69')],'label':_0x14fde9[_0x039e('0x6a')],'custom':!![]};}));});}})[_0x039e('0x23')](function(_0x10902f){return{'count':_0x10902f['length'],'rows':_0x10902f};})[_0x039e('0x23')](respondWithResult(_0x343b5f,null))[_0x039e('0x3e')](function(_0x1f8c26){var _0x48f308=_0x17ba66['query'][_0x039e('0x6b')]?0x1f4:_0x1f8c26['statusCode']||0x1f4;logger[_0x039e('0x24')](_0x039e('0x6c'),_0x039e('0x52'),_0x48f308,JSON[_0x039e('0x6d')](_0x1f8c26));delete _0x1f8c26[_0x039e('0x25')];if(_0x48f308===0x191){_0x48f308=0x190;}_0x343b5f[_0x039e('0x18')](_0x48f308)[_0x039e('0x26')](_0x17ba66[_0x039e('0x2e')][_0x039e('0x6b')]?{'message':_0x039e('0x6e'),'statusCode':_0x1f8c26['statusCode']}:_0x1f8c26);});};