Built motion from commit 10af8726.|2.6.34
[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 _0x609e=['AccountId','getSubjects','Descriptions','getDescriptions','channel','DeskField','Subjects','priority','remoteUri','username','password','consumerKey','consumerSecret','token','substring','application/json','authType','basic','Authorization','format','Basic\x20%s','toString','base64','concat','_embedded','entries','active','label','statusCode','getFields','stringify','test','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','then','destroy','end','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','DeskAccount','include','rows','catch','show','params','keys','intersection','includeAll','create','body','update','find','getConfigurations','DeskConfiguration','pick','findOne'];(function(_0x1eb108,_0x37d033){var _0x1b12e1=function(_0x2e636b){while(--_0x2e636b){_0x1eb108['push'](_0x1eb108['shift']());}};_0x1b12e1(++_0x37d033);}(_0x609e,0x1d8));var _0xe609=function(_0x5c351c,_0x2046d8){_0x5c351c=_0x5c351c-0x0;var _0x26f3b3=_0x609e[_0x5c351c];return _0x26f3b3;};'use strict';var emlformat=require(_0xe609('0x0'));var rimraf=require(_0xe609('0x1'));var zipdir=require(_0xe609('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe609('0x3'));var moment=require(_0xe609('0x4'));var BPromise=require(_0xe609('0x5'));var Mustache=require(_0xe609('0x6'));var util=require('util');var path=require(_0xe609('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xe609('0x8'));var fs=require('fs');var fs_extra=require(_0xe609('0x9'));var _=require('lodash');var squel=require(_0xe609('0xa'));var crypto=require(_0xe609('0xb'));var jsforce=require(_0xe609('0xc'));var deskjs=require(_0xe609('0xd'));var toCsv=require(_0xe609('0xe'));var querystring=require(_0xe609('0xf'));var Papa=require('papaparse');var Redis=require(_0xe609('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xe609('0x11'));var as=require(_0xe609('0x12'));var hardwareService=require(_0xe609('0x13'));var logger=require(_0xe609('0x14'))(_0xe609('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe609('0x16'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x82a6fb,_0x12ee18){_0x12ee18=_0x12ee18||0xcc;return function(_0x3ce4ab){if(_0x3ce4ab){return _0x82a6fb[_0xe609('0x17')](_0x12ee18);}return _0x82a6fb['status'](_0x12ee18)['end']();};}function respondWithResult(_0x12f1b5,_0x49e707){_0x49e707=_0x49e707||0xc8;return function(_0x52176f){if(_0x52176f){return _0x12f1b5[_0xe609('0x18')](_0x49e707)['json'](_0x52176f);}};}function respondWithFilteredResult(_0x46ab8c,_0x2a63b7){return function(_0x188554){if(_0x188554){var _0x1d0457=typeof _0x2a63b7[_0xe609('0x19')]===_0xe609('0x1a')&&typeof _0x2a63b7[_0xe609('0x1b')]===_0xe609('0x1a');var _0xe56a9a=_0x188554[_0xe609('0x1c')];var _0x4bead4=_0x1d0457?0x0:_0x2a63b7[_0xe609('0x19')];var _0x162934=_0x1d0457?_0x188554[_0xe609('0x1c')]:_0x2a63b7[_0xe609('0x19')]+_0x2a63b7['limit'];var _0x4fdd31;if(_0x162934>=_0xe56a9a){_0x162934=_0xe56a9a;_0x4fdd31=0xc8;}else{_0x4fdd31=0xce;}_0x46ab8c[_0xe609('0x18')](_0x4fdd31);return _0x46ab8c[_0xe609('0x1d')](_0xe609('0x1e'),_0x4bead4+'-'+_0x162934+'/'+_0xe56a9a)[_0xe609('0x1f')](_0x188554);}return null;};}function patchUpdates(_0x50e3a1){return function(_0x59f9c2){try{jsonpatch[_0xe609('0x20')](_0x59f9c2,_0x50e3a1,!![]);}catch(_0x1ce864){return BPromise[_0xe609('0x21')](_0x1ce864);}return _0x59f9c2[_0xe609('0x22')]();};}function saveUpdates(_0x1544f4,_0x56a3c8){return function(_0x16ec65){if(_0x16ec65){return _0x16ec65['update'](_0x1544f4)[_0xe609('0x23')](function(_0x3858a2){return _0x3858a2;});}return null;};}function removeEntity(_0x51b6d3,_0xe2d412){return function(_0x3c3149){if(_0x3c3149){return _0x3c3149[_0xe609('0x24')]()['then'](function(){_0x51b6d3[_0xe609('0x18')](0xcc)[_0xe609('0x25')]();});}};}function handleEntityNotFound(_0x45783b,_0x3970cd){return function(_0x2d00c4){if(!_0x2d00c4){_0x45783b[_0xe609('0x17')](0x194);}return _0x2d00c4;};}function handleError(_0x12b413,_0x310cde){_0x310cde=_0x310cde||0x1f4;return function(_0x2ad187){logger[_0xe609('0x26')](_0x2ad187[_0xe609('0x27')]);if(_0x2ad187[_0xe609('0x28')]){delete _0x2ad187[_0xe609('0x28')];}_0x12b413[_0xe609('0x18')](_0x310cde)[_0xe609('0x29')](_0x2ad187);};}exports['index']=function(_0xd409ae,_0x81d4e4){var _0x427338={},_0x19479e={},_0x4dab86={'count':0x0,'rows':[]};var _0x27b1b6=_[_0xe609('0x2a')](db['DeskAccount'][_0xe609('0x2b')],function(_0x5e2e11){return{'name':_0x5e2e11[_0xe609('0x2c')],'type':_0x5e2e11[_0xe609('0x2d')][_0xe609('0x2e')]};});_0x19479e[_0xe609('0x2f')]=_[_0xe609('0x2a')](_0x27b1b6,_0xe609('0x28'));_0x19479e[_0xe609('0x30')]=_['keys'](_0xd409ae[_0xe609('0x30')]);_0x19479e[_0xe609('0x31')]=_['intersection'](_0x19479e[_0xe609('0x2f')],_0x19479e[_0xe609('0x30')]);_0x427338[_0xe609('0x32')]=_['intersection'](_0x19479e[_0xe609('0x2f')],qs[_0xe609('0x33')](_0xd409ae[_0xe609('0x30')][_0xe609('0x33')]));_0x427338[_0xe609('0x32')]=_0x427338['attributes'][_0xe609('0x34')]?_0x427338[_0xe609('0x32')]:_0x19479e[_0xe609('0x2f')];if(!_0xd409ae[_0xe609('0x30')][_0xe609('0x35')](_0xe609('0x36'))){_0x427338[_0xe609('0x1b')]=qs[_0xe609('0x1b')](_0xd409ae[_0xe609('0x30')][_0xe609('0x1b')]);_0x427338[_0xe609('0x19')]=qs[_0xe609('0x19')](_0xd409ae['query'][_0xe609('0x19')]);}_0x427338['order']=qs[_0xe609('0x37')](_0xd409ae[_0xe609('0x30')]['sort']);_0x427338[_0xe609('0x38')]=qs['filters'](_['pick'](_0xd409ae['query'],_0x19479e[_0xe609('0x31')]),_0x27b1b6);if(_0xd409ae[_0xe609('0x30')][_0xe609('0x39')]){_0x427338[_0xe609('0x38')]=_[_0xe609('0x3a')](_0x427338['where'],{'$or':_[_0xe609('0x2a')](_0x27b1b6,function(_0x2659fe){if(_0x2659fe['type']!==_0xe609('0x3b')){var _0x51acde={};_0x51acde[_0x2659fe['name']]={'$like':'%'+_0xd409ae[_0xe609('0x30')][_0xe609('0x39')]+'%'};return _0x51acde;}})});}_0x427338=_[_0xe609('0x3a')]({},_0x427338,_0xd409ae[_0xe609('0x3c')]);var _0x5ea8cb={'where':_0x427338[_0xe609('0x38')]};return db[_0xe609('0x3d')][_0xe609('0x1c')](_0x5ea8cb)['then'](function(_0x38e5b9){_0x4dab86[_0xe609('0x1c')]=_0x38e5b9;if(_0xd409ae['query']['includeAll']){_0x427338[_0xe609('0x3e')]=[{'all':!![]}];}return db[_0xe609('0x3d')]['findAll'](_0x427338);})[_0xe609('0x23')](function(_0x171a7e){_0x4dab86[_0xe609('0x3f')]=_0x171a7e;return _0x4dab86;})[_0xe609('0x23')](respondWithFilteredResult(_0x81d4e4,_0x427338))[_0xe609('0x40')](handleError(_0x81d4e4,null));};exports[_0xe609('0x41')]=function(_0x119248,_0x90714){var _0x35d6ee={'raw':![],'where':{'id':_0x119248[_0xe609('0x42')]['id']}},_0x227a9e={};_0x227a9e[_0xe609('0x2f')]=_[_0xe609('0x43')](db['DeskAccount'][_0xe609('0x2b')]);_0x227a9e[_0xe609('0x30')]=_[_0xe609('0x43')](_0x119248['query']);_0x227a9e[_0xe609('0x31')]=_[_0xe609('0x44')](_0x227a9e['model'],_0x227a9e['query']);_0x35d6ee[_0xe609('0x32')]=_[_0xe609('0x44')](_0x227a9e[_0xe609('0x2f')],qs[_0xe609('0x33')](_0x119248[_0xe609('0x30')][_0xe609('0x33')]));_0x35d6ee[_0xe609('0x32')]=_0x35d6ee[_0xe609('0x32')][_0xe609('0x34')]?_0x35d6ee['attributes']:_0x227a9e[_0xe609('0x2f')];if(_0x119248[_0xe609('0x30')][_0xe609('0x45')]){_0x35d6ee[_0xe609('0x3e')]=[{'all':!![]}];}_0x35d6ee=_[_0xe609('0x3a')]({},_0x35d6ee,_0x119248[_0xe609('0x3c')]);return db['DeskAccount']['find'](_0x35d6ee)[_0xe609('0x23')](handleEntityNotFound(_0x90714,null))['then'](respondWithResult(_0x90714,null))[_0xe609('0x40')](handleError(_0x90714,null));};exports[_0xe609('0x46')]=function(_0x341e10,_0x224dde){return db[_0xe609('0x3d')][_0xe609('0x46')](_0x341e10[_0xe609('0x47')],{})[_0xe609('0x23')](respondWithResult(_0x224dde,0xc9))[_0xe609('0x40')](handleError(_0x224dde,null));};exports[_0xe609('0x48')]=function(_0x4fdb78,_0x12f846){if(_0x4fdb78[_0xe609('0x47')]['id']){delete _0x4fdb78[_0xe609('0x47')]['id'];}return db['DeskAccount'][_0xe609('0x49')]({'where':{'id':_0x4fdb78[_0xe609('0x42')]['id']}})[_0xe609('0x23')](handleEntityNotFound(_0x12f846,null))[_0xe609('0x23')](saveUpdates(_0x4fdb78[_0xe609('0x47')],null))['then'](respondWithResult(_0x12f846,null))['catch'](handleError(_0x12f846,null));};exports[_0xe609('0x24')]=function(_0x7055a5,_0x30e80d){return db['DeskAccount']['find']({'where':{'id':_0x7055a5['params']['id']}})[_0xe609('0x23')](handleEntityNotFound(_0x30e80d,null))[_0xe609('0x23')](removeEntity(_0x30e80d,null))[_0xe609('0x40')](handleError(_0x30e80d,null));};exports[_0xe609('0x4a')]=function(_0x1e5862,_0x520f08,_0x54e2b6){var _0xc77f56={};var _0x1d62bd={};var _0x5403e3;var _0x1be364;return db[_0xe609('0x3d')]['findOne']({'where':{'id':_0x1e5862[_0xe609('0x42')]['id']}})[_0xe609('0x23')](handleEntityNotFound(_0x520f08,null))[_0xe609('0x23')](function(_0x53f853){if(_0x53f853){_0x5403e3=_0x53f853;_0x1d62bd[_0xe609('0x2f')]=_[_0xe609('0x43')](db[_0xe609('0x4b')]['rawAttributes']);_0x1d62bd['query']=_[_0xe609('0x43')](_0x1e5862['query']);_0x1d62bd[_0xe609('0x31')]=_[_0xe609('0x44')](_0x1d62bd[_0xe609('0x2f')],_0x1d62bd[_0xe609('0x30')]);_0xc77f56[_0xe609('0x32')]=_[_0xe609('0x44')](_0x1d62bd[_0xe609('0x2f')],qs[_0xe609('0x33')](_0x1e5862['query']['fields']));_0xc77f56[_0xe609('0x32')]=_0xc77f56[_0xe609('0x32')]['length']?_0xc77f56[_0xe609('0x32')]:_0x1d62bd[_0xe609('0x2f')];_0xc77f56['order']=qs['sort'](_0x1e5862['query'][_0xe609('0x37')]);_0xc77f56[_0xe609('0x38')]=qs[_0xe609('0x31')](_[_0xe609('0x4c')](_0x1e5862[_0xe609('0x30')],_0x1d62bd[_0xe609('0x31')]));if(_0x1e5862[_0xe609('0x30')]['filter']){_0xc77f56['where']=_[_0xe609('0x3a')](_0xc77f56['where'],{'$or':_['map'](_0xc77f56[_0xe609('0x32')],function(_0x5f04a9){var _0x22cecd={};_0x22cecd[_0x5f04a9]={'$like':'%'+_0x1e5862[_0xe609('0x30')]['filter']+'%'};return _0x22cecd;})});}_0xc77f56=_[_0xe609('0x3a')]({},_0xc77f56,_0x1e5862['options']);return _0x5403e3['getConfigurations'](_0xc77f56);}})['then'](function(_0x579e1c){if(_0x579e1c){_0x1be364=_0x579e1c['length'];if(!_0x1e5862[_0xe609('0x30')][_0xe609('0x35')]('nolimit')){_0xc77f56[_0xe609('0x1b')]=qs['limit'](_0x1e5862[_0xe609('0x30')][_0xe609('0x1b')]);_0xc77f56[_0xe609('0x19')]=qs[_0xe609('0x19')](_0x1e5862[_0xe609('0x30')]['offset']);}return _0x5403e3[_0xe609('0x4a')](_0xc77f56);}})[_0xe609('0x23')](function(_0x472d40){if(_0x472d40){return _0x472d40?{'count':_0x1be364,'rows':_0x472d40}:null;}})[_0xe609('0x23')](respondWithResult(_0x520f08,null))[_0xe609('0x40')](handleError(_0x520f08,null));};exports['addConfiguration']=function(_0x4c0826,_0x2e90af,_0x345cbf){if(_0x4c0826[_0xe609('0x47')]['id']){delete _0x4c0826[_0xe609('0x47')]['id'];}return db[_0xe609('0x3d')][_0xe609('0x4d')]({'where':{'id':_0x4c0826['params']['id']}})[_0xe609('0x23')](handleEntityNotFound(_0x2e90af,null))[_0xe609('0x23')](function(_0x2044ca){if(_0x2044ca){_0x4c0826[_0xe609('0x47')][_0xe609('0x4e')]=_0x2044ca['id'];_0x4c0826['body']['Subjects']=integrations[_0xe609('0x4f')](_0x4c0826[_0xe609('0x47')]['channel'],_0x4c0826[_0xe609('0x47')]['type']);_0x4c0826['body'][_0xe609('0x50')]=integrations[_0xe609('0x51')](_0x4c0826[_0xe609('0x47')][_0xe609('0x52')],_0x4c0826[_0xe609('0x47')][_0xe609('0x2d')]);return db[_0xe609('0x4b')][_0xe609('0x46')](_0x4c0826[_0xe609('0x47')],{'include':[{'model':db[_0xe609('0x53')],'as':_0xe609('0x54')},{'model':db['DeskField'],'as':_0xe609('0x50')}]});}return null;})['then'](respondWithResult(_0x2e90af,null))[_0xe609('0x40')](handleError(_0x2e90af,null));};exports['getFields']=function(_0x171191,_0x257ca1,_0x32bb64){var _0x472c42=[{'name':_0xe609('0x55'),'label':_0xe609('0x55'),'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 _0x52b857='';return db['DeskAccount'][_0xe609('0x4d')]({'where':{'id':_0x171191[_0xe609('0x42')]['id']},'attributes':['id',_0xe609('0x56'),'authType',_0xe609('0x57'),_0xe609('0x58'),_0xe609('0x59'),_0xe609('0x5a'),_0xe609('0x5b'),'tokenSecret']})[_0xe609('0x23')](handleEntityNotFound(_0x257ca1,null))[_0xe609('0x23')](function(_0x40bf37){if(_0x40bf37){_0x52b857=_0x40bf37['remoteUri'];var _0x14494b=_0x52b857['slice'](-0x1);if(_0x14494b==='/'){_0x52b857=_0x52b857[_0xe609('0x5c')](0x0,_0x52b857['lastIndexOf'](_0x14494b));}var _0xe9d262={'method':'GET','uri':util['format']('%s/custom_fields',_0x52b857),'headers':{'Content-Type':_0xe609('0x5d'),'Accept':_0xe609('0x5d')},'json':!![]};if(_0x40bf37[_0xe609('0x5e')]===_0xe609('0x5f')){_0xe9d262['headers'][_0xe609('0x60')]=util[_0xe609('0x61')](_0xe609('0x62'),new Buffer(util[_0xe609('0x61')]('%s:%s',_0x40bf37[_0xe609('0x57')],_0x40bf37[_0xe609('0x58')]))[_0xe609('0x63')](_0xe609('0x64')));}return rp(_0xe9d262)[_0xe609('0x23')](function(_0x46c723){return _0x472c42[_0xe609('0x65')](_[_0xe609('0x2a')](_0x46c723[_0xe609('0x66')][_0xe609('0x67')],function(_0x54e0c1){return{'id':_0x54e0c1['name'],'name':_0x54e0c1['name'],'type':_0x54e0c1[_0xe609('0x2d')],'active':_0x54e0c1[_0xe609('0x68')],'label':_0x54e0c1[_0xe609('0x69')],'custom':!![]};}));});}})['then'](function(_0x1e935a){return{'count':_0x1e935a[_0xe609('0x34')],'rows':_0x1e935a};})[_0xe609('0x23')](respondWithResult(_0x257ca1,null))[_0xe609('0x40')](function(_0x3190ea){var _0x12c905=_0x171191[_0xe609('0x30')]['test']?0x1f4:_0x3190ea[_0xe609('0x6a')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xe609('0x6b'),_0x12c905,JSON[_0xe609('0x6c')](_0x3190ea));delete _0x3190ea[_0xe609('0x28')];if(_0x12c905===0x191){_0x12c905=0x190;}_0x257ca1['status'](_0x12c905)[_0xe609('0x29')](_0x171191[_0xe609('0x30')][_0xe609('0x6d')]?{'message':'Wrong\x20credentials','statusCode':_0x3190ea[_0xe609('0x6a')]}:_0x3190ea);});};