Built motion from commit (unavailable).|2.5.6
[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 _0x58e0=['type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','filtears','find','body','params','getConfigurations','findOne','DeskConfiguration','addConfiguration','Subjects','getSubjects','channel','getDescriptions','create','DeskField','Descriptions','priority','remoteUri','authType','password','consumerKey','consumerSecret','token','substring','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','%s:%s','concat','_embedded','active','label','test','getFields','html-pdf','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','jayson/promise','client','http','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','update','destroy','stack','name','send','map','DeskAccount','rawAttributes','fieldName'];(function(_0x4e6ae6,_0x49dba6){var _0x23c108=function(_0x1bc103){while(--_0x1bc103){_0x4e6ae6['push'](_0x4e6ae6['shift']());}};_0x23c108(++_0x49dba6);}(_0x58e0,0x19c));var _0x058e=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x58e0[_0x4565bf];return _0x5610ba;};'use strict';var pdf=require(_0x058e('0x0'));var emlformat=require(_0x058e('0x1'));var rimraf=require(_0x058e('0x2'));var zipdir=require(_0x058e('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x058e('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x058e('0x5'));var util=require(_0x058e('0x6'));var path=require(_0x058e('0x7'));var sox=require(_0x058e('0x8'));var csv=require('to-csv');var ejs=require(_0x058e('0x9'));var fs=require('fs');var _=require(_0x058e('0xa'));var squel=require('squel');var crypto=require(_0x058e('0xb'));var jsforce=require(_0x058e('0xc'));var deskjs=require(_0x058e('0xd'));var toCsv=require(_0x058e('0xe'));var querystring=require(_0x058e('0xf'));var Papa=require(_0x058e('0x10'));var Redis=require(_0x058e('0x11'));var authService=require(_0x058e('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x058e('0x13'));var hardwareService=require(_0x058e('0x14'));var logger=require('../../config/logger')(_0x058e('0x15'));var utils=require(_0x058e('0x16'));var config=require(_0x058e('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x058e('0x18'));var client=jayson[_0x058e('0x19')][_0x058e('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x2353ff,_0x3c7b93,_0x5d7759,_0x131f72){return new BPromise(function(_0x7affaa,_0x5a2590){var _0x43a1c7=_0x131f72||client;return _0x43a1c7[_0x058e('0x1b')](_0x2353ff,_0x5d7759)[_0x058e('0x1c')](function(_0x5dca4f){logger[_0x058e('0x1d')](_0x058e('0x1e'),_0x3c7b93,_0x058e('0x1f'));logger['debug'](_0x058e('0x20'),_0x3c7b93,_0x058e('0x1f'),JSON[_0x058e('0x21')](_0x5dca4f));if(_0x5dca4f['error']){if(_0x5dca4f['error']['code']===0x1f4){logger[_0x058e('0x22')]('DeskAccount,\x20%s,\x20%s',_0x3c7b93,_0x5dca4f['error'][_0x058e('0x23')]);return _0x5a2590(_0x5dca4f[_0x058e('0x22')]['message']);}logger[_0x058e('0x22')]('DeskAccount,\x20%s,\x20%s',_0x3c7b93,_0x5dca4f[_0x058e('0x22')][_0x058e('0x23')]);return _0x7affaa(_0x5dca4f['error']['message']);}else{logger[_0x058e('0x1d')](_0x058e('0x1e'),_0x3c7b93,'request\x20sent');_0x7affaa(_0x5dca4f[_0x058e('0x24')][_0x058e('0x23')]);}})[_0x058e('0x25')](function(_0x138bd6){logger[_0x058e('0x22')](_0x058e('0x1e'),_0x3c7b93,_0x138bd6);_0x5a2590(_0x138bd6);});});}function respondWithStatusCode(_0x37c3c1,_0x82e3e6){_0x82e3e6=_0x82e3e6||0xcc;return function(_0x116dbb){if(_0x116dbb){return _0x37c3c1[_0x058e('0x26')](_0x82e3e6);}return _0x37c3c1[_0x058e('0x27')](_0x82e3e6)['end']();};}function respondWithResult(_0x480c57,_0x4400f6){_0x4400f6=_0x4400f6||0xc8;return function(_0x190ec7){if(_0x190ec7){return _0x480c57[_0x058e('0x27')](_0x4400f6)[_0x058e('0x28')](_0x190ec7);}};}function respondWithFilteredResult(_0x2cacb9,_0x459abf){return function(_0x266008){if(_0x266008){var _0x10889d=_0x266008[_0x058e('0x29')],_0x481c20=_0x459abf[_0x058e('0x2a')],_0x4a30ed=_0x459abf[_0x058e('0x2a')]+_0x459abf[_0x058e('0x2b')],_0x2834d0;if(_0x4a30ed>=_0x10889d){_0x4a30ed=_0x10889d;_0x2834d0=0xc8;}else{_0x2834d0=0xce;}_0x2cacb9[_0x058e('0x27')](_0x2834d0);return _0x2cacb9[_0x058e('0x2c')](_0x058e('0x2d'),_0x481c20+'-'+_0x4a30ed+'/'+_0x10889d)[_0x058e('0x28')](_0x266008);}return null;};}function patchUpdates(_0xd87a14){return function(_0x2bd9d8){try{jsonpatch[_0x058e('0x2e')](_0x2bd9d8,_0xd87a14,!![]);}catch(_0x49411a){return BPromise['reject'](_0x49411a);}return _0x2bd9d8['save']();};}function saveUpdates(_0x1f752b,_0x195572){return function(_0x125ae7){if(_0x125ae7){return _0x125ae7[_0x058e('0x2f')](_0x1f752b)['then'](function(_0x570b46){return _0x570b46;});}return null;};}function removeEntity(_0x119ea9,_0x212fe6){return function(_0x42b05b){if(_0x42b05b){return _0x42b05b[_0x058e('0x30')]()[_0x058e('0x1c')](function(){_0x119ea9[_0x058e('0x27')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a995e,_0xdd6c78){return function(_0x1580a0){if(!_0x1580a0){_0x1a995e['sendStatus'](0x194);}return _0x1580a0;};}function handleError(_0x3e7911,_0x27b31c){_0x27b31c=_0x27b31c||0x1f4;return function(_0x3fce7d){logger['error'](_0x3fce7d[_0x058e('0x31')]);if(_0x3fce7d[_0x058e('0x32')]){delete _0x3fce7d[_0x058e('0x32')];}_0x3e7911['status'](_0x27b31c)[_0x058e('0x33')](_0x3fce7d);};}exports['index']=function(_0x5acd8b,_0x687c02){var _0x50e734={},_0x3418e4={},_0x16471e={'count':0x0,'rows':[]};var _0x56fdb6=_[_0x058e('0x34')](db[_0x058e('0x35')][_0x058e('0x36')],function(_0x46882a){return{'name':_0x46882a[_0x058e('0x37')],'type':_0x46882a[_0x058e('0x38')]['key']};});_0x3418e4[_0x058e('0x39')]=_[_0x058e('0x34')](_0x56fdb6,'name');_0x3418e4[_0x058e('0x3a')]=_[_0x058e('0x3b')](_0x5acd8b[_0x058e('0x3a')]);_0x3418e4[_0x058e('0x3c')]=_[_0x058e('0x3d')](_0x3418e4[_0x058e('0x39')],_0x3418e4['query']);_0x50e734[_0x058e('0x3e')]=_[_0x058e('0x3d')](_0x3418e4[_0x058e('0x39')],qs[_0x058e('0x3f')](_0x5acd8b['query'][_0x058e('0x3f')]));_0x50e734['attributes']=_0x50e734['attributes'][_0x058e('0x40')]?_0x50e734[_0x058e('0x3e')]:_0x3418e4[_0x058e('0x39')];if(!_0x5acd8b['query'][_0x058e('0x41')](_0x058e('0x42'))){_0x50e734[_0x058e('0x2b')]=qs['limit'](_0x5acd8b[_0x058e('0x3a')][_0x058e('0x2b')]);_0x50e734[_0x058e('0x2a')]=qs['offset'](_0x5acd8b[_0x058e('0x3a')][_0x058e('0x2a')]);}_0x50e734[_0x058e('0x43')]=qs['sort'](_0x5acd8b['query'][_0x058e('0x44')]);_0x50e734['where']=qs[_0x058e('0x3c')](_[_0x058e('0x45')](_0x5acd8b['query'],_0x3418e4['filters']),_0x56fdb6);if(_0x5acd8b[_0x058e('0x3a')][_0x058e('0x46')]){_0x50e734[_0x058e('0x47')]=_[_0x058e('0x48')](_0x50e734[_0x058e('0x47')],{'$or':_[_0x058e('0x34')](_0x56fdb6,function(_0x18786f){if(_0x18786f['type']!==_0x058e('0x49')){var _0x2fb21e={};_0x2fb21e[_0x18786f[_0x058e('0x32')]]={'$like':'%'+_0x5acd8b['query'][_0x058e('0x46')]+'%'};return _0x2fb21e;}})});}_0x50e734=_[_0x058e('0x48')]({},_0x50e734,_0x5acd8b[_0x058e('0x4a')]);var _0x5ea3ce={'where':_0x50e734['where']};return db[_0x058e('0x35')][_0x058e('0x29')](_0x5ea3ce)[_0x058e('0x1c')](function(_0x31f161){_0x16471e[_0x058e('0x29')]=_0x31f161;if(_0x5acd8b[_0x058e('0x3a')][_0x058e('0x4b')]){_0x50e734[_0x058e('0x4c')]=[{'all':!![]}];}return db[_0x058e('0x35')][_0x058e('0x4d')](_0x50e734);})[_0x058e('0x1c')](function(_0x2663d3){_0x16471e[_0x058e('0x4e')]=_0x2663d3;return _0x16471e;})['then'](respondWithFilteredResult(_0x687c02,_0x50e734))[_0x058e('0x25')](handleError(_0x687c02,null));};exports[_0x058e('0x4f')]=function(_0x45d8c8,_0x19bd62){var _0x1df8c5={'raw':![],'where':{'id':_0x45d8c8['params']['id']}},_0x16b0a0={};_0x16b0a0[_0x058e('0x39')]=_[_0x058e('0x3b')](db[_0x058e('0x35')][_0x058e('0x36')]);_0x16b0a0[_0x058e('0x3a')]=_[_0x058e('0x3b')](_0x45d8c8[_0x058e('0x3a')]);_0x16b0a0[_0x058e('0x50')]=_[_0x058e('0x3d')](_0x16b0a0[_0x058e('0x39')],_0x16b0a0[_0x058e('0x3a')]);_0x1df8c5[_0x058e('0x3e')]=_['intersection'](_0x16b0a0[_0x058e('0x39')],qs[_0x058e('0x3f')](_0x45d8c8['query'][_0x058e('0x3f')]));_0x1df8c5[_0x058e('0x3e')]=_0x1df8c5[_0x058e('0x3e')][_0x058e('0x40')]?_0x1df8c5['attributes']:_0x16b0a0['model'];if(_0x45d8c8[_0x058e('0x3a')][_0x058e('0x4b')]){_0x1df8c5[_0x058e('0x4c')]=[{'all':!![]}];}_0x1df8c5=_[_0x058e('0x48')]({},_0x1df8c5,_0x45d8c8[_0x058e('0x4a')]);return db['DeskAccount'][_0x058e('0x51')](_0x1df8c5)[_0x058e('0x1c')](handleEntityNotFound(_0x19bd62,null))[_0x058e('0x1c')](respondWithResult(_0x19bd62,null))['catch'](handleError(_0x19bd62,null));};exports['create']=function(_0x414138,_0x277528){return db[_0x058e('0x35')]['create'](_0x414138[_0x058e('0x52')],{})[_0x058e('0x1c')](respondWithResult(_0x277528,0xc9))[_0x058e('0x25')](handleError(_0x277528,null));};exports[_0x058e('0x2f')]=function(_0x5371e6,_0x491583){if(_0x5371e6['body']['id']){delete _0x5371e6['body']['id'];}return db[_0x058e('0x35')]['find']({'where':{'id':_0x5371e6['params']['id']}})['then'](handleEntityNotFound(_0x491583,null))[_0x058e('0x1c')](saveUpdates(_0x5371e6[_0x058e('0x52')],null))[_0x058e('0x1c')](respondWithResult(_0x491583,null))[_0x058e('0x25')](handleError(_0x491583,null));};exports[_0x058e('0x30')]=function(_0x574a75,_0x5c4811){return db['DeskAccount'][_0x058e('0x51')]({'where':{'id':_0x574a75[_0x058e('0x53')]['id']}})[_0x058e('0x1c')](handleEntityNotFound(_0x5c4811,null))[_0x058e('0x1c')](removeEntity(_0x5c4811,null))[_0x058e('0x25')](handleError(_0x5c4811,null));};exports[_0x058e('0x54')]=function(_0x150d81,_0x3baeff,_0x274914){var _0x21e253={};var _0x24cc70={};var _0x279047;var _0x3bab4f;return db[_0x058e('0x35')][_0x058e('0x55')]({'where':{'id':_0x150d81[_0x058e('0x53')]['id']}})[_0x058e('0x1c')](handleEntityNotFound(_0x3baeff,null))[_0x058e('0x1c')](function(_0x10e9d5){if(_0x10e9d5){_0x279047=_0x10e9d5;_0x24cc70[_0x058e('0x39')]=_[_0x058e('0x3b')](db[_0x058e('0x56')][_0x058e('0x36')]);_0x24cc70['query']=_['keys'](_0x150d81[_0x058e('0x3a')]);_0x24cc70[_0x058e('0x3c')]=_[_0x058e('0x3d')](_0x24cc70[_0x058e('0x39')],_0x24cc70[_0x058e('0x3a')]);_0x21e253['attributes']=_[_0x058e('0x3d')](_0x24cc70[_0x058e('0x39')],qs[_0x058e('0x3f')](_0x150d81[_0x058e('0x3a')][_0x058e('0x3f')]));_0x21e253['attributes']=_0x21e253[_0x058e('0x3e')][_0x058e('0x40')]?_0x21e253[_0x058e('0x3e')]:_0x24cc70[_0x058e('0x39')];_0x21e253['order']=qs[_0x058e('0x44')](_0x150d81['query']['sort']);_0x21e253[_0x058e('0x47')]=qs[_0x058e('0x3c')](_[_0x058e('0x45')](_0x150d81[_0x058e('0x3a')],_0x24cc70[_0x058e('0x3c')]));if(_0x150d81[_0x058e('0x3a')][_0x058e('0x46')]){_0x21e253[_0x058e('0x47')]=_[_0x058e('0x48')](_0x21e253[_0x058e('0x47')],{'$or':_[_0x058e('0x34')](_0x21e253[_0x058e('0x3e')],function(_0x4ef05a){var _0x590c42={};_0x590c42[_0x4ef05a]={'$like':'%'+_0x150d81[_0x058e('0x3a')][_0x058e('0x46')]+'%'};return _0x590c42;})});}_0x21e253=_['merge']({},_0x21e253,_0x150d81[_0x058e('0x4a')]);return _0x279047[_0x058e('0x54')](_0x21e253);}})[_0x058e('0x1c')](function(_0x4dd494){if(_0x4dd494){_0x3bab4f=_0x4dd494[_0x058e('0x40')];if(!_0x150d81[_0x058e('0x3a')]['hasOwnProperty'](_0x058e('0x42'))){_0x21e253[_0x058e('0x2b')]=qs['limit'](_0x150d81[_0x058e('0x3a')][_0x058e('0x2b')]);_0x21e253[_0x058e('0x2a')]=qs[_0x058e('0x2a')](_0x150d81[_0x058e('0x3a')][_0x058e('0x2a')]);}return _0x279047[_0x058e('0x54')](_0x21e253);}})[_0x058e('0x1c')](function(_0x22ba32){if(_0x22ba32){return _0x22ba32?{'count':_0x3bab4f,'rows':_0x22ba32}:null;}})['then'](respondWithResult(_0x3baeff,null))[_0x058e('0x25')](handleError(_0x3baeff,null));};exports[_0x058e('0x57')]=function(_0x4b8e9e,_0x7186fd,_0x3203e1){if(_0x4b8e9e[_0x058e('0x52')]['id']){delete _0x4b8e9e['body']['id'];}return db[_0x058e('0x35')]['findOne']({'where':{'id':_0x4b8e9e[_0x058e('0x53')]['id']}})[_0x058e('0x1c')](handleEntityNotFound(_0x7186fd,null))[_0x058e('0x1c')](function(_0x2d0894){if(_0x2d0894){_0x4b8e9e[_0x058e('0x52')]['AccountId']=_0x2d0894['id'];_0x4b8e9e['body'][_0x058e('0x58')]=integrations[_0x058e('0x59')](_0x4b8e9e[_0x058e('0x52')][_0x058e('0x5a')],_0x4b8e9e[_0x058e('0x52')][_0x058e('0x38')]);_0x4b8e9e[_0x058e('0x52')]['Descriptions']=integrations[_0x058e('0x5b')](_0x4b8e9e['body']['channel'],_0x4b8e9e[_0x058e('0x52')][_0x058e('0x38')]);return db[_0x058e('0x56')][_0x058e('0x5c')](_0x4b8e9e[_0x058e('0x52')],{'include':[{'model':db[_0x058e('0x5d')],'as':_0x058e('0x58')},{'model':db[_0x058e('0x5d')],'as':_0x058e('0x5e')}]});}return null;})[_0x058e('0x1c')](respondWithResult(_0x7186fd,null))[_0x058e('0x25')](handleError(_0x7186fd,null));};exports['getFields']=function(_0x220db0,_0x6808b6,_0x3f5be0){var _0x381394=[{'name':'priority','label':_0x058e('0x5f'),'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 _0x12b14f='';return db[_0x058e('0x35')][_0x058e('0x55')]({'where':{'id':_0x220db0[_0x058e('0x53')]['id']},'attributes':['id',_0x058e('0x60'),_0x058e('0x61'),'username',_0x058e('0x62'),_0x058e('0x63'),_0x058e('0x64'),_0x058e('0x65'),'tokenSecret']})['then'](handleEntityNotFound(_0x6808b6,null))[_0x058e('0x1c')](function(_0x189062){if(_0x189062){_0x12b14f=_0x189062[_0x058e('0x60')];var _0x1251c5=_0x12b14f['slice'](-0x1);if(_0x1251c5==='/'){_0x12b14f=_0x12b14f[_0x058e('0x66')](0x0,_0x12b14f['lastIndexOf'](_0x1251c5));}var _0x2895ac={'method':_0x058e('0x67'),'uri':util[_0x058e('0x68')](_0x058e('0x69'),_0x12b14f),'headers':{'Content-Type':_0x058e('0x6a'),'Accept':_0x058e('0x6a')},'json':!![]};if(_0x189062[_0x058e('0x61')]===_0x058e('0x6b')){_0x2895ac[_0x058e('0x6c')][_0x058e('0x6d')]=util[_0x058e('0x68')]('Basic\x20%s',new Buffer(util[_0x058e('0x68')](_0x058e('0x6e'),_0x189062['username'],_0x189062[_0x058e('0x62')]))['toString']('base64'));}return rp(_0x2895ac)['then'](function(_0x42f490){return _0x381394[_0x058e('0x6f')](_['map'](_0x42f490[_0x058e('0x70')]['entries'],function(_0x24f6fe){return{'id':_0x24f6fe[_0x058e('0x32')],'name':_0x24f6fe['name'],'type':_0x24f6fe[_0x058e('0x38')],'active':_0x24f6fe[_0x058e('0x71')],'label':_0x24f6fe[_0x058e('0x72')],'custom':!![]};}));});}})['then'](function(_0x478d5d){return{'count':_0x478d5d['length'],'rows':_0x478d5d};})[_0x058e('0x1c')](respondWithResult(_0x6808b6,null))[_0x058e('0x25')](function(_0x5f2abe){var _0x9efc31=_0x220db0[_0x058e('0x3a')][_0x058e('0x73')]?0x1f4:_0x5f2abe['statusCode']||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x058e('0x74'),_0x9efc31,JSON['stringify'](_0x5f2abe));delete _0x5f2abe[_0x058e('0x32')];if(_0x9efc31===0x191){_0x9efc31=0x190;}_0x6808b6[_0x058e('0x27')](_0x9efc31)['send'](_0x220db0[_0x058e('0x3a')][_0x058e('0x73')]?{'message':'Wrong\x20credentials','statusCode':_0x5f2abe['statusCode']}:_0x5f2abe);});};