9a6f7cfb11a5bd92001cebcf2ae297958b06d73a
[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 _0xdbea=['consumerSecret','tokenSecret','remoteUri','slice','lastIndexOf','GET','format','basic','Authorization','%s:%s','toString','base64','concat','_embedded','entries','label','test','Wrong\x20credentials','html-pdf','rimraf','fast-json-patch','bluebird','util','path','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','client','request','then','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','destroy','stack','name','send','map','DeskAccount','rawAttributes','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','findAll','rows','keys','include','find','create','body','update','params','getConfigurations','DeskConfiguration','order','findOne','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','DeskField','getFields','priority','authType','username','password','consumerKey'];(function(_0x4baae2,_0x487ab6){var _0x1a2285=function(_0x1cea47){while(--_0x1cea47){_0x4baae2['push'](_0x4baae2['shift']());}};_0x1a2285(++_0x487ab6);}(_0xdbea,0xfc));var _0xadbe=function(_0x5b013d,_0xc7691c){_0x5b013d=_0x5b013d-0x0;var _0x2b6eef=_0xdbea[_0x5b013d];return _0x2b6eef;};'use strict';var pdf=require(_0xadbe('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xadbe('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xadbe('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xadbe('0x3'));var Mustache=require('mustache');var util=require(_0xadbe('0x4'));var path=require(_0xadbe('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xadbe('0x6'));var squel=require('squel');var crypto=require(_0xadbe('0x7'));var jsforce=require(_0xadbe('0x8'));var deskjs=require(_0xadbe('0x9'));var toCsv=require(_0xadbe('0xa'));var querystring=require(_0xadbe('0xb'));var Papa=require(_0xadbe('0xc'));var Redis=require(_0xadbe('0xd'));var authService=require(_0xadbe('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xadbe('0xf'));var hardwareService=require(_0xadbe('0x10'));var logger=require(_0xadbe('0x11'))('api');var utils=require('../../config/utils');var config=require(_0xadbe('0x12'));var licenseUtil=require(_0xadbe('0x13'));var db=require(_0xadbe('0x14'))['db'];var integrations=require(_0xadbe('0x15'));var jayson=require(_0xadbe('0x16'));var client=jayson[_0xadbe('0x17')]['http']({'port':0x232a});function respondWithRpcPromise(_0x57fba5,_0x5a5f73,_0x3cf84a,_0x38b6be){return new BPromise(function(_0x43addb,_0x54beeb){var _0x4b05c0=_0x38b6be||client;return _0x4b05c0[_0xadbe('0x18')](_0x57fba5,_0x3cf84a)[_0xadbe('0x19')](function(_0x675b37){logger[_0xadbe('0x1a')](_0xadbe('0x1b'),_0x5a5f73,_0xadbe('0x1c'));logger[_0xadbe('0x1d')](_0xadbe('0x1e'),_0x5a5f73,_0xadbe('0x1c'),JSON[_0xadbe('0x1f')](_0x675b37));if(_0x675b37['error']){if(_0x675b37[_0xadbe('0x20')][_0xadbe('0x21')]===0x1f4){logger[_0xadbe('0x20')](_0xadbe('0x1b'),_0x5a5f73,_0x675b37['error'][_0xadbe('0x22')]);return _0x54beeb(_0x675b37[_0xadbe('0x20')]['message']);}logger[_0xadbe('0x20')](_0xadbe('0x1b'),_0x5a5f73,_0x675b37[_0xadbe('0x20')][_0xadbe('0x22')]);return _0x43addb(_0x675b37[_0xadbe('0x20')][_0xadbe('0x22')]);}else{logger[_0xadbe('0x1a')](_0xadbe('0x1b'),_0x5a5f73,_0xadbe('0x1c'));_0x43addb(_0x675b37[_0xadbe('0x23')][_0xadbe('0x22')]);}})[_0xadbe('0x24')](function(_0x1414fb){logger[_0xadbe('0x20')]('DeskAccount,\x20%s,\x20%s',_0x5a5f73,_0x1414fb);_0x54beeb(_0x1414fb);});});}function respondWithStatusCode(_0x454245,_0x2beff1){_0x2beff1=_0x2beff1||0xcc;return function(_0x33abd2){if(_0x33abd2){return _0x454245[_0xadbe('0x25')](_0x2beff1);}return _0x454245[_0xadbe('0x26')](_0x2beff1)[_0xadbe('0x27')]();};}function respondWithResult(_0x4d5b07,_0x346a76){_0x346a76=_0x346a76||0xc8;return function(_0x4e8829){if(_0x4e8829){return _0x4d5b07[_0xadbe('0x26')](_0x346a76)[_0xadbe('0x28')](_0x4e8829);}};}function respondWithFilteredResult(_0x1cf027,_0x59c77a){return function(_0x33b786){if(_0x33b786){var _0xe42c3=_0x33b786[_0xadbe('0x29')],_0x4a0ce3=_0x59c77a[_0xadbe('0x2a')],_0x4c6654=_0x59c77a[_0xadbe('0x2a')]+_0x59c77a[_0xadbe('0x2b')],_0x273927;if(_0x4c6654>=_0xe42c3){_0x4c6654=_0xe42c3;_0x273927=0xc8;}else{_0x273927=0xce;}_0x1cf027[_0xadbe('0x26')](_0x273927);return _0x1cf027['set'](_0xadbe('0x2c'),_0x4a0ce3+'-'+_0x4c6654+'/'+_0xe42c3)[_0xadbe('0x28')](_0x33b786);}return null;};}function patchUpdates(_0x2a4bdf){return function(_0x39f28f){try{jsonpatch[_0xadbe('0x2d')](_0x39f28f,_0x2a4bdf,!![]);}catch(_0x41f776){return BPromise['reject'](_0x41f776);}return _0x39f28f['save']();};}function saveUpdates(_0xed5f7f,_0x37e3c4){return function(_0x2e2ca3){if(_0x2e2ca3){return _0x2e2ca3['update'](_0xed5f7f)[_0xadbe('0x19')](function(_0x413c0d){return _0x413c0d;});}return null;};}function removeEntity(_0x563f12,_0x5b85ee){return function(_0x56c736){if(_0x56c736){return _0x56c736[_0xadbe('0x2e')]()[_0xadbe('0x19')](function(){_0x563f12['status'](0xcc)[_0xadbe('0x27')]();});}};}function handleEntityNotFound(_0x255564,_0x95fdcc){return function(_0x4e7aa1){if(!_0x4e7aa1){_0x255564[_0xadbe('0x25')](0x194);}return _0x4e7aa1;};}function handleError(_0x2d47b7,_0x5b24ab){_0x5b24ab=_0x5b24ab||0x1f4;return function(_0x5145db){logger[_0xadbe('0x20')](_0x5145db[_0xadbe('0x2f')]);if(_0x5145db[_0xadbe('0x30')]){delete _0x5145db[_0xadbe('0x30')];}_0x2d47b7['status'](_0x5b24ab)[_0xadbe('0x31')](_0x5145db);};}exports['index']=function(_0xd1b46b,_0x4d9926){var _0x1a5519={},_0x29398b={},_0x88b643={'count':0x0,'rows':[]};var _0x44ddcc=_[_0xadbe('0x32')](db[_0xadbe('0x33')][_0xadbe('0x34')],function(_0x4107fc){return{'name':_0x4107fc[_0xadbe('0x35')],'type':_0x4107fc['type'][_0xadbe('0x36')]};});_0x29398b[_0xadbe('0x37')]=_['map'](_0x44ddcc,'name');_0x29398b[_0xadbe('0x38')]=_['keys'](_0xd1b46b[_0xadbe('0x38')]);_0x29398b[_0xadbe('0x39')]=_['intersection'](_0x29398b['model'],_0x29398b[_0xadbe('0x38')]);_0x1a5519[_0xadbe('0x3a')]=_[_0xadbe('0x3b')](_0x29398b['model'],qs['fields'](_0xd1b46b['query'][_0xadbe('0x3c')]));_0x1a5519[_0xadbe('0x3a')]=_0x1a5519[_0xadbe('0x3a')][_0xadbe('0x3d')]?_0x1a5519[_0xadbe('0x3a')]:_0x29398b[_0xadbe('0x37')];if(!_0xd1b46b[_0xadbe('0x38')][_0xadbe('0x3e')](_0xadbe('0x3f'))){_0x1a5519[_0xadbe('0x2b')]=qs['limit'](_0xd1b46b[_0xadbe('0x38')]['limit']);_0x1a5519[_0xadbe('0x2a')]=qs['offset'](_0xd1b46b[_0xadbe('0x38')][_0xadbe('0x2a')]);}_0x1a5519['order']=qs[_0xadbe('0x40')](_0xd1b46b[_0xadbe('0x38')]['sort']);_0x1a5519[_0xadbe('0x41')]=qs[_0xadbe('0x39')](_[_0xadbe('0x42')](_0xd1b46b[_0xadbe('0x38')],_0x29398b['filters']),_0x44ddcc);if(_0xd1b46b[_0xadbe('0x38')][_0xadbe('0x43')]){_0x1a5519['where']=_['merge'](_0x1a5519[_0xadbe('0x41')],{'$or':_['map'](_0x44ddcc,function(_0x3a44d6){if(_0x3a44d6[_0xadbe('0x44')]!==_0xadbe('0x45')){var _0x5f11bf={};_0x5f11bf[_0x3a44d6[_0xadbe('0x30')]]={'$like':'%'+_0xd1b46b[_0xadbe('0x38')]['filter']+'%'};return _0x5f11bf;}})});}_0x1a5519=_[_0xadbe('0x46')]({},_0x1a5519,_0xd1b46b[_0xadbe('0x47')]);var _0x33c1e3={'where':_0x1a5519[_0xadbe('0x41')]};return db[_0xadbe('0x33')][_0xadbe('0x29')](_0x33c1e3)[_0xadbe('0x19')](function(_0x74a63a){_0x88b643['count']=_0x74a63a;if(_0xd1b46b[_0xadbe('0x38')][_0xadbe('0x48')]){_0x1a5519['include']=[{'all':!![]}];}return db[_0xadbe('0x33')][_0xadbe('0x49')](_0x1a5519);})['then'](function(_0x5213c6){_0x88b643[_0xadbe('0x4a')]=_0x5213c6;return _0x88b643;})['then'](respondWithFilteredResult(_0x4d9926,_0x1a5519))[_0xadbe('0x24')](handleError(_0x4d9926,null));};exports['show']=function(_0x32312f,_0x1c8a21){var _0x1b1332={'raw':![],'where':{'id':_0x32312f['params']['id']}},_0x212068={};_0x212068[_0xadbe('0x37')]=_[_0xadbe('0x4b')](db[_0xadbe('0x33')][_0xadbe('0x34')]);_0x212068[_0xadbe('0x38')]=_[_0xadbe('0x4b')](_0x32312f[_0xadbe('0x38')]);_0x212068[_0xadbe('0x39')]=_['intersection'](_0x212068['model'],_0x212068[_0xadbe('0x38')]);_0x1b1332['attributes']=_[_0xadbe('0x3b')](_0x212068[_0xadbe('0x37')],qs[_0xadbe('0x3c')](_0x32312f[_0xadbe('0x38')][_0xadbe('0x3c')]));_0x1b1332[_0xadbe('0x3a')]=_0x1b1332[_0xadbe('0x3a')][_0xadbe('0x3d')]?_0x1b1332[_0xadbe('0x3a')]:_0x212068[_0xadbe('0x37')];if(_0x32312f[_0xadbe('0x38')][_0xadbe('0x48')]){_0x1b1332[_0xadbe('0x4c')]=[{'all':!![]}];}_0x1b1332=_[_0xadbe('0x46')]({},_0x1b1332,_0x32312f[_0xadbe('0x47')]);return db[_0xadbe('0x33')][_0xadbe('0x4d')](_0x1b1332)[_0xadbe('0x19')](handleEntityNotFound(_0x1c8a21,null))['then'](respondWithResult(_0x1c8a21,null))[_0xadbe('0x24')](handleError(_0x1c8a21,null));};exports[_0xadbe('0x4e')]=function(_0x212177,_0x5b0490){return db[_0xadbe('0x33')]['create'](_0x212177[_0xadbe('0x4f')],{})[_0xadbe('0x19')](respondWithResult(_0x5b0490,0xc9))[_0xadbe('0x24')](handleError(_0x5b0490,null));};exports[_0xadbe('0x50')]=function(_0x5b397b,_0x1254df){if(_0x5b397b[_0xadbe('0x4f')]['id']){delete _0x5b397b[_0xadbe('0x4f')]['id'];}return db[_0xadbe('0x33')][_0xadbe('0x4d')]({'where':{'id':_0x5b397b[_0xadbe('0x51')]['id']}})[_0xadbe('0x19')](handleEntityNotFound(_0x1254df,null))[_0xadbe('0x19')](saveUpdates(_0x5b397b['body'],null))[_0xadbe('0x19')](respondWithResult(_0x1254df,null))['catch'](handleError(_0x1254df,null));};exports['destroy']=function(_0x30f045,_0x4c616e){return db['DeskAccount']['find']({'where':{'id':_0x30f045['params']['id']}})[_0xadbe('0x19')](handleEntityNotFound(_0x4c616e,null))['then'](removeEntity(_0x4c616e,null))['catch'](handleError(_0x4c616e,null));};exports[_0xadbe('0x52')]=function(_0x1b9607,_0xc4443e,_0x278601){var _0x2359e3={};var _0x8d0beb={};var _0x9e0675;var _0x189e18;return db['DeskAccount']['findOne']({'where':{'id':_0x1b9607['params']['id']}})[_0xadbe('0x19')](handleEntityNotFound(_0xc4443e,null))[_0xadbe('0x19')](function(_0x1e3c7e){if(_0x1e3c7e){_0x9e0675=_0x1e3c7e;_0x8d0beb['model']=_['keys'](db[_0xadbe('0x53')][_0xadbe('0x34')]);_0x8d0beb[_0xadbe('0x38')]=_[_0xadbe('0x4b')](_0x1b9607[_0xadbe('0x38')]);_0x8d0beb[_0xadbe('0x39')]=_[_0xadbe('0x3b')](_0x8d0beb[_0xadbe('0x37')],_0x8d0beb[_0xadbe('0x38')]);_0x2359e3[_0xadbe('0x3a')]=_[_0xadbe('0x3b')](_0x8d0beb[_0xadbe('0x37')],qs['fields'](_0x1b9607[_0xadbe('0x38')][_0xadbe('0x3c')]));_0x2359e3[_0xadbe('0x3a')]=_0x2359e3[_0xadbe('0x3a')][_0xadbe('0x3d')]?_0x2359e3[_0xadbe('0x3a')]:_0x8d0beb[_0xadbe('0x37')];_0x2359e3[_0xadbe('0x54')]=qs['sort'](_0x1b9607[_0xadbe('0x38')]['sort']);_0x2359e3['where']=qs[_0xadbe('0x39')](_[_0xadbe('0x42')](_0x1b9607[_0xadbe('0x38')],_0x8d0beb[_0xadbe('0x39')]));if(_0x1b9607[_0xadbe('0x38')][_0xadbe('0x43')]){_0x2359e3[_0xadbe('0x41')]=_[_0xadbe('0x46')](_0x2359e3[_0xadbe('0x41')],{'$or':_['map'](_0x2359e3[_0xadbe('0x3a')],function(_0x5dca0d){var _0x28bffc={};_0x28bffc[_0x5dca0d]={'$like':'%'+_0x1b9607[_0xadbe('0x38')]['filter']+'%'};return _0x28bffc;})});}_0x2359e3=_[_0xadbe('0x46')]({},_0x2359e3,_0x1b9607[_0xadbe('0x47')]);return _0x9e0675['getConfigurations'](_0x2359e3);}})[_0xadbe('0x19')](function(_0x1463a2){if(_0x1463a2){_0x189e18=_0x1463a2[_0xadbe('0x3d')];if(!_0x1b9607[_0xadbe('0x38')]['hasOwnProperty'](_0xadbe('0x3f'))){_0x2359e3[_0xadbe('0x2b')]=qs['limit'](_0x1b9607[_0xadbe('0x38')][_0xadbe('0x2b')]);_0x2359e3[_0xadbe('0x2a')]=qs[_0xadbe('0x2a')](_0x1b9607[_0xadbe('0x38')]['offset']);}return _0x9e0675[_0xadbe('0x52')](_0x2359e3);}})[_0xadbe('0x19')](function(_0x4778ad){if(_0x4778ad){return _0x4778ad?{'count':_0x189e18,'rows':_0x4778ad}:null;}})[_0xadbe('0x19')](respondWithResult(_0xc4443e,null))[_0xadbe('0x24')](handleError(_0xc4443e,null));};exports['addConfiguration']=function(_0xa8d222,_0x3d7fdb,_0x543e28){if(_0xa8d222[_0xadbe('0x4f')]['id']){delete _0xa8d222[_0xadbe('0x4f')]['id'];}return db[_0xadbe('0x33')][_0xadbe('0x55')]({'where':{'id':_0xa8d222[_0xadbe('0x51')]['id']}})[_0xadbe('0x19')](handleEntityNotFound(_0x3d7fdb,null))[_0xadbe('0x19')](function(_0x5d105c){if(_0x5d105c){_0xa8d222['body'][_0xadbe('0x56')]=_0x5d105c['id'];_0xa8d222[_0xadbe('0x4f')][_0xadbe('0x57')]=integrations[_0xadbe('0x58')](_0xa8d222['body']['channel'],_0xa8d222[_0xadbe('0x4f')]['type']);_0xa8d222[_0xadbe('0x4f')][_0xadbe('0x59')]=integrations[_0xadbe('0x5a')](_0xa8d222[_0xadbe('0x4f')][_0xadbe('0x5b')],_0xa8d222[_0xadbe('0x4f')][_0xadbe('0x44')]);return db['DeskConfiguration'][_0xadbe('0x4e')](_0xa8d222[_0xadbe('0x4f')],{'include':[{'model':db[_0xadbe('0x5c')],'as':_0xadbe('0x57')},{'model':db[_0xadbe('0x5c')],'as':_0xadbe('0x59')}]});}return null;})[_0xadbe('0x19')](respondWithResult(_0x3d7fdb,null))[_0xadbe('0x24')](handleError(_0x3d7fdb,null));};exports[_0xadbe('0x5d')]=function(_0x14ddde,_0x51b452,_0x32436b){var _0x28442f=[{'name':_0xadbe('0x5e'),'label':_0xadbe('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 _0x4b5184='';return db[_0xadbe('0x33')][_0xadbe('0x55')]({'where':{'id':_0x14ddde[_0xadbe('0x51')]['id']},'attributes':['id','remoteUri',_0xadbe('0x5f'),_0xadbe('0x60'),_0xadbe('0x61'),_0xadbe('0x62'),_0xadbe('0x63'),'token',_0xadbe('0x64')]})[_0xadbe('0x19')](handleEntityNotFound(_0x51b452,null))[_0xadbe('0x19')](function(_0x1b1354){if(_0x1b1354){_0x4b5184=_0x1b1354[_0xadbe('0x65')];var _0x1fc3e8=_0x4b5184[_0xadbe('0x66')](-0x1);if(_0x1fc3e8==='/'){_0x4b5184=_0x4b5184['substring'](0x0,_0x4b5184[_0xadbe('0x67')](_0x1fc3e8));}var _0x5e8896={'method':_0xadbe('0x68'),'uri':util[_0xadbe('0x69')]('%s/custom_fields',_0x4b5184),'headers':{'Content-Type':'application/json','Accept':'application/json'},'json':!![]};if(_0x1b1354['authType']===_0xadbe('0x6a')){_0x5e8896['headers'][_0xadbe('0x6b')]=util[_0xadbe('0x69')]('Basic\x20%s',new Buffer(util['format'](_0xadbe('0x6c'),_0x1b1354[_0xadbe('0x60')],_0x1b1354['password']))[_0xadbe('0x6d')](_0xadbe('0x6e')));}return rp(_0x5e8896)['then'](function(_0x538b86){return _0x28442f[_0xadbe('0x6f')](_['map'](_0x538b86[_0xadbe('0x70')][_0xadbe('0x71')],function(_0x3b0d41){return{'id':_0x3b0d41[_0xadbe('0x30')],'name':_0x3b0d41[_0xadbe('0x30')],'type':_0x3b0d41[_0xadbe('0x44')],'active':_0x3b0d41['active'],'label':_0x3b0d41[_0xadbe('0x72')],'custom':!![]};}));});}})[_0xadbe('0x19')](function(_0x827186){return{'count':_0x827186[_0xadbe('0x3d')],'rows':_0x827186};})['then'](respondWithResult(_0x51b452,null))[_0xadbe('0x24')](function(_0x414abe){var _0x3083c2=_0x14ddde['query']['test']?0x1f4:_0x414abe['statusCode']||0x1f4;logger[_0xadbe('0x20')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x3083c2,JSON[_0xadbe('0x1f')](_0x414abe));delete _0x414abe[_0xadbe('0x30')];if(_0x3083c2===0x191){_0x3083c2=0x190;}_0x51b452[_0xadbe('0x26')](_0x3083c2)[_0xadbe('0x31')](_0x14ddde[_0xadbe('0x38')][_0xadbe('0x73')]?{'message':_0xadbe('0x74'),'statusCode':_0x414abe['statusCode']}:_0x414abe);});};