ee792ca3e04c8d0d08132e8101d3ae5d463d0d3b
[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 _0x554c=['DeskAccount','rawAttributes','type','key','keys','query','filters','intersection','fields','attributes','length','model','sort','merge','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','getConfigurations','findOne','DeskConfiguration','order','where','pick','hasOwnProperty','nolimit','addConfiguration','AccountId','Subjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','substring','lastIndexOf','GET','format','basic','headers','Authorization','toString','concat','_embedded','entries','active','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','error','name','send','map'];(function(_0x3743e5,_0x4b6bb9){var _0x370603=function(_0x1d8df1){while(--_0x1d8df1){_0x3743e5['push'](_0x3743e5['shift']());}};_0x370603(++_0x4b6bb9);}(_0x554c,0x127));var _0xc554=function(_0x2dbae6,_0x424afb){_0x2dbae6=_0x2dbae6-0x0;var _0x37f9ae=_0x554c[_0x2dbae6];return _0x37f9ae;};'use strict';var emlformat=require(_0xc554('0x0'));var rimraf=require(_0xc554('0x1'));var zipdir=require(_0xc554('0x2'));var jsonpatch=require(_0xc554('0x3'));var rp=require('request-promise');var moment=require(_0xc554('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc554('0x5'));var util=require(_0xc554('0x6'));var path=require(_0xc554('0x7'));var sox=require('sox');var csv=require(_0xc554('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc554('0x9'));var squel=require(_0xc554('0xa'));var crypto=require(_0xc554('0xb'));var jsforce=require(_0xc554('0xc'));var deskjs=require(_0xc554('0xd'));var toCsv=require(_0xc554('0x8'));var querystring=require(_0xc554('0xe'));var Papa=require(_0xc554('0xf'));var Redis=require(_0xc554('0x10'));var authService=require(_0xc554('0x11'));var qs=require(_0xc554('0x12'));var as=require(_0xc554('0x13'));var hardwareService=require(_0xc554('0x14'));var logger=require(_0xc554('0x15'))(_0xc554('0x16'));var utils=require(_0xc554('0x17'));var config=require(_0xc554('0x18'));var licenseUtil=require(_0xc554('0x19'));var db=require(_0xc554('0x1a'))['db'];var integrations=require(_0xc554('0x1b'));function respondWithStatusCode(_0x11ac26,_0x7ff077){_0x7ff077=_0x7ff077||0xcc;return function(_0x493c68){if(_0x493c68){return _0x11ac26[_0xc554('0x1c')](_0x7ff077);}return _0x11ac26[_0xc554('0x1d')](_0x7ff077)[_0xc554('0x1e')]();};}function respondWithResult(_0x1fc61c,_0x44df8){_0x44df8=_0x44df8||0xc8;return function(_0x4937bb){if(_0x4937bb){return _0x1fc61c[_0xc554('0x1d')](_0x44df8)[_0xc554('0x1f')](_0x4937bb);}};}function respondWithFilteredResult(_0x173f63,_0x2e99c5){return function(_0x54a34b){if(_0x54a34b){var _0x5b98d6=typeof _0x2e99c5[_0xc554('0x20')]===_0xc554('0x21')&&typeof _0x2e99c5[_0xc554('0x22')]===_0xc554('0x21');var _0x51c89b=_0x54a34b['count'];var _0x5009df=_0x5b98d6?0x0:_0x2e99c5[_0xc554('0x20')];var _0x6b2cf5=_0x5b98d6?_0x54a34b[_0xc554('0x23')]:_0x2e99c5[_0xc554('0x20')]+_0x2e99c5[_0xc554('0x22')];var _0x35bf8a;if(_0x6b2cf5>=_0x51c89b){_0x6b2cf5=_0x51c89b;_0x35bf8a=0xc8;}else{_0x35bf8a=0xce;}_0x173f63[_0xc554('0x1d')](_0x35bf8a);return _0x173f63[_0xc554('0x24')](_0xc554('0x25'),_0x5009df+'-'+_0x6b2cf5+'/'+_0x51c89b)[_0xc554('0x1f')](_0x54a34b);}return null;};}function patchUpdates(_0x3197e3){return function(_0x351f54){try{jsonpatch[_0xc554('0x26')](_0x351f54,_0x3197e3,!![]);}catch(_0x5633e1){return BPromise[_0xc554('0x27')](_0x5633e1);}return _0x351f54['save']();};}function saveUpdates(_0x1506ef,_0x4c9b3b){return function(_0x45624b){if(_0x45624b){return _0x45624b[_0xc554('0x28')](_0x1506ef)['then'](function(_0x433e9b){return _0x433e9b;});}return null;};}function removeEntity(_0x32a1fd,_0x1c80fb){return function(_0xb171bb){if(_0xb171bb){return _0xb171bb[_0xc554('0x29')]()[_0xc554('0x2a')](function(){_0x32a1fd[_0xc554('0x1d')](0xcc)[_0xc554('0x1e')]();});}};}function handleEntityNotFound(_0x4a6384,_0x176efe){return function(_0x53edcc){if(!_0x53edcc){_0x4a6384[_0xc554('0x1c')](0x194);}return _0x53edcc;};}function handleError(_0x5e636d,_0x7ed7ca){_0x7ed7ca=_0x7ed7ca||0x1f4;return function(_0x7f1ebc){logger[_0xc554('0x2b')](_0x7f1ebc['stack']);if(_0x7f1ebc[_0xc554('0x2c')]){delete _0x7f1ebc[_0xc554('0x2c')];}_0x5e636d[_0xc554('0x1d')](_0x7ed7ca)[_0xc554('0x2d')](_0x7f1ebc);};}exports['index']=function(_0x1287f4,_0x58cde9){var _0x6fef5a={},_0x4fc458={},_0x22fd71={'count':0x0,'rows':[]};var _0x50d3f3=_[_0xc554('0x2e')](db[_0xc554('0x2f')][_0xc554('0x30')],function(_0xe05459){return{'name':_0xe05459['fieldName'],'type':_0xe05459[_0xc554('0x31')][_0xc554('0x32')]};});_0x4fc458['model']=_['map'](_0x50d3f3,_0xc554('0x2c'));_0x4fc458['query']=_[_0xc554('0x33')](_0x1287f4[_0xc554('0x34')]);_0x4fc458[_0xc554('0x35')]=_[_0xc554('0x36')](_0x4fc458['model'],_0x4fc458['query']);_0x6fef5a['attributes']=_[_0xc554('0x36')](_0x4fc458['model'],qs['fields'](_0x1287f4[_0xc554('0x34')][_0xc554('0x37')]));_0x6fef5a[_0xc554('0x38')]=_0x6fef5a[_0xc554('0x38')][_0xc554('0x39')]?_0x6fef5a[_0xc554('0x38')]:_0x4fc458[_0xc554('0x3a')];if(!_0x1287f4[_0xc554('0x34')]['hasOwnProperty']('nolimit')){_0x6fef5a[_0xc554('0x22')]=qs[_0xc554('0x22')](_0x1287f4[_0xc554('0x34')][_0xc554('0x22')]);_0x6fef5a[_0xc554('0x20')]=qs[_0xc554('0x20')](_0x1287f4[_0xc554('0x34')]['offset']);}_0x6fef5a['order']=qs[_0xc554('0x3b')](_0x1287f4[_0xc554('0x34')][_0xc554('0x3b')]);_0x6fef5a['where']=qs[_0xc554('0x35')](_['pick'](_0x1287f4[_0xc554('0x34')],_0x4fc458[_0xc554('0x35')]),_0x50d3f3);if(_0x1287f4[_0xc554('0x34')]['filter']){_0x6fef5a['where']=_[_0xc554('0x3c')](_0x6fef5a['where'],{'$or':_[_0xc554('0x2e')](_0x50d3f3,function(_0x2cdcb0){if(_0x2cdcb0['type']!=='VIRTUAL'){var _0x3902fb={};_0x3902fb[_0x2cdcb0[_0xc554('0x2c')]]={'$like':'%'+_0x1287f4[_0xc554('0x34')]['filter']+'%'};return _0x3902fb;}})});}_0x6fef5a=_[_0xc554('0x3c')]({},_0x6fef5a,_0x1287f4[_0xc554('0x3d')]);var _0x4e26c4={'where':_0x6fef5a['where']};return db[_0xc554('0x2f')][_0xc554('0x23')](_0x4e26c4)[_0xc554('0x2a')](function(_0x5c33ea){_0x22fd71[_0xc554('0x23')]=_0x5c33ea;if(_0x1287f4[_0xc554('0x34')][_0xc554('0x3e')]){_0x6fef5a['include']=[{'all':!![]}];}return db[_0xc554('0x2f')][_0xc554('0x3f')](_0x6fef5a);})['then'](function(_0x5c2b57){_0x22fd71[_0xc554('0x40')]=_0x5c2b57;return _0x22fd71;})[_0xc554('0x2a')](respondWithFilteredResult(_0x58cde9,_0x6fef5a))[_0xc554('0x41')](handleError(_0x58cde9,null));};exports[_0xc554('0x42')]=function(_0x5168e5,_0x3d49fd){var _0x23e5f3={'raw':![],'where':{'id':_0x5168e5[_0xc554('0x43')]['id']}},_0x53bdff={};_0x53bdff[_0xc554('0x3a')]=_[_0xc554('0x33')](db[_0xc554('0x2f')][_0xc554('0x30')]);_0x53bdff['query']=_['keys'](_0x5168e5[_0xc554('0x34')]);_0x53bdff[_0xc554('0x35')]=_[_0xc554('0x36')](_0x53bdff[_0xc554('0x3a')],_0x53bdff[_0xc554('0x34')]);_0x23e5f3[_0xc554('0x38')]=_[_0xc554('0x36')](_0x53bdff['model'],qs[_0xc554('0x37')](_0x5168e5[_0xc554('0x34')][_0xc554('0x37')]));_0x23e5f3['attributes']=_0x23e5f3['attributes'][_0xc554('0x39')]?_0x23e5f3[_0xc554('0x38')]:_0x53bdff[_0xc554('0x3a')];if(_0x5168e5['query']['includeAll']){_0x23e5f3[_0xc554('0x44')]=[{'all':!![]}];}_0x23e5f3=_['merge']({},_0x23e5f3,_0x5168e5[_0xc554('0x3d')]);return db[_0xc554('0x2f')][_0xc554('0x45')](_0x23e5f3)[_0xc554('0x2a')](handleEntityNotFound(_0x3d49fd,null))[_0xc554('0x2a')](respondWithResult(_0x3d49fd,null))[_0xc554('0x41')](handleError(_0x3d49fd,null));};exports[_0xc554('0x46')]=function(_0x3173b8,_0x241f68){return db[_0xc554('0x2f')]['create'](_0x3173b8[_0xc554('0x47')],{})[_0xc554('0x2a')](respondWithResult(_0x241f68,0xc9))[_0xc554('0x41')](handleError(_0x241f68,null));};exports['update']=function(_0x3592aa,_0x130126){if(_0x3592aa[_0xc554('0x47')]['id']){delete _0x3592aa[_0xc554('0x47')]['id'];}return db[_0xc554('0x2f')][_0xc554('0x45')]({'where':{'id':_0x3592aa['params']['id']}})[_0xc554('0x2a')](handleEntityNotFound(_0x130126,null))[_0xc554('0x2a')](saveUpdates(_0x3592aa[_0xc554('0x47')],null))[_0xc554('0x2a')](respondWithResult(_0x130126,null))[_0xc554('0x41')](handleError(_0x130126,null));};exports['destroy']=function(_0x4c2b14,_0x4c7603){return db['DeskAccount'][_0xc554('0x45')]({'where':{'id':_0x4c2b14[_0xc554('0x43')]['id']}})[_0xc554('0x2a')](handleEntityNotFound(_0x4c7603,null))[_0xc554('0x2a')](removeEntity(_0x4c7603,null))[_0xc554('0x41')](handleError(_0x4c7603,null));};exports[_0xc554('0x48')]=function(_0x276161,_0x4e77aa,_0x31cc47){var _0x1214d6={};var _0x1f1309={};var _0xb95fb1;var _0x2595aa;return db[_0xc554('0x2f')][_0xc554('0x49')]({'where':{'id':_0x276161[_0xc554('0x43')]['id']}})[_0xc554('0x2a')](handleEntityNotFound(_0x4e77aa,null))[_0xc554('0x2a')](function(_0xc33439){if(_0xc33439){_0xb95fb1=_0xc33439;_0x1f1309[_0xc554('0x3a')]=_[_0xc554('0x33')](db[_0xc554('0x4a')]['rawAttributes']);_0x1f1309[_0xc554('0x34')]=_[_0xc554('0x33')](_0x276161['query']);_0x1f1309[_0xc554('0x35')]=_[_0xc554('0x36')](_0x1f1309[_0xc554('0x3a')],_0x1f1309['query']);_0x1214d6['attributes']=_[_0xc554('0x36')](_0x1f1309[_0xc554('0x3a')],qs[_0xc554('0x37')](_0x276161[_0xc554('0x34')][_0xc554('0x37')]));_0x1214d6[_0xc554('0x38')]=_0x1214d6[_0xc554('0x38')][_0xc554('0x39')]?_0x1214d6[_0xc554('0x38')]:_0x1f1309[_0xc554('0x3a')];_0x1214d6[_0xc554('0x4b')]=qs[_0xc554('0x3b')](_0x276161[_0xc554('0x34')][_0xc554('0x3b')]);_0x1214d6[_0xc554('0x4c')]=qs[_0xc554('0x35')](_[_0xc554('0x4d')](_0x276161[_0xc554('0x34')],_0x1f1309[_0xc554('0x35')]));if(_0x276161[_0xc554('0x34')]['filter']){_0x1214d6[_0xc554('0x4c')]=_[_0xc554('0x3c')](_0x1214d6['where'],{'$or':_[_0xc554('0x2e')](_0x1214d6[_0xc554('0x38')],function(_0x60abe9){var _0xfbf9fd={};_0xfbf9fd[_0x60abe9]={'$like':'%'+_0x276161[_0xc554('0x34')]['filter']+'%'};return _0xfbf9fd;})});}_0x1214d6=_[_0xc554('0x3c')]({},_0x1214d6,_0x276161['options']);return _0xb95fb1['getConfigurations'](_0x1214d6);}})[_0xc554('0x2a')](function(_0x363ca0){if(_0x363ca0){_0x2595aa=_0x363ca0[_0xc554('0x39')];if(!_0x276161['query'][_0xc554('0x4e')](_0xc554('0x4f'))){_0x1214d6[_0xc554('0x22')]=qs[_0xc554('0x22')](_0x276161[_0xc554('0x34')][_0xc554('0x22')]);_0x1214d6[_0xc554('0x20')]=qs[_0xc554('0x20')](_0x276161[_0xc554('0x34')][_0xc554('0x20')]);}return _0xb95fb1[_0xc554('0x48')](_0x1214d6);}})[_0xc554('0x2a')](function(_0x5c27b0){if(_0x5c27b0){return _0x5c27b0?{'count':_0x2595aa,'rows':_0x5c27b0}:null;}})[_0xc554('0x2a')](respondWithResult(_0x4e77aa,null))[_0xc554('0x41')](handleError(_0x4e77aa,null));};exports[_0xc554('0x50')]=function(_0x2e5a49,_0x35e61c,_0x3904b3){if(_0x2e5a49[_0xc554('0x47')]['id']){delete _0x2e5a49['body']['id'];}return db[_0xc554('0x2f')][_0xc554('0x49')]({'where':{'id':_0x2e5a49[_0xc554('0x43')]['id']}})[_0xc554('0x2a')](handleEntityNotFound(_0x35e61c,null))[_0xc554('0x2a')](function(_0x52d12c){if(_0x52d12c){_0x2e5a49[_0xc554('0x47')][_0xc554('0x51')]=_0x52d12c['id'];_0x2e5a49[_0xc554('0x47')][_0xc554('0x52')]=integrations['getSubjects'](_0x2e5a49[_0xc554('0x47')][_0xc554('0x53')],_0x2e5a49[_0xc554('0x47')][_0xc554('0x31')]);_0x2e5a49[_0xc554('0x47')][_0xc554('0x54')]=integrations[_0xc554('0x55')](_0x2e5a49['body'][_0xc554('0x53')],_0x2e5a49['body'][_0xc554('0x31')]);return db[_0xc554('0x4a')][_0xc554('0x46')](_0x2e5a49[_0xc554('0x47')],{'include':[{'model':db['DeskField'],'as':_0xc554('0x52')},{'model':db[_0xc554('0x56')],'as':_0xc554('0x54')}]});}return null;})[_0xc554('0x2a')](respondWithResult(_0x35e61c,null))[_0xc554('0x41')](handleError(_0x35e61c,null));};exports[_0xc554('0x57')]=function(_0x2ea0d5,_0x3f4cfb,_0x293da1){var _0x2af638=[{'name':_0xc554('0x58'),'label':_0xc554('0x58'),'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 _0x301584='';return db[_0xc554('0x2f')][_0xc554('0x49')]({'where':{'id':_0x2ea0d5[_0xc554('0x43')]['id']},'attributes':['id','remoteUri',_0xc554('0x59'),_0xc554('0x5a'),_0xc554('0x5b'),_0xc554('0x5c'),_0xc554('0x5d'),_0xc554('0x5e'),_0xc554('0x5f')]})['then'](handleEntityNotFound(_0x3f4cfb,null))[_0xc554('0x2a')](function(_0x479575){if(_0x479575){_0x301584=_0x479575['remoteUri'];var _0xf23b3f=_0x301584['slice'](-0x1);if(_0xf23b3f==='/'){_0x301584=_0x301584[_0xc554('0x60')](0x0,_0x301584[_0xc554('0x61')](_0xf23b3f));}var _0x14c837={'method':_0xc554('0x62'),'uri':util[_0xc554('0x63')]('%s/custom_fields',_0x301584),'headers':{'Content-Type':'application/json','Accept':'application/json'},'json':!![]};if(_0x479575['authType']===_0xc554('0x64')){_0x14c837[_0xc554('0x65')][_0xc554('0x66')]=util[_0xc554('0x63')]('Basic\x20%s',new Buffer(util[_0xc554('0x63')]('%s:%s',_0x479575[_0xc554('0x5a')],_0x479575[_0xc554('0x5b')]))[_0xc554('0x67')]('base64'));}return rp(_0x14c837)[_0xc554('0x2a')](function(_0x1d6bf4){return _0x2af638[_0xc554('0x68')](_[_0xc554('0x2e')](_0x1d6bf4[_0xc554('0x69')][_0xc554('0x6a')],function(_0x1ffd01){return{'id':_0x1ffd01['name'],'name':_0x1ffd01[_0xc554('0x2c')],'type':_0x1ffd01[_0xc554('0x31')],'active':_0x1ffd01[_0xc554('0x6b')],'label':_0x1ffd01[_0xc554('0x6c')],'custom':!![]};}));});}})[_0xc554('0x2a')](function(_0x4ea1d5){return{'count':_0x4ea1d5[_0xc554('0x39')],'rows':_0x4ea1d5};})[_0xc554('0x2a')](respondWithResult(_0x3f4cfb,null))[_0xc554('0x41')](function(_0x22f1da){var _0x5285ba=_0x2ea0d5[_0xc554('0x34')]['test']?0x1f4:_0x22f1da[_0xc554('0x6d')]||0x1f4;logger[_0xc554('0x2b')](_0xc554('0x6e'),_0xc554('0x57'),_0x5285ba,JSON[_0xc554('0x6f')](_0x22f1da));delete _0x22f1da['name'];if(_0x5285ba===0x191){_0x5285ba=0x190;}_0x3f4cfb['status'](_0x5285ba)[_0xc554('0x2d')](_0x2ea0d5[_0xc554('0x34')][_0xc554('0x70')]?{'message':_0xc554('0x71'),'statusCode':_0x22f1da[_0xc554('0x6d')]}:_0x22f1da);});};