Built motion from commit e02f907f.|2.6.14
[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 _0x6061=['options','includeAll','include','findAll','catch','show','params','find','create','body','findOne','getConfigurations','AccountId','Subjects','getSubjects','channel','Descriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','substring','GET','%s/custom_fields','application/json','basic','headers','Authorization','format','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','entries','active','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','count','limit','json','apply','save','update','then','destroy','error','name','send','index','map','DeskAccount','rawAttributes','type','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL'];(function(_0x260a4c,_0x13672f){var _0x120e4a=function(_0x3f559b){while(--_0x3f559b){_0x260a4c['push'](_0x260a4c['shift']());}};_0x120e4a(++_0x13672f);}(_0x6061,0xa1));var _0x1606=function(_0x75ad53,_0x7a2edf){_0x75ad53=_0x75ad53-0x0;var _0x33af29=_0x6061[_0x75ad53];return _0x33af29;};'use strict';var emlformat=require(_0x1606('0x0'));var rimraf=require(_0x1606('0x1'));var zipdir=require(_0x1606('0x2'));var jsonpatch=require(_0x1606('0x3'));var rp=require(_0x1606('0x4'));var moment=require(_0x1606('0x5'));var BPromise=require(_0x1606('0x6'));var Mustache=require('mustache');var util=require(_0x1606('0x7'));var path=require(_0x1606('0x8'));var sox=require('sox');var csv=require(_0x1606('0x9'));var ejs=require(_0x1606('0xa'));var fs=require('fs');var fs_extra=require(_0x1606('0xb'));var _=require(_0x1606('0xc'));var squel=require('squel');var crypto=require(_0x1606('0xd'));var jsforce=require(_0x1606('0xe'));var deskjs=require(_0x1606('0xf'));var toCsv=require(_0x1606('0x9'));var querystring=require(_0x1606('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1606('0x11'));var as=require(_0x1606('0x12'));var hardwareService=require(_0x1606('0x13'));var logger=require('../../config/logger')(_0x1606('0x14'));var utils=require('../../config/utils');var config=require(_0x1606('0x15'));var licenseUtil=require(_0x1606('0x16'));var db=require(_0x1606('0x17'))['db'];var integrations=require(_0x1606('0x18'));function respondWithStatusCode(_0x196312,_0x2b5fd5){_0x2b5fd5=_0x2b5fd5||0xcc;return function(_0x2fbc23){if(_0x2fbc23){return _0x196312[_0x1606('0x19')](_0x2b5fd5);}return _0x196312[_0x1606('0x1a')](_0x2b5fd5)[_0x1606('0x1b')]();};}function respondWithResult(_0xf9b27a,_0x2fa3df){_0x2fa3df=_0x2fa3df||0xc8;return function(_0x1fe75b){if(_0x1fe75b){return _0xf9b27a['status'](_0x2fa3df)['json'](_0x1fe75b);}};}function respondWithFilteredResult(_0x2aec06,_0x113af1){return function(_0x58e502){if(_0x58e502){var _0x555e91=typeof _0x113af1[_0x1606('0x1c')]===_0x1606('0x1d')&&typeof _0x113af1['limit']==='undefined';var _0x55c2be=_0x58e502[_0x1606('0x1e')];var _0x3380cf=_0x555e91?0x0:_0x113af1[_0x1606('0x1c')];var _0x410f13=_0x555e91?_0x58e502[_0x1606('0x1e')]:_0x113af1[_0x1606('0x1c')]+_0x113af1[_0x1606('0x1f')];var _0x78eccd;if(_0x410f13>=_0x55c2be){_0x410f13=_0x55c2be;_0x78eccd=0xc8;}else{_0x78eccd=0xce;}_0x2aec06[_0x1606('0x1a')](_0x78eccd);return _0x2aec06['set']('Content-Range',_0x3380cf+'-'+_0x410f13+'/'+_0x55c2be)[_0x1606('0x20')](_0x58e502);}return null;};}function patchUpdates(_0x2005dd){return function(_0x233a9f){try{jsonpatch[_0x1606('0x21')](_0x233a9f,_0x2005dd,!![]);}catch(_0xdaa874){return BPromise['reject'](_0xdaa874);}return _0x233a9f[_0x1606('0x22')]();};}function saveUpdates(_0x7132b7,_0x59a856){return function(_0x356e08){if(_0x356e08){return _0x356e08[_0x1606('0x23')](_0x7132b7)[_0x1606('0x24')](function(_0x57759b){return _0x57759b;});}return null;};}function removeEntity(_0x2a6a52,_0x2d8e93){return function(_0x1589a9){if(_0x1589a9){return _0x1589a9[_0x1606('0x25')]()[_0x1606('0x24')](function(){_0x2a6a52[_0x1606('0x1a')](0xcc)[_0x1606('0x1b')]();});}};}function handleEntityNotFound(_0x5404f3,_0x22acf9){return function(_0xb1c517){if(!_0xb1c517){_0x5404f3['sendStatus'](0x194);}return _0xb1c517;};}function handleError(_0x578c51,_0x22b209){_0x22b209=_0x22b209||0x1f4;return function(_0x463019){logger[_0x1606('0x26')](_0x463019['stack']);if(_0x463019[_0x1606('0x27')]){delete _0x463019['name'];}_0x578c51[_0x1606('0x1a')](_0x22b209)[_0x1606('0x28')](_0x463019);};}exports[_0x1606('0x29')]=function(_0x24026c,_0x455d94){var _0x22c996={},_0x31d1fa={},_0x661e53={'count':0x0,'rows':[]};var _0x4f368d=_[_0x1606('0x2a')](db[_0x1606('0x2b')][_0x1606('0x2c')],function(_0x3a4da6){return{'name':_0x3a4da6['fieldName'],'type':_0x3a4da6[_0x1606('0x2d')][_0x1606('0x2e')]};});_0x31d1fa[_0x1606('0x2f')]=_[_0x1606('0x2a')](_0x4f368d,_0x1606('0x27'));_0x31d1fa[_0x1606('0x30')]=_[_0x1606('0x31')](_0x24026c[_0x1606('0x30')]);_0x31d1fa[_0x1606('0x32')]=_['intersection'](_0x31d1fa[_0x1606('0x2f')],_0x31d1fa[_0x1606('0x30')]);_0x22c996[_0x1606('0x33')]=_[_0x1606('0x34')](_0x31d1fa['model'],qs[_0x1606('0x35')](_0x24026c[_0x1606('0x30')][_0x1606('0x35')]));_0x22c996[_0x1606('0x33')]=_0x22c996['attributes'][_0x1606('0x36')]?_0x22c996[_0x1606('0x33')]:_0x31d1fa[_0x1606('0x2f')];if(!_0x24026c[_0x1606('0x30')]['hasOwnProperty'](_0x1606('0x37'))){_0x22c996[_0x1606('0x1f')]=qs[_0x1606('0x1f')](_0x24026c[_0x1606('0x30')][_0x1606('0x1f')]);_0x22c996['offset']=qs[_0x1606('0x1c')](_0x24026c[_0x1606('0x30')][_0x1606('0x1c')]);}_0x22c996[_0x1606('0x38')]=qs[_0x1606('0x39')](_0x24026c[_0x1606('0x30')][_0x1606('0x39')]);_0x22c996[_0x1606('0x3a')]=qs[_0x1606('0x32')](_[_0x1606('0x3b')](_0x24026c[_0x1606('0x30')],_0x31d1fa[_0x1606('0x32')]),_0x4f368d);if(_0x24026c[_0x1606('0x30')][_0x1606('0x3c')]){_0x22c996['where']=_[_0x1606('0x3d')](_0x22c996[_0x1606('0x3a')],{'$or':_[_0x1606('0x2a')](_0x4f368d,function(_0x1942a7){if(_0x1942a7[_0x1606('0x2d')]!==_0x1606('0x3e')){var _0x1ccb0a={};_0x1ccb0a[_0x1942a7[_0x1606('0x27')]]={'$like':'%'+_0x24026c[_0x1606('0x30')][_0x1606('0x3c')]+'%'};return _0x1ccb0a;}})});}_0x22c996=_[_0x1606('0x3d')]({},_0x22c996,_0x24026c[_0x1606('0x3f')]);var _0x1f06c4={'where':_0x22c996[_0x1606('0x3a')]};return db['DeskAccount']['count'](_0x1f06c4)[_0x1606('0x24')](function(_0x236b47){_0x661e53[_0x1606('0x1e')]=_0x236b47;if(_0x24026c[_0x1606('0x30')][_0x1606('0x40')]){_0x22c996[_0x1606('0x41')]=[{'all':!![]}];}return db[_0x1606('0x2b')][_0x1606('0x42')](_0x22c996);})[_0x1606('0x24')](function(_0x45a138){_0x661e53['rows']=_0x45a138;return _0x661e53;})[_0x1606('0x24')](respondWithFilteredResult(_0x455d94,_0x22c996))[_0x1606('0x43')](handleError(_0x455d94,null));};exports[_0x1606('0x44')]=function(_0x28e358,_0x10d5ed){var _0x9ef5e2={'raw':![],'where':{'id':_0x28e358[_0x1606('0x45')]['id']}},_0x13ee64={};_0x13ee64[_0x1606('0x2f')]=_[_0x1606('0x31')](db[_0x1606('0x2b')][_0x1606('0x2c')]);_0x13ee64[_0x1606('0x30')]=_[_0x1606('0x31')](_0x28e358[_0x1606('0x30')]);_0x13ee64[_0x1606('0x32')]=_[_0x1606('0x34')](_0x13ee64['model'],_0x13ee64['query']);_0x9ef5e2['attributes']=_['intersection'](_0x13ee64['model'],qs['fields'](_0x28e358['query'][_0x1606('0x35')]));_0x9ef5e2['attributes']=_0x9ef5e2[_0x1606('0x33')]['length']?_0x9ef5e2[_0x1606('0x33')]:_0x13ee64[_0x1606('0x2f')];if(_0x28e358[_0x1606('0x30')][_0x1606('0x40')]){_0x9ef5e2['include']=[{'all':!![]}];}_0x9ef5e2=_['merge']({},_0x9ef5e2,_0x28e358['options']);return db['DeskAccount'][_0x1606('0x46')](_0x9ef5e2)[_0x1606('0x24')](handleEntityNotFound(_0x10d5ed,null))['then'](respondWithResult(_0x10d5ed,null))['catch'](handleError(_0x10d5ed,null));};exports[_0x1606('0x47')]=function(_0x46c7b8,_0x22da0c){return db[_0x1606('0x2b')][_0x1606('0x47')](_0x46c7b8[_0x1606('0x48')],{})[_0x1606('0x24')](respondWithResult(_0x22da0c,0xc9))[_0x1606('0x43')](handleError(_0x22da0c,null));};exports[_0x1606('0x23')]=function(_0x594621,_0x23f210){if(_0x594621['body']['id']){delete _0x594621[_0x1606('0x48')]['id'];}return db[_0x1606('0x2b')][_0x1606('0x46')]({'where':{'id':_0x594621['params']['id']}})[_0x1606('0x24')](handleEntityNotFound(_0x23f210,null))[_0x1606('0x24')](saveUpdates(_0x594621[_0x1606('0x48')],null))[_0x1606('0x24')](respondWithResult(_0x23f210,null))[_0x1606('0x43')](handleError(_0x23f210,null));};exports[_0x1606('0x25')]=function(_0x436e13,_0x3cc978){return db[_0x1606('0x2b')]['find']({'where':{'id':_0x436e13[_0x1606('0x45')]['id']}})[_0x1606('0x24')](handleEntityNotFound(_0x3cc978,null))[_0x1606('0x24')](removeEntity(_0x3cc978,null))[_0x1606('0x43')](handleError(_0x3cc978,null));};exports['getConfigurations']=function(_0x8f0d62,_0x1ca6de,_0x52ccd6){var _0x38cfbe={};var _0x39bbb1={};var _0x578124;var _0x5b0eba;return db[_0x1606('0x2b')][_0x1606('0x49')]({'where':{'id':_0x8f0d62[_0x1606('0x45')]['id']}})[_0x1606('0x24')](handleEntityNotFound(_0x1ca6de,null))['then'](function(_0x10a347){if(_0x10a347){_0x578124=_0x10a347;_0x39bbb1[_0x1606('0x2f')]=_[_0x1606('0x31')](db['DeskConfiguration'][_0x1606('0x2c')]);_0x39bbb1['query']=_[_0x1606('0x31')](_0x8f0d62[_0x1606('0x30')]);_0x39bbb1[_0x1606('0x32')]=_[_0x1606('0x34')](_0x39bbb1[_0x1606('0x2f')],_0x39bbb1['query']);_0x38cfbe[_0x1606('0x33')]=_['intersection'](_0x39bbb1[_0x1606('0x2f')],qs['fields'](_0x8f0d62['query'][_0x1606('0x35')]));_0x38cfbe[_0x1606('0x33')]=_0x38cfbe[_0x1606('0x33')][_0x1606('0x36')]?_0x38cfbe[_0x1606('0x33')]:_0x39bbb1['model'];_0x38cfbe[_0x1606('0x38')]=qs['sort'](_0x8f0d62[_0x1606('0x30')]['sort']);_0x38cfbe[_0x1606('0x3a')]=qs[_0x1606('0x32')](_[_0x1606('0x3b')](_0x8f0d62[_0x1606('0x30')],_0x39bbb1[_0x1606('0x32')]));if(_0x8f0d62[_0x1606('0x30')][_0x1606('0x3c')]){_0x38cfbe['where']=_[_0x1606('0x3d')](_0x38cfbe[_0x1606('0x3a')],{'$or':_['map'](_0x38cfbe[_0x1606('0x33')],function(_0x37c039){var _0x4de2af={};_0x4de2af[_0x37c039]={'$like':'%'+_0x8f0d62[_0x1606('0x30')][_0x1606('0x3c')]+'%'};return _0x4de2af;})});}_0x38cfbe=_[_0x1606('0x3d')]({},_0x38cfbe,_0x8f0d62[_0x1606('0x3f')]);return _0x578124[_0x1606('0x4a')](_0x38cfbe);}})[_0x1606('0x24')](function(_0x1dfc2a){if(_0x1dfc2a){_0x5b0eba=_0x1dfc2a[_0x1606('0x36')];if(!_0x8f0d62['query']['hasOwnProperty'](_0x1606('0x37'))){_0x38cfbe[_0x1606('0x1f')]=qs[_0x1606('0x1f')](_0x8f0d62[_0x1606('0x30')][_0x1606('0x1f')]);_0x38cfbe[_0x1606('0x1c')]=qs[_0x1606('0x1c')](_0x8f0d62[_0x1606('0x30')][_0x1606('0x1c')]);}return _0x578124[_0x1606('0x4a')](_0x38cfbe);}})[_0x1606('0x24')](function(_0x281077){if(_0x281077){return _0x281077?{'count':_0x5b0eba,'rows':_0x281077}:null;}})['then'](respondWithResult(_0x1ca6de,null))[_0x1606('0x43')](handleError(_0x1ca6de,null));};exports['addConfiguration']=function(_0x5378a5,_0xabe521,_0x254140){if(_0x5378a5[_0x1606('0x48')]['id']){delete _0x5378a5[_0x1606('0x48')]['id'];}return db[_0x1606('0x2b')]['findOne']({'where':{'id':_0x5378a5['params']['id']}})[_0x1606('0x24')](handleEntityNotFound(_0xabe521,null))[_0x1606('0x24')](function(_0x380e82){if(_0x380e82){_0x5378a5[_0x1606('0x48')][_0x1606('0x4b')]=_0x380e82['id'];_0x5378a5[_0x1606('0x48')][_0x1606('0x4c')]=integrations[_0x1606('0x4d')](_0x5378a5[_0x1606('0x48')][_0x1606('0x4e')],_0x5378a5['body'][_0x1606('0x2d')]);_0x5378a5[_0x1606('0x48')][_0x1606('0x4f')]=integrations['getDescriptions'](_0x5378a5['body'][_0x1606('0x4e')],_0x5378a5[_0x1606('0x48')][_0x1606('0x2d')]);return db[_0x1606('0x50')][_0x1606('0x47')](_0x5378a5[_0x1606('0x48')],{'include':[{'model':db['DeskField'],'as':_0x1606('0x4c')},{'model':db[_0x1606('0x51')],'as':_0x1606('0x4f')}]});}return null;})[_0x1606('0x24')](respondWithResult(_0xabe521,null))[_0x1606('0x43')](handleError(_0xabe521,null));};exports[_0x1606('0x52')]=function(_0x50c831,_0x23b57c,_0x2ebd2b){var _0x1da78d=[{'name':'priority','label':_0x1606('0x53'),'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 _0x2d40cd='';return db['DeskAccount'][_0x1606('0x49')]({'where':{'id':_0x50c831['params']['id']},'attributes':['id',_0x1606('0x54'),_0x1606('0x55'),_0x1606('0x56'),_0x1606('0x57'),_0x1606('0x58'),_0x1606('0x59'),_0x1606('0x5a'),_0x1606('0x5b')]})['then'](handleEntityNotFound(_0x23b57c,null))['then'](function(_0x339122){if(_0x339122){_0x2d40cd=_0x339122['remoteUri'];var _0x54bad1=_0x2d40cd['slice'](-0x1);if(_0x54bad1==='/'){_0x2d40cd=_0x2d40cd[_0x1606('0x5c')](0x0,_0x2d40cd['lastIndexOf'](_0x54bad1));}var _0x267d73={'method':_0x1606('0x5d'),'uri':util['format'](_0x1606('0x5e'),_0x2d40cd),'headers':{'Content-Type':_0x1606('0x5f'),'Accept':'application/json'},'json':!![]};if(_0x339122['authType']===_0x1606('0x60')){_0x267d73[_0x1606('0x61')][_0x1606('0x62')]=util[_0x1606('0x63')](_0x1606('0x64'),new Buffer(util['format'](_0x1606('0x65'),_0x339122[_0x1606('0x56')],_0x339122['password']))[_0x1606('0x66')](_0x1606('0x67')));}return rp(_0x267d73)[_0x1606('0x24')](function(_0x1acc73){return _0x1da78d[_0x1606('0x68')](_['map'](_0x1acc73[_0x1606('0x69')][_0x1606('0x6a')],function(_0x412a58){return{'id':_0x412a58[_0x1606('0x27')],'name':_0x412a58[_0x1606('0x27')],'type':_0x412a58['type'],'active':_0x412a58[_0x1606('0x6b')],'label':_0x412a58['label'],'custom':!![]};}));});}})[_0x1606('0x24')](function(_0x456b96){return{'count':_0x456b96['length'],'rows':_0x456b96};})[_0x1606('0x24')](respondWithResult(_0x23b57c,null))[_0x1606('0x43')](function(_0x346256){var _0x1b98c2=_0x50c831[_0x1606('0x30')]['test']?0x1f4:_0x346256['statusCode']||0x1f4;logger[_0x1606('0x26')](_0x1606('0x6c'),_0x1606('0x52'),_0x1b98c2,JSON[_0x1606('0x6d')](_0x346256));delete _0x346256[_0x1606('0x27')];if(_0x1b98c2===0x191){_0x1b98c2=0x190;}_0x23b57c[_0x1606('0x1a')](_0x1b98c2)[_0x1606('0x28')](_0x50c831[_0x1606('0x30')][_0x1606('0x6e')]?{'message':_0x1606('0x6f'),'statusCode':_0x346256['statusCode']}:_0x346256);});};