91666657b2bf696f13498679f6810528c625ede4
[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 _0xc6f8=['path','to-csv','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../components/integrations/configuration','jayson/promise','client','http','request','then','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','DeskAccount,\x20%s,\x20%s','message','info','catch','sendStatus','status','end','json','offset','limit','apply','reject','save','update','destroy','name','send','DeskAccount','rawAttributes','fieldName','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','VIRTUAL','options','count','includeAll','include','rows','show','merge','find','body','params','getConfigurations','findOne','DeskConfiguration','AccountId','getSubjects','Descriptions','getDescriptions','type','create','DeskField','Subjects','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','substring','lastIndexOf','format','application/json','headers','Basic\x20%s','base64','concat','_embedded','entries','active','label','test','statusCode','Wrong\x20credentials','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util'];(function(_0x2c0a61,_0x8dd5c4){var _0x4f4eab=function(_0x17036a){while(--_0x17036a){_0x2c0a61['push'](_0x2c0a61['shift']());}};_0x4f4eab(++_0x8dd5c4);}(_0xc6f8,0x6d));var _0x8c6f=function(_0x1b57cf,_0x35f32a){_0x1b57cf=_0x1b57cf-0x0;var _0x3d03b2=_0xc6f8[_0x1b57cf];return _0x3d03b2;};'use strict';var pdf=require(_0x8c6f('0x0'));var emlformat=require(_0x8c6f('0x1'));var rimraf=require(_0x8c6f('0x2'));var zipdir=require(_0x8c6f('0x3'));var jsonpatch=require(_0x8c6f('0x4'));var rp=require('request-promise');var moment=require(_0x8c6f('0x5'));var BPromise=require(_0x8c6f('0x6'));var Mustache=require(_0x8c6f('0x7'));var util=require(_0x8c6f('0x8'));var path=require(_0x8c6f('0x9'));var sox=require('sox');var csv=require(_0x8c6f('0xa'));var ejs=require(_0x8c6f('0xb'));var fs=require('fs');var _=require(_0x8c6f('0xc'));var squel=require(_0x8c6f('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8c6f('0xe'));var toCsv=require(_0x8c6f('0xa'));var querystring=require('querystring');var Papa=require(_0x8c6f('0xf'));var Redis=require(_0x8c6f('0x10'));var authService=require(_0x8c6f('0x11'));var qs=require(_0x8c6f('0x12'));var as=require(_0x8c6f('0x13'));var hardwareService=require(_0x8c6f('0x14'));var logger=require(_0x8c6f('0x15'))(_0x8c6f('0x16'));var utils=require(_0x8c6f('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x8c6f('0x18'));var jayson=require(_0x8c6f('0x19'));var client=jayson[_0x8c6f('0x1a')][_0x8c6f('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x41ab98,_0x32d207,_0x49f70b,_0x1c67f9){return new BPromise(function(_0x2b887b,_0x30ff81){var _0x39f79b=_0x1c67f9||client;return _0x39f79b[_0x8c6f('0x1c')](_0x41ab98,_0x49f70b)[_0x8c6f('0x1d')](function(_0x24defe){logger['info']('DeskAccount,\x20%s,\x20%s',_0x32d207,_0x8c6f('0x1e'));logger[_0x8c6f('0x1f')](_0x8c6f('0x20'),_0x32d207,_0x8c6f('0x1e'),JSON[_0x8c6f('0x21')](_0x24defe));if(_0x24defe[_0x8c6f('0x22')]){if(_0x24defe[_0x8c6f('0x22')][_0x8c6f('0x23')]===0x1f4){logger['error'](_0x8c6f('0x24'),_0x32d207,_0x24defe['error']['message']);return _0x30ff81(_0x24defe[_0x8c6f('0x22')][_0x8c6f('0x25')]);}logger[_0x8c6f('0x22')](_0x8c6f('0x24'),_0x32d207,_0x24defe['error']['message']);return _0x2b887b(_0x24defe[_0x8c6f('0x22')][_0x8c6f('0x25')]);}else{logger[_0x8c6f('0x26')]('DeskAccount,\x20%s,\x20%s',_0x32d207,_0x8c6f('0x1e'));_0x2b887b(_0x24defe['result']['message']);}})[_0x8c6f('0x27')](function(_0x1310a1){logger[_0x8c6f('0x22')](_0x8c6f('0x24'),_0x32d207,_0x1310a1);_0x30ff81(_0x1310a1);});});}function respondWithStatusCode(_0x56bc65,_0x5e8fbb){_0x5e8fbb=_0x5e8fbb||0xcc;return function(_0x46aa14){if(_0x46aa14){return _0x56bc65[_0x8c6f('0x28')](_0x5e8fbb);}return _0x56bc65[_0x8c6f('0x29')](_0x5e8fbb)[_0x8c6f('0x2a')]();};}function respondWithResult(_0x4950bd,_0x3e771a){_0x3e771a=_0x3e771a||0xc8;return function(_0x1b1be1){if(_0x1b1be1){return _0x4950bd[_0x8c6f('0x29')](_0x3e771a)[_0x8c6f('0x2b')](_0x1b1be1);}};}function respondWithFilteredResult(_0x4201d9,_0x3c4158){return function(_0x285711){if(_0x285711){var _0x309795=_0x285711['count'],_0x4b7d46=_0x3c4158['offset'],_0x460d84=_0x3c4158[_0x8c6f('0x2c')]+_0x3c4158[_0x8c6f('0x2d')],_0x598a79;if(_0x460d84>=_0x309795){_0x460d84=_0x309795;_0x598a79=0xc8;}else{_0x598a79=0xce;}_0x4201d9[_0x8c6f('0x29')](_0x598a79);return _0x4201d9['set']('Content-Range',_0x4b7d46+'-'+_0x460d84+'/'+_0x309795)[_0x8c6f('0x2b')](_0x285711);}return null;};}function patchUpdates(_0x1d12d6){return function(_0x28934c){try{jsonpatch[_0x8c6f('0x2e')](_0x28934c,_0x1d12d6,!![]);}catch(_0x177f19){return BPromise[_0x8c6f('0x2f')](_0x177f19);}return _0x28934c[_0x8c6f('0x30')]();};}function saveUpdates(_0x2772f0,_0x2e0d3c){return function(_0x301457){if(_0x301457){return _0x301457[_0x8c6f('0x31')](_0x2772f0)['then'](function(_0xb58383){return _0xb58383;});}return null;};}function removeEntity(_0x5642b0,_0x1dc4b9){return function(_0x135478){if(_0x135478){return _0x135478[_0x8c6f('0x32')]()[_0x8c6f('0x1d')](function(){_0x5642b0[_0x8c6f('0x29')](0xcc)[_0x8c6f('0x2a')]();});}};}function handleEntityNotFound(_0x8e6f81,_0x4a7b81){return function(_0x2097e4){if(!_0x2097e4){_0x8e6f81['sendStatus'](0x194);}return _0x2097e4;};}function handleError(_0x42f649,_0x398bae){_0x398bae=_0x398bae||0x1f4;return function(_0x40cea3){logger['error'](_0x40cea3['stack']);if(_0x40cea3[_0x8c6f('0x33')]){delete _0x40cea3[_0x8c6f('0x33')];}_0x42f649[_0x8c6f('0x29')](_0x398bae)[_0x8c6f('0x34')](_0x40cea3);};}exports['index']=function(_0x2c789f,_0x3b6b99){var _0x260d93={},_0xaaa332={},_0x420fd3={'count':0x0,'rows':[]};var _0xbe3c80=_['map'](db[_0x8c6f('0x35')][_0x8c6f('0x36')],function(_0x24224c){return{'name':_0x24224c[_0x8c6f('0x37')],'type':_0x24224c['type']['key']};});_0xaaa332[_0x8c6f('0x38')]=_[_0x8c6f('0x39')](_0xbe3c80,_0x8c6f('0x33'));_0xaaa332[_0x8c6f('0x3a')]=_[_0x8c6f('0x3b')](_0x2c789f[_0x8c6f('0x3a')]);_0xaaa332[_0x8c6f('0x3c')]=_['intersection'](_0xaaa332[_0x8c6f('0x38')],_0xaaa332[_0x8c6f('0x3a')]);_0x260d93[_0x8c6f('0x3d')]=_[_0x8c6f('0x3e')](_0xaaa332['model'],qs['fields'](_0x2c789f[_0x8c6f('0x3a')][_0x8c6f('0x3f')]));_0x260d93['attributes']=_0x260d93[_0x8c6f('0x3d')][_0x8c6f('0x40')]?_0x260d93[_0x8c6f('0x3d')]:_0xaaa332[_0x8c6f('0x38')];if(!_0x2c789f[_0x8c6f('0x3a')][_0x8c6f('0x41')]('nolimit')){_0x260d93[_0x8c6f('0x2d')]=qs[_0x8c6f('0x2d')](_0x2c789f[_0x8c6f('0x3a')]['limit']);_0x260d93[_0x8c6f('0x2c')]=qs[_0x8c6f('0x2c')](_0x2c789f['query']['offset']);}_0x260d93[_0x8c6f('0x42')]=qs[_0x8c6f('0x43')](_0x2c789f[_0x8c6f('0x3a')][_0x8c6f('0x43')]);_0x260d93['where']=qs[_0x8c6f('0x3c')](_[_0x8c6f('0x44')](_0x2c789f['query'],_0xaaa332[_0x8c6f('0x3c')]),_0xbe3c80);if(_0x2c789f[_0x8c6f('0x3a')][_0x8c6f('0x45')]){_0x260d93['where']=_['merge'](_0x260d93[_0x8c6f('0x46')],{'$or':_[_0x8c6f('0x39')](_0xbe3c80,function(_0x37b461){if(_0x37b461['type']!==_0x8c6f('0x47')){var _0x5874e1={};_0x5874e1[_0x37b461[_0x8c6f('0x33')]]={'$like':'%'+_0x2c789f['query'][_0x8c6f('0x45')]+'%'};return _0x5874e1;}})});}_0x260d93=_['merge']({},_0x260d93,_0x2c789f[_0x8c6f('0x48')]);var _0x2a597a={'where':_0x260d93['where']};return db[_0x8c6f('0x35')]['count'](_0x2a597a)['then'](function(_0x4edba4){_0x420fd3[_0x8c6f('0x49')]=_0x4edba4;if(_0x2c789f['query'][_0x8c6f('0x4a')]){_0x260d93[_0x8c6f('0x4b')]=[{'all':!![]}];}return db[_0x8c6f('0x35')]['findAll'](_0x260d93);})[_0x8c6f('0x1d')](function(_0x3f2a3c){_0x420fd3[_0x8c6f('0x4c')]=_0x3f2a3c;return _0x420fd3;})['then'](respondWithFilteredResult(_0x3b6b99,_0x260d93))['catch'](handleError(_0x3b6b99,null));};exports[_0x8c6f('0x4d')]=function(_0x576acf,_0x5399b8){var _0x270acc={'raw':![],'where':{'id':_0x576acf['params']['id']}},_0xf3e952={};_0xf3e952['model']=_[_0x8c6f('0x3b')](db[_0x8c6f('0x35')]['rawAttributes']);_0xf3e952[_0x8c6f('0x3a')]=_['keys'](_0x576acf[_0x8c6f('0x3a')]);_0xf3e952[_0x8c6f('0x3c')]=_['intersection'](_0xf3e952[_0x8c6f('0x38')],_0xf3e952[_0x8c6f('0x3a')]);_0x270acc[_0x8c6f('0x3d')]=_['intersection'](_0xf3e952['model'],qs[_0x8c6f('0x3f')](_0x576acf[_0x8c6f('0x3a')][_0x8c6f('0x3f')]));_0x270acc[_0x8c6f('0x3d')]=_0x270acc[_0x8c6f('0x3d')][_0x8c6f('0x40')]?_0x270acc[_0x8c6f('0x3d')]:_0xf3e952[_0x8c6f('0x38')];if(_0x576acf[_0x8c6f('0x3a')]['includeAll']){_0x270acc['include']=[{'all':!![]}];}_0x270acc=_[_0x8c6f('0x4e')]({},_0x270acc,_0x576acf[_0x8c6f('0x48')]);return db[_0x8c6f('0x35')][_0x8c6f('0x4f')](_0x270acc)[_0x8c6f('0x1d')](handleEntityNotFound(_0x5399b8,null))[_0x8c6f('0x1d')](respondWithResult(_0x5399b8,null))['catch'](handleError(_0x5399b8,null));};exports['create']=function(_0x39fd33,_0x138038){return db[_0x8c6f('0x35')]['create'](_0x39fd33[_0x8c6f('0x50')],{})['then'](respondWithResult(_0x138038,0xc9))[_0x8c6f('0x27')](handleError(_0x138038,null));};exports[_0x8c6f('0x31')]=function(_0x3a6d40,_0x218a3a){if(_0x3a6d40[_0x8c6f('0x50')]['id']){delete _0x3a6d40[_0x8c6f('0x50')]['id'];}return db['DeskAccount'][_0x8c6f('0x4f')]({'where':{'id':_0x3a6d40[_0x8c6f('0x51')]['id']}})['then'](handleEntityNotFound(_0x218a3a,null))['then'](saveUpdates(_0x3a6d40[_0x8c6f('0x50')],null))['then'](respondWithResult(_0x218a3a,null))[_0x8c6f('0x27')](handleError(_0x218a3a,null));};exports['destroy']=function(_0x3495b4,_0x46012d){return db[_0x8c6f('0x35')][_0x8c6f('0x4f')]({'where':{'id':_0x3495b4[_0x8c6f('0x51')]['id']}})[_0x8c6f('0x1d')](handleEntityNotFound(_0x46012d,null))[_0x8c6f('0x1d')](removeEntity(_0x46012d,null))['catch'](handleError(_0x46012d,null));};exports[_0x8c6f('0x52')]=function(_0x13ee32,_0x47a738,_0x54e7fe){var _0x212b52={};var _0x48642a={};var _0x31e9db;var _0x324e24;return db['DeskAccount'][_0x8c6f('0x53')]({'where':{'id':_0x13ee32['params']['id']}})['then'](handleEntityNotFound(_0x47a738,null))['then'](function(_0x13592e){if(_0x13592e){_0x31e9db=_0x13592e;_0x48642a[_0x8c6f('0x38')]=_[_0x8c6f('0x3b')](db[_0x8c6f('0x54')][_0x8c6f('0x36')]);_0x48642a[_0x8c6f('0x3a')]=_['keys'](_0x13ee32[_0x8c6f('0x3a')]);_0x48642a[_0x8c6f('0x3c')]=_[_0x8c6f('0x3e')](_0x48642a['model'],_0x48642a[_0x8c6f('0x3a')]);_0x212b52[_0x8c6f('0x3d')]=_[_0x8c6f('0x3e')](_0x48642a[_0x8c6f('0x38')],qs[_0x8c6f('0x3f')](_0x13ee32['query'][_0x8c6f('0x3f')]));_0x212b52[_0x8c6f('0x3d')]=_0x212b52[_0x8c6f('0x3d')][_0x8c6f('0x40')]?_0x212b52[_0x8c6f('0x3d')]:_0x48642a[_0x8c6f('0x38')];_0x212b52[_0x8c6f('0x42')]=qs[_0x8c6f('0x43')](_0x13ee32['query'][_0x8c6f('0x43')]);_0x212b52[_0x8c6f('0x46')]=qs[_0x8c6f('0x3c')](_[_0x8c6f('0x44')](_0x13ee32[_0x8c6f('0x3a')],_0x48642a[_0x8c6f('0x3c')]));if(_0x13ee32[_0x8c6f('0x3a')][_0x8c6f('0x45')]){_0x212b52['where']=_[_0x8c6f('0x4e')](_0x212b52[_0x8c6f('0x46')],{'$or':_[_0x8c6f('0x39')](_0x212b52[_0x8c6f('0x3d')],function(_0x61437b){var _0x4ad6c9={};_0x4ad6c9[_0x61437b]={'$like':'%'+_0x13ee32['query']['filter']+'%'};return _0x4ad6c9;})});}_0x212b52=_[_0x8c6f('0x4e')]({},_0x212b52,_0x13ee32[_0x8c6f('0x48')]);return _0x31e9db['getConfigurations'](_0x212b52);}})[_0x8c6f('0x1d')](function(_0x46a3c9){if(_0x46a3c9){_0x324e24=_0x46a3c9['length'];if(!_0x13ee32['query'][_0x8c6f('0x41')]('nolimit')){_0x212b52[_0x8c6f('0x2d')]=qs[_0x8c6f('0x2d')](_0x13ee32[_0x8c6f('0x3a')][_0x8c6f('0x2d')]);_0x212b52[_0x8c6f('0x2c')]=qs[_0x8c6f('0x2c')](_0x13ee32[_0x8c6f('0x3a')][_0x8c6f('0x2c')]);}return _0x31e9db[_0x8c6f('0x52')](_0x212b52);}})[_0x8c6f('0x1d')](function(_0x4262e0){if(_0x4262e0){return _0x4262e0?{'count':_0x324e24,'rows':_0x4262e0}:null;}})[_0x8c6f('0x1d')](respondWithResult(_0x47a738,null))[_0x8c6f('0x27')](handleError(_0x47a738,null));};exports['addConfiguration']=function(_0x429e0e,_0x465b76,_0x36fc16){if(_0x429e0e[_0x8c6f('0x50')]['id']){delete _0x429e0e[_0x8c6f('0x50')]['id'];}return db['DeskAccount'][_0x8c6f('0x53')]({'where':{'id':_0x429e0e['params']['id']}})['then'](handleEntityNotFound(_0x465b76,null))['then'](function(_0x1518b3){if(_0x1518b3){_0x429e0e[_0x8c6f('0x50')][_0x8c6f('0x55')]=_0x1518b3['id'];_0x429e0e['body']['Subjects']=integrations[_0x8c6f('0x56')](_0x429e0e[_0x8c6f('0x50')]['channel'],_0x429e0e['body']['type']);_0x429e0e['body'][_0x8c6f('0x57')]=integrations[_0x8c6f('0x58')](_0x429e0e['body']['channel'],_0x429e0e[_0x8c6f('0x50')][_0x8c6f('0x59')]);return db[_0x8c6f('0x54')][_0x8c6f('0x5a')](_0x429e0e['body'],{'include':[{'model':db[_0x8c6f('0x5b')],'as':_0x8c6f('0x5c')},{'model':db[_0x8c6f('0x5b')],'as':'Descriptions'}]});}return null;})[_0x8c6f('0x1d')](respondWithResult(_0x465b76,null))[_0x8c6f('0x27')](handleError(_0x465b76,null));};exports[_0x8c6f('0x5d')]=function(_0x12ea42,_0xed83e3,_0x1bfaf8){var _0x435697=[{'name':_0x8c6f('0x5e'),'label':_0x8c6f('0x5e'),'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 _0x23d4bc='';return db['DeskAccount'][_0x8c6f('0x53')]({'where':{'id':_0x12ea42[_0x8c6f('0x51')]['id']},'attributes':['id',_0x8c6f('0x5f'),_0x8c6f('0x60'),_0x8c6f('0x61'),_0x8c6f('0x62'),_0x8c6f('0x63'),_0x8c6f('0x64'),_0x8c6f('0x65'),_0x8c6f('0x66')]})['then'](handleEntityNotFound(_0xed83e3,null))[_0x8c6f('0x1d')](function(_0x173449){if(_0x173449){_0x23d4bc=_0x173449[_0x8c6f('0x5f')];var _0x4c4f76=_0x23d4bc['slice'](-0x1);if(_0x4c4f76==='/'){_0x23d4bc=_0x23d4bc[_0x8c6f('0x67')](0x0,_0x23d4bc[_0x8c6f('0x68')](_0x4c4f76));}var _0x5949ef={'method':'GET','uri':util[_0x8c6f('0x69')]('%s/custom_fields',_0x23d4bc),'headers':{'Content-Type':_0x8c6f('0x6a'),'Accept':'application/json'},'json':!![]};if(_0x173449['authType']==='basic'){_0x5949ef[_0x8c6f('0x6b')]['Authorization']=util['format'](_0x8c6f('0x6c'),new Buffer(util[_0x8c6f('0x69')]('%s:%s',_0x173449['username'],_0x173449[_0x8c6f('0x62')]))['toString'](_0x8c6f('0x6d')));}return rp(_0x5949ef)[_0x8c6f('0x1d')](function(_0x52f007){return _0x435697[_0x8c6f('0x6e')](_[_0x8c6f('0x39')](_0x52f007[_0x8c6f('0x6f')][_0x8c6f('0x70')],function(_0x5cd1ea){return{'id':_0x5cd1ea[_0x8c6f('0x33')],'name':_0x5cd1ea['name'],'type':_0x5cd1ea[_0x8c6f('0x59')],'active':_0x5cd1ea[_0x8c6f('0x71')],'label':_0x5cd1ea[_0x8c6f('0x72')],'custom':!![]};}));});}})[_0x8c6f('0x1d')](function(_0x401466){return{'count':_0x401466[_0x8c6f('0x40')],'rows':_0x401466};})[_0x8c6f('0x1d')](respondWithResult(_0xed83e3,null))[_0x8c6f('0x27')](function(_0x5712d0){var _0x421e8c=_0x12ea42[_0x8c6f('0x3a')][_0x8c6f('0x73')]?0x1f4:_0x5712d0[_0x8c6f('0x74')]||0x1f4;logger[_0x8c6f('0x22')]('getFields,\x20%s,\x20%s,\x20%s',_0x8c6f('0x5d'),_0x421e8c,JSON['stringify'](_0x5712d0));delete _0x5712d0[_0x8c6f('0x33')];if(_0x421e8c===0x191){_0x421e8c=0x190;}_0xed83e3[_0x8c6f('0x29')](_0x421e8c)['send'](_0x12ea42[_0x8c6f('0x3a')]['test']?{'message':_0x8c6f('0x75'),'statusCode':_0x5712d0[_0x8c6f('0x74')]}:_0x5712d0);});};