477908efe20ce1b0b56414da6dd07621a6904ab6
[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 _0x0419=['client','request','info','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','DeskAccount,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','offset','set','Content-Range','apply','destroy','then','stack','name','send','index','key','model','map','keys','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','DeskAccount','count','includeAll','rows','params','rawAttributes','intersection','include','options','find','create','body','update','findOne','getConfigurations','limit','addConfiguration','AccountId','getSubjects','channel','type','Descriptions','getDescriptions','DeskConfiguration','Subjects','DeskField','getFields','priority','remoteUri','authType','username','consumerKey','consumerSecret','token','slice','substring','GET','%s/custom_fields','application/json','headers','Authorization','format','Basic\x20%s','%s:%s','password','toString','base64','concat','_embedded','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise'];(function(_0x3b4578,_0x7b3e3a){var _0x335324=function(_0x17e822){while(--_0x17e822){_0x3b4578['push'](_0x3b4578['shift']());}};_0x335324(++_0x7b3e3a);}(_0x0419,0x1da));var _0x9041=function(_0x229532,_0x1c0e67){_0x229532=_0x229532-0x0;var _0x598c8a=_0x0419[_0x229532];return _0x598c8a;};'use strict';var pdf=require(_0x9041('0x0'));var emlformat=require(_0x9041('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x9041('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9041('0x3'));var moment=require(_0x9041('0x4'));var BPromise=require(_0x9041('0x5'));var Mustache=require(_0x9041('0x6'));var util=require(_0x9041('0x7'));var path=require('path');var sox=require(_0x9041('0x8'));var csv=require('to-csv');var ejs=require(_0x9041('0x9'));var fs=require('fs');var _=require(_0x9041('0xa'));var squel=require('squel');var crypto=require(_0x9041('0xb'));var jsforce=require(_0x9041('0xc'));var deskjs=require(_0x9041('0xd'));var toCsv=require('to-csv');var querystring=require(_0x9041('0xe'));var Papa=require(_0x9041('0xf'));var Redis=require('ioredis');var authService=require(_0x9041('0x10'));var qs=require(_0x9041('0x11'));var as=require(_0x9041('0x12'));var hardwareService=require(_0x9041('0x13'));var logger=require('../../config/logger')(_0x9041('0x14'));var utils=require('../../config/utils');var config=require(_0x9041('0x15'));var licenseUtil=require(_0x9041('0x16'));var db=require(_0x9041('0x17'))['db'];var integrations=require(_0x9041('0x18'));var jayson=require(_0x9041('0x19'));var client=jayson[_0x9041('0x1a')]['http']({'port':0x232a});function respondWithRpcPromise(_0x362f8d,_0x11e6bf,_0x206d77,_0xfff60){return new BPromise(function(_0x1b7783,_0x29b16d){var _0x4af241=_0xfff60||client;return _0x4af241[_0x9041('0x1b')](_0x362f8d,_0x206d77)['then'](function(_0x3a3e8f){logger[_0x9041('0x1c')]('DeskAccount,\x20%s,\x20%s',_0x11e6bf,_0x9041('0x1d'));logger[_0x9041('0x1e')](_0x9041('0x1f'),_0x11e6bf,_0x9041('0x1d'),JSON[_0x9041('0x20')](_0x3a3e8f));if(_0x3a3e8f[_0x9041('0x21')]){if(_0x3a3e8f[_0x9041('0x21')]['code']===0x1f4){logger['error'](_0x9041('0x22'),_0x11e6bf,_0x3a3e8f[_0x9041('0x21')]['message']);return _0x29b16d(_0x3a3e8f[_0x9041('0x21')]['message']);}logger[_0x9041('0x21')](_0x9041('0x22'),_0x11e6bf,_0x3a3e8f['error'][_0x9041('0x23')]);return _0x1b7783(_0x3a3e8f[_0x9041('0x21')][_0x9041('0x23')]);}else{logger[_0x9041('0x1c')](_0x9041('0x22'),_0x11e6bf,_0x9041('0x1d'));_0x1b7783(_0x3a3e8f[_0x9041('0x24')][_0x9041('0x23')]);}})[_0x9041('0x25')](function(_0xcf0f67){logger[_0x9041('0x21')](_0x9041('0x22'),_0x11e6bf,_0xcf0f67);_0x29b16d(_0xcf0f67);});});}function respondWithStatusCode(_0x55d727,_0x4c53d1){_0x4c53d1=_0x4c53d1||0xcc;return function(_0x2ac2c9){if(_0x2ac2c9){return _0x55d727[_0x9041('0x26')](_0x4c53d1);}return _0x55d727[_0x9041('0x27')](_0x4c53d1)['end']();};}function respondWithResult(_0x52a264,_0x392860){_0x392860=_0x392860||0xc8;return function(_0x755cdb){if(_0x755cdb){return _0x52a264['status'](_0x392860)[_0x9041('0x28')](_0x755cdb);}};}function respondWithFilteredResult(_0x410e2b,_0x112bf9){return function(_0x374216){if(_0x374216){var _0x529a89=_0x374216['count'],_0x41206a=_0x112bf9['offset'],_0x138ae4=_0x112bf9[_0x9041('0x29')]+_0x112bf9['limit'],_0x3359b9;if(_0x138ae4>=_0x529a89){_0x138ae4=_0x529a89;_0x3359b9=0xc8;}else{_0x3359b9=0xce;}_0x410e2b[_0x9041('0x27')](_0x3359b9);return _0x410e2b[_0x9041('0x2a')](_0x9041('0x2b'),_0x41206a+'-'+_0x138ae4+'/'+_0x529a89)[_0x9041('0x28')](_0x374216);}return null;};}function patchUpdates(_0x16586f){return function(_0x6bde5f){try{jsonpatch[_0x9041('0x2c')](_0x6bde5f,_0x16586f,!![]);}catch(_0x2c57cb){return BPromise['reject'](_0x2c57cb);}return _0x6bde5f['save']();};}function saveUpdates(_0x26afc6,_0x38f913){return function(_0x193dcc){if(_0x193dcc){return _0x193dcc['update'](_0x26afc6)['then'](function(_0x466cef){return _0x466cef;});}return null;};}function removeEntity(_0x40f30e,_0x1413ee){return function(_0x50206e){if(_0x50206e){return _0x50206e[_0x9041('0x2d')]()[_0x9041('0x2e')](function(){_0x40f30e[_0x9041('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2d56fe,_0x54d380){return function(_0x35e9c1){if(!_0x35e9c1){_0x2d56fe[_0x9041('0x26')](0x194);}return _0x35e9c1;};}function handleError(_0x520d21,_0x3dc725){_0x3dc725=_0x3dc725||0x1f4;return function(_0x412620){logger[_0x9041('0x21')](_0x412620[_0x9041('0x2f')]);if(_0x412620[_0x9041('0x30')]){delete _0x412620[_0x9041('0x30')];}_0x520d21[_0x9041('0x27')](_0x3dc725)[_0x9041('0x31')](_0x412620);};}exports[_0x9041('0x32')]=function(_0x2258fa,_0x5b6b6c){var _0x1d62c8={},_0x26cb7f={},_0x5307d2={'count':0x0,'rows':[]};var _0x260101=_['map'](db['DeskAccount']['rawAttributes'],function(_0x5b7720){return{'name':_0x5b7720['fieldName'],'type':_0x5b7720['type'][_0x9041('0x33')]};});_0x26cb7f[_0x9041('0x34')]=_[_0x9041('0x35')](_0x260101,_0x9041('0x30'));_0x26cb7f['query']=_[_0x9041('0x36')](_0x2258fa[_0x9041('0x37')]);_0x26cb7f[_0x9041('0x38')]=_['intersection'](_0x26cb7f[_0x9041('0x34')],_0x26cb7f['query']);_0x1d62c8[_0x9041('0x39')]=_['intersection'](_0x26cb7f[_0x9041('0x34')],qs[_0x9041('0x3a')](_0x2258fa['query'][_0x9041('0x3a')]));_0x1d62c8['attributes']=_0x1d62c8[_0x9041('0x39')][_0x9041('0x3b')]?_0x1d62c8['attributes']:_0x26cb7f[_0x9041('0x34')];if(!_0x2258fa['query'][_0x9041('0x3c')](_0x9041('0x3d'))){_0x1d62c8['limit']=qs['limit'](_0x2258fa[_0x9041('0x37')]['limit']);_0x1d62c8['offset']=qs[_0x9041('0x29')](_0x2258fa[_0x9041('0x37')]['offset']);}_0x1d62c8[_0x9041('0x3e')]=qs[_0x9041('0x3f')](_0x2258fa['query'][_0x9041('0x3f')]);_0x1d62c8[_0x9041('0x40')]=qs[_0x9041('0x38')](_[_0x9041('0x41')](_0x2258fa[_0x9041('0x37')],_0x26cb7f[_0x9041('0x38')]),_0x260101);if(_0x2258fa[_0x9041('0x37')][_0x9041('0x42')]){_0x1d62c8[_0x9041('0x40')]=_[_0x9041('0x43')](_0x1d62c8['where'],{'$or':_[_0x9041('0x35')](_0x260101,function(_0x17e0ac){if(_0x17e0ac['type']!==_0x9041('0x44')){var _0x339806={};_0x339806[_0x17e0ac[_0x9041('0x30')]]={'$like':'%'+_0x2258fa[_0x9041('0x37')][_0x9041('0x42')]+'%'};return _0x339806;}})});}_0x1d62c8=_[_0x9041('0x43')]({},_0x1d62c8,_0x2258fa['options']);var _0x384864={'where':_0x1d62c8[_0x9041('0x40')]};return db[_0x9041('0x45')][_0x9041('0x46')](_0x384864)['then'](function(_0x430f7e){_0x5307d2[_0x9041('0x46')]=_0x430f7e;if(_0x2258fa['query'][_0x9041('0x47')]){_0x1d62c8['include']=[{'all':!![]}];}return db[_0x9041('0x45')]['findAll'](_0x1d62c8);})[_0x9041('0x2e')](function(_0x3614a8){_0x5307d2[_0x9041('0x48')]=_0x3614a8;return _0x5307d2;})['then'](respondWithFilteredResult(_0x5b6b6c,_0x1d62c8))['catch'](handleError(_0x5b6b6c,null));};exports['show']=function(_0x54072d,_0x2e31d9){var _0x2e54f9={'raw':![],'where':{'id':_0x54072d[_0x9041('0x49')]['id']}},_0x39a1b1={};_0x39a1b1[_0x9041('0x34')]=_['keys'](db['DeskAccount'][_0x9041('0x4a')]);_0x39a1b1[_0x9041('0x37')]=_[_0x9041('0x36')](_0x54072d[_0x9041('0x37')]);_0x39a1b1[_0x9041('0x38')]=_[_0x9041('0x4b')](_0x39a1b1[_0x9041('0x34')],_0x39a1b1[_0x9041('0x37')]);_0x2e54f9[_0x9041('0x39')]=_[_0x9041('0x4b')](_0x39a1b1['model'],qs[_0x9041('0x3a')](_0x54072d[_0x9041('0x37')][_0x9041('0x3a')]));_0x2e54f9[_0x9041('0x39')]=_0x2e54f9[_0x9041('0x39')][_0x9041('0x3b')]?_0x2e54f9[_0x9041('0x39')]:_0x39a1b1[_0x9041('0x34')];if(_0x54072d[_0x9041('0x37')]['includeAll']){_0x2e54f9[_0x9041('0x4c')]=[{'all':!![]}];}_0x2e54f9=_[_0x9041('0x43')]({},_0x2e54f9,_0x54072d[_0x9041('0x4d')]);return db[_0x9041('0x45')][_0x9041('0x4e')](_0x2e54f9)[_0x9041('0x2e')](handleEntityNotFound(_0x2e31d9,null))[_0x9041('0x2e')](respondWithResult(_0x2e31d9,null))[_0x9041('0x25')](handleError(_0x2e31d9,null));};exports[_0x9041('0x4f')]=function(_0x374870,_0x572f68){return db[_0x9041('0x45')][_0x9041('0x4f')](_0x374870[_0x9041('0x50')],{})[_0x9041('0x2e')](respondWithResult(_0x572f68,0xc9))[_0x9041('0x25')](handleError(_0x572f68,null));};exports[_0x9041('0x51')]=function(_0x35835d,_0xf950f4){if(_0x35835d[_0x9041('0x50')]['id']){delete _0x35835d['body']['id'];}return db[_0x9041('0x45')]['find']({'where':{'id':_0x35835d['params']['id']}})[_0x9041('0x2e')](handleEntityNotFound(_0xf950f4,null))[_0x9041('0x2e')](saveUpdates(_0x35835d[_0x9041('0x50')],null))[_0x9041('0x2e')](respondWithResult(_0xf950f4,null))[_0x9041('0x25')](handleError(_0xf950f4,null));};exports[_0x9041('0x2d')]=function(_0x35ab7e,_0x2eee06){return db[_0x9041('0x45')]['find']({'where':{'id':_0x35ab7e['params']['id']}})[_0x9041('0x2e')](handleEntityNotFound(_0x2eee06,null))[_0x9041('0x2e')](removeEntity(_0x2eee06,null))[_0x9041('0x25')](handleError(_0x2eee06,null));};exports['getConfigurations']=function(_0x1752be,_0x344251,_0x14f947){var _0x5e077d={};var _0x2ed14a={};var _0x4359b7;var _0x344dcb;return db[_0x9041('0x45')][_0x9041('0x52')]({'where':{'id':_0x1752be[_0x9041('0x49')]['id']}})[_0x9041('0x2e')](handleEntityNotFound(_0x344251,null))[_0x9041('0x2e')](function(_0x3835b){if(_0x3835b){_0x4359b7=_0x3835b;_0x2ed14a[_0x9041('0x34')]=_[_0x9041('0x36')](db['DeskConfiguration']['rawAttributes']);_0x2ed14a[_0x9041('0x37')]=_[_0x9041('0x36')](_0x1752be[_0x9041('0x37')]);_0x2ed14a['filters']=_['intersection'](_0x2ed14a[_0x9041('0x34')],_0x2ed14a[_0x9041('0x37')]);_0x5e077d[_0x9041('0x39')]=_['intersection'](_0x2ed14a[_0x9041('0x34')],qs[_0x9041('0x3a')](_0x1752be['query']['fields']));_0x5e077d[_0x9041('0x39')]=_0x5e077d['attributes'][_0x9041('0x3b')]?_0x5e077d[_0x9041('0x39')]:_0x2ed14a['model'];_0x5e077d[_0x9041('0x3e')]=qs[_0x9041('0x3f')](_0x1752be['query'][_0x9041('0x3f')]);_0x5e077d[_0x9041('0x40')]=qs[_0x9041('0x38')](_[_0x9041('0x41')](_0x1752be[_0x9041('0x37')],_0x2ed14a[_0x9041('0x38')]));if(_0x1752be[_0x9041('0x37')][_0x9041('0x42')]){_0x5e077d['where']=_[_0x9041('0x43')](_0x5e077d['where'],{'$or':_['map'](_0x5e077d['attributes'],function(_0x1dffd0){var _0x3cfd4f={};_0x3cfd4f[_0x1dffd0]={'$like':'%'+_0x1752be['query'][_0x9041('0x42')]+'%'};return _0x3cfd4f;})});}_0x5e077d=_['merge']({},_0x5e077d,_0x1752be[_0x9041('0x4d')]);return _0x4359b7[_0x9041('0x53')](_0x5e077d);}})[_0x9041('0x2e')](function(_0x4e94e7){if(_0x4e94e7){_0x344dcb=_0x4e94e7[_0x9041('0x3b')];if(!_0x1752be[_0x9041('0x37')][_0x9041('0x3c')](_0x9041('0x3d'))){_0x5e077d[_0x9041('0x54')]=qs[_0x9041('0x54')](_0x1752be['query'][_0x9041('0x54')]);_0x5e077d[_0x9041('0x29')]=qs['offset'](_0x1752be['query'][_0x9041('0x29')]);}return _0x4359b7['getConfigurations'](_0x5e077d);}})[_0x9041('0x2e')](function(_0xe6ffbe){if(_0xe6ffbe){return _0xe6ffbe?{'count':_0x344dcb,'rows':_0xe6ffbe}:null;}})[_0x9041('0x2e')](respondWithResult(_0x344251,null))[_0x9041('0x25')](handleError(_0x344251,null));};exports[_0x9041('0x55')]=function(_0x596f0c,_0x14d2c1,_0xaf84b){if(_0x596f0c[_0x9041('0x50')]['id']){delete _0x596f0c[_0x9041('0x50')]['id'];}return db[_0x9041('0x45')][_0x9041('0x52')]({'where':{'id':_0x596f0c[_0x9041('0x49')]['id']}})[_0x9041('0x2e')](handleEntityNotFound(_0x14d2c1,null))[_0x9041('0x2e')](function(_0xed824d){if(_0xed824d){_0x596f0c[_0x9041('0x50')][_0x9041('0x56')]=_0xed824d['id'];_0x596f0c[_0x9041('0x50')]['Subjects']=integrations[_0x9041('0x57')](_0x596f0c[_0x9041('0x50')][_0x9041('0x58')],_0x596f0c[_0x9041('0x50')][_0x9041('0x59')]);_0x596f0c[_0x9041('0x50')][_0x9041('0x5a')]=integrations[_0x9041('0x5b')](_0x596f0c['body'][_0x9041('0x58')],_0x596f0c['body'][_0x9041('0x59')]);return db[_0x9041('0x5c')][_0x9041('0x4f')](_0x596f0c['body'],{'include':[{'model':db['DeskField'],'as':_0x9041('0x5d')},{'model':db[_0x9041('0x5e')],'as':_0x9041('0x5a')}]});}return null;})[_0x9041('0x2e')](respondWithResult(_0x14d2c1,null))[_0x9041('0x25')](handleError(_0x14d2c1,null));};exports[_0x9041('0x5f')]=function(_0x48b64d,_0x371dd2,_0x555aaf){var _0x92b0ca=[{'name':_0x9041('0x60'),'label':_0x9041('0x60'),'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 _0x655fa1='';return db['DeskAccount']['findOne']({'where':{'id':_0x48b64d['params']['id']},'attributes':['id',_0x9041('0x61'),_0x9041('0x62'),_0x9041('0x63'),'password',_0x9041('0x64'),_0x9041('0x65'),_0x9041('0x66'),'tokenSecret']})[_0x9041('0x2e')](handleEntityNotFound(_0x371dd2,null))[_0x9041('0x2e')](function(_0x361cbb){if(_0x361cbb){_0x655fa1=_0x361cbb[_0x9041('0x61')];var _0x326c95=_0x655fa1[_0x9041('0x67')](-0x1);if(_0x326c95==='/'){_0x655fa1=_0x655fa1[_0x9041('0x68')](0x0,_0x655fa1['lastIndexOf'](_0x326c95));}var _0xb7d416={'method':_0x9041('0x69'),'uri':util['format'](_0x9041('0x6a'),_0x655fa1),'headers':{'Content-Type':'application/json','Accept':_0x9041('0x6b')},'json':!![]};if(_0x361cbb[_0x9041('0x62')]==='basic'){_0xb7d416[_0x9041('0x6c')][_0x9041('0x6d')]=util[_0x9041('0x6e')](_0x9041('0x6f'),new Buffer(util[_0x9041('0x6e')](_0x9041('0x70'),_0x361cbb[_0x9041('0x63')],_0x361cbb[_0x9041('0x71')]))[_0x9041('0x72')](_0x9041('0x73')));}return rp(_0xb7d416)[_0x9041('0x2e')](function(_0x5b8437){return _0x92b0ca[_0x9041('0x74')](_[_0x9041('0x35')](_0x5b8437[_0x9041('0x75')][_0x9041('0x76')],function(_0x34550d){return{'id':_0x34550d['name'],'name':_0x34550d[_0x9041('0x30')],'type':_0x34550d['type'],'active':_0x34550d[_0x9041('0x77')],'label':_0x34550d[_0x9041('0x78')],'custom':!![]};}));});}})[_0x9041('0x2e')](function(_0x4e1b66){return{'count':_0x4e1b66[_0x9041('0x3b')],'rows':_0x4e1b66};})[_0x9041('0x2e')](respondWithResult(_0x371dd2,null))[_0x9041('0x25')](function(_0x302456){var _0x60bbda=_0x48b64d[_0x9041('0x37')][_0x9041('0x79')]?0x1f4:_0x302456[_0x9041('0x7a')]||0x1f4;logger[_0x9041('0x21')](_0x9041('0x7b'),_0x9041('0x5f'),_0x60bbda,JSON['stringify'](_0x302456));delete _0x302456[_0x9041('0x30')];if(_0x60bbda===0x191){_0x60bbda=0x190;}_0x371dd2[_0x9041('0x27')](_0x60bbda)[_0x9041('0x31')](_0x48b64d['query'][_0x9041('0x79')]?{'message':_0x9041('0x7c'),'statusCode':_0x302456[_0x9041('0x7a')]}:_0x302456);});};