1131aa3024c6510da0225f5a9e170acd0f0405ae
[motion2.git] / server / api / tag / tag.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 _0x4a33=['name','send','index','map','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','limit','order','sort','where','pick','merge','filter','Tag','count','includeAll','include','findAll','rows','catch','params','rawAttributes','length','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','update','html-pdf','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','lodash','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','set','Content-Range','apply','reject','save','then','destroy','get','Tags','UserProfileResource','error','stack'];(function(_0x28c8ba,_0x346ca1){var _0x4355e5=function(_0x5e543d){while(--_0x5e543d){_0x28c8ba['push'](_0x28c8ba['shift']());}};_0x4355e5(++_0x346ca1);}(_0x4a33,0xc6));var _0x34a3=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0x4a33[_0x465028];return _0xb783d4;};'use strict';var pdf=require(_0x34a3('0x0'));var emlformat=require(_0x34a3('0x1'));var rimraf=require(_0x34a3('0x2'));var zipdir=require(_0x34a3('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x34a3('0x4'));var moment=require('moment');var BPromise=require(_0x34a3('0x5'));var Mustache=require('mustache');var util=require(_0x34a3('0x6'));var path=require(_0x34a3('0x7'));var sox=require(_0x34a3('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x34a3('0x9'));var squel=require('squel');var crypto=require(_0x34a3('0xa'));var jsforce=require(_0x34a3('0xb'));var deskjs=require(_0x34a3('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x34a3('0xd'));var qs=require(_0x34a3('0xe'));var as=require(_0x34a3('0xf'));var hardwareService=require(_0x34a3('0x10'));var logger=require(_0x34a3('0x11'))(_0x34a3('0x12'));var utils=require(_0x34a3('0x13'));var config=require(_0x34a3('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x34a3('0x15'))['db'];function respondWithStatusCode(_0x13004f,_0x442da){_0x442da=_0x442da||0xcc;return function(_0x101a9f){if(_0x101a9f){return _0x13004f[_0x34a3('0x16')](_0x442da);}return _0x13004f[_0x34a3('0x17')](_0x442da)[_0x34a3('0x18')]();};}function respondWithResult(_0x3eab05,_0x784212){_0x784212=_0x784212||0xc8;return function(_0x46b7b4){if(_0x46b7b4){return _0x3eab05[_0x34a3('0x17')](_0x784212)[_0x34a3('0x19')](_0x46b7b4);}};}function respondWithFilteredResult(_0xb4435b,_0x5da4f6){return function(_0x836ea3){if(_0x836ea3){var _0x35eadf=_0x836ea3['count'],_0x5ac373=_0x5da4f6[_0x34a3('0x1a')],_0x8b6f89=_0x5da4f6[_0x34a3('0x1a')]+_0x5da4f6['limit'],_0x2495ff;if(_0x8b6f89>=_0x35eadf){_0x8b6f89=_0x35eadf;_0x2495ff=0xc8;}else{_0x2495ff=0xce;}_0xb4435b[_0x34a3('0x17')](_0x2495ff);return _0xb4435b[_0x34a3('0x1b')](_0x34a3('0x1c'),_0x5ac373+'-'+_0x8b6f89+'/'+_0x35eadf)[_0x34a3('0x19')](_0x836ea3);}return null;};}function patchUpdates(_0x567614){return function(_0x20b149){try{jsonpatch[_0x34a3('0x1d')](_0x20b149,_0x567614,!![]);}catch(_0x25e5d6){return BPromise[_0x34a3('0x1e')](_0x25e5d6);}return _0x20b149[_0x34a3('0x1f')]();};}function saveUpdates(_0x3e8d98,_0x35bb7b){return function(_0x596046){if(_0x596046){return _0x596046['update'](_0x3e8d98)[_0x34a3('0x20')](function(_0x4d96e8){return _0x4d96e8;});}return null;};}function removeEntity(_0x41f10a,_0x346a51){return function(_0x1099ca){if(_0x1099ca){return _0x1099ca[_0x34a3('0x21')]()[_0x34a3('0x20')](function(){var _0x2af18c=_0x1099ca[_0x34a3('0x22')]({'plain':!![]});var _0x1e690e=_0x34a3('0x23');return db[_0x34a3('0x24')][_0x34a3('0x21')]({'where':{'type':_0x1e690e,'resourceId':_0x2af18c['id']}})[_0x34a3('0x20')](function(){return _0x1099ca;});})[_0x34a3('0x20')](function(){_0x41f10a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xb983c,_0x10040a){return function(_0x38c0c2){if(!_0x38c0c2){_0xb983c['sendStatus'](0x194);}return _0x38c0c2;};}function handleError(_0x953889,_0x11b108){_0x11b108=_0x11b108||0x1f4;return function(_0x57dcbf){logger[_0x34a3('0x25')](_0x57dcbf[_0x34a3('0x26')]);if(_0x57dcbf[_0x34a3('0x27')]){delete _0x57dcbf[_0x34a3('0x27')];}_0x953889[_0x34a3('0x17')](_0x11b108)[_0x34a3('0x28')](_0x57dcbf);};}exports[_0x34a3('0x29')]=function(_0x90e0a7,_0x27a100){var _0x4673ac={},_0xe5e89f={},_0x23c1c7={'count':0x0,'rows':[]};var _0x500cfe=_[_0x34a3('0x2a')](db['Tag']['rawAttributes'],function(_0x1200ef){return{'name':_0x1200ef['fieldName'],'type':_0x1200ef[_0x34a3('0x2b')][_0x34a3('0x2c')]};});_0xe5e89f[_0x34a3('0x2d')]=_[_0x34a3('0x2a')](_0x500cfe,_0x34a3('0x27'));_0xe5e89f[_0x34a3('0x2e')]=_[_0x34a3('0x2f')](_0x90e0a7['query']);_0xe5e89f[_0x34a3('0x30')]=_[_0x34a3('0x31')](_0xe5e89f['model'],_0xe5e89f[_0x34a3('0x2e')]);_0x4673ac[_0x34a3('0x32')]=_[_0x34a3('0x31')](_0xe5e89f[_0x34a3('0x2d')],qs[_0x34a3('0x33')](_0x90e0a7[_0x34a3('0x2e')][_0x34a3('0x33')]));_0x4673ac['attributes']=_0x4673ac['attributes']['length']?_0x4673ac[_0x34a3('0x32')]:_0xe5e89f['model'];if(!_0x90e0a7[_0x34a3('0x2e')]['hasOwnProperty'](_0x34a3('0x34'))){_0x4673ac[_0x34a3('0x35')]=qs[_0x34a3('0x35')](_0x90e0a7[_0x34a3('0x2e')][_0x34a3('0x35')]);_0x4673ac['offset']=qs['offset'](_0x90e0a7['query'][_0x34a3('0x1a')]);}_0x4673ac[_0x34a3('0x36')]=qs['sort'](_0x90e0a7[_0x34a3('0x2e')][_0x34a3('0x37')]);_0x4673ac[_0x34a3('0x38')]=qs[_0x34a3('0x30')](_[_0x34a3('0x39')](_0x90e0a7[_0x34a3('0x2e')],_0xe5e89f[_0x34a3('0x30')]),_0x500cfe);if(_0x90e0a7[_0x34a3('0x2e')]['filter']){_0x4673ac[_0x34a3('0x38')]=_[_0x34a3('0x3a')](_0x4673ac['where'],{'$or':_[_0x34a3('0x2a')](_0x500cfe,function(_0x9db99c){if(_0x9db99c[_0x34a3('0x2b')]!=='VIRTUAL'){var _0x38c3e5={};_0x38c3e5[_0x9db99c[_0x34a3('0x27')]]={'$like':'%'+_0x90e0a7[_0x34a3('0x2e')][_0x34a3('0x3b')]+'%'};return _0x38c3e5;}})});}_0x4673ac=_[_0x34a3('0x3a')]({},_0x4673ac,_0x90e0a7['options']);var _0x5b8553={'where':_0x4673ac[_0x34a3('0x38')]};return db[_0x34a3('0x3c')][_0x34a3('0x3d')](_0x5b8553)[_0x34a3('0x20')](function(_0x5e8482){_0x23c1c7[_0x34a3('0x3d')]=_0x5e8482;if(_0x90e0a7[_0x34a3('0x2e')][_0x34a3('0x3e')]){_0x4673ac[_0x34a3('0x3f')]=[{'all':!![]}];}return db[_0x34a3('0x3c')][_0x34a3('0x40')](_0x4673ac);})[_0x34a3('0x20')](function(_0x5c3c6b){_0x23c1c7[_0x34a3('0x41')]=_0x5c3c6b;return _0x23c1c7;})[_0x34a3('0x20')](respondWithFilteredResult(_0x27a100,_0x4673ac))[_0x34a3('0x42')](handleError(_0x27a100,null));};exports['show']=function(_0x39115c,_0x54b6a3){var _0x4a7416={'raw':!![],'where':{'id':_0x39115c[_0x34a3('0x43')]['id']}},_0x5dd313={};_0x5dd313[_0x34a3('0x2d')]=_[_0x34a3('0x2f')](db[_0x34a3('0x3c')][_0x34a3('0x44')]);_0x5dd313[_0x34a3('0x2e')]=_[_0x34a3('0x2f')](_0x39115c[_0x34a3('0x2e')]);_0x5dd313[_0x34a3('0x30')]=_[_0x34a3('0x31')](_0x5dd313[_0x34a3('0x2d')],_0x5dd313['query']);_0x4a7416['attributes']=_['intersection'](_0x5dd313[_0x34a3('0x2d')],qs[_0x34a3('0x33')](_0x39115c[_0x34a3('0x2e')][_0x34a3('0x33')]));_0x4a7416[_0x34a3('0x32')]=_0x4a7416[_0x34a3('0x32')][_0x34a3('0x45')]?_0x4a7416[_0x34a3('0x32')]:_0x5dd313[_0x34a3('0x2d')];if(_0x39115c[_0x34a3('0x2e')]['includeAll']){_0x4a7416['include']=[{'all':!![]}];}_0x4a7416=_['merge']({},_0x4a7416,_0x39115c[_0x34a3('0x46')]);return db[_0x34a3('0x3c')][_0x34a3('0x47')](_0x4a7416)[_0x34a3('0x20')](handleEntityNotFound(_0x54b6a3,null))['then'](respondWithResult(_0x54b6a3,null))[_0x34a3('0x42')](handleError(_0x54b6a3,null));};exports[_0x34a3('0x48')]=function(_0x5c36ca,_0x1dbb09){return db[_0x34a3('0x3c')][_0x34a3('0x48')](_0x5c36ca[_0x34a3('0x49')],{})['then'](function(_0x3efe2e){var _0x5401de=_0x5c36ca['user']['get']({'plain':!![]});if(!_0x5401de)throw new Error(_0x34a3('0x4a'));if(_0x5401de['role']===_0x34a3('0x4b')){var _0x555060=_0x3efe2e[_0x34a3('0x22')]({'plain':!![]});var _0x5d3795=_0x34a3('0x23');return db['UserProfileSection'][_0x34a3('0x47')]({'where':{'name':_0x5d3795,'userProfileId':_0x5401de[_0x34a3('0x4c')]},'raw':!![]})[_0x34a3('0x20')](function(_0x13952f){if(_0x13952f&&_0x13952f[_0x34a3('0x4d')]===0x0){return db[_0x34a3('0x24')]['create']({'name':_0x555060[_0x34a3('0x27')],'resourceId':_0x555060['id'],'type':_0x13952f['name'],'sectionId':_0x13952f['id']},{})[_0x34a3('0x20')](function(){return _0x3efe2e;});}else{return _0x3efe2e;}})[_0x34a3('0x42')](function(_0x1022b7){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1022b7);throw _0x1022b7;});}return _0x3efe2e;})[_0x34a3('0x20')](respondWithResult(_0x1dbb09,0xc9))[_0x34a3('0x42')](handleError(_0x1dbb09,null));};exports[_0x34a3('0x4e')]=function(_0x4a967c,_0x54808a){if(_0x4a967c[_0x34a3('0x49')]['id']){delete _0x4a967c[_0x34a3('0x49')]['id'];}return db[_0x34a3('0x3c')][_0x34a3('0x47')]({'where':{'id':_0x4a967c['params']['id']}})['then'](handleEntityNotFound(_0x54808a,null))[_0x34a3('0x20')](saveUpdates(_0x4a967c[_0x34a3('0x49')],null))[_0x34a3('0x20')](respondWithResult(_0x54808a,null))['catch'](handleError(_0x54808a,null));};exports[_0x34a3('0x21')]=function(_0x4ad220,_0x4475ac){return db[_0x34a3('0x3c')][_0x34a3('0x47')]({'where':{'id':_0x4ad220[_0x34a3('0x43')]['id']}})[_0x34a3('0x20')](handleEntityNotFound(_0x4475ac,null))[_0x34a3('0x20')](removeEntity(_0x4475ac,null))[_0x34a3('0x42')](handleError(_0x4475ac,null));};