f5c3331fc0f090040cb0eec3123a26ddb3252cde
[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 _0xa66d=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','set','Content-Range','json','reject','save','update','destroy','then','get','Tags','UserProfileResource','stack','name','send','index','map','Tag','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','rows','catch','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','error','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox'];(function(_0xb725be,_0x45bd01){var _0x2f2424=function(_0x2566ca){while(--_0x2566ca){_0xb725be['push'](_0xb725be['shift']());}};_0x2f2424(++_0x45bd01);}(_0xa66d,0xee));var _0xda66=function(_0xf76425,_0x5ea0e6){_0xf76425=_0xf76425-0x0;var _0x16f287=_0xa66d[_0xf76425];return _0x16f287;};'use strict';var emlformat=require(_0xda66('0x0'));var rimraf=require(_0xda66('0x1'));var zipdir=require(_0xda66('0x2'));var jsonpatch=require(_0xda66('0x3'));var rp=require(_0xda66('0x4'));var moment=require(_0xda66('0x5'));var BPromise=require(_0xda66('0x6'));var Mustache=require(_0xda66('0x7'));var util=require(_0xda66('0x8'));var path=require(_0xda66('0x9'));var sox=require(_0xda66('0xa'));var csv=require(_0xda66('0xb'));var ejs=require(_0xda66('0xc'));var fs=require('fs');var fs_extra=require(_0xda66('0xd'));var _=require(_0xda66('0xe'));var squel=require(_0xda66('0xf'));var crypto=require(_0xda66('0x10'));var jsforce=require(_0xda66('0x11'));var deskjs=require(_0xda66('0x12'));var toCsv=require(_0xda66('0xb'));var querystring=require('querystring');var Papa=require(_0xda66('0x13'));var Redis=require(_0xda66('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xda66('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xda66('0x16'))(_0xda66('0x17'));var utils=require('../../config/utils');var config=require(_0xda66('0x18'));var licenseUtil=require(_0xda66('0x19'));var db=require(_0xda66('0x1a'))['db'];function respondWithStatusCode(_0x39bace,_0x26fcf6){_0x26fcf6=_0x26fcf6||0xcc;return function(_0x2fa030){if(_0x2fa030){return _0x39bace[_0xda66('0x1b')](_0x26fcf6);}return _0x39bace[_0xda66('0x1c')](_0x26fcf6)[_0xda66('0x1d')]();};}function respondWithResult(_0x48874b,_0xe300fd){_0xe300fd=_0xe300fd||0xc8;return function(_0x4c496e){if(_0x4c496e){return _0x48874b['status'](_0xe300fd)['json'](_0x4c496e);}};}function respondWithFilteredResult(_0x27c0dd,_0x18367b){return function(_0x2d8843){if(_0x2d8843){var _0x5412ab=_0x2d8843['count'],_0x163569=_0x18367b[_0xda66('0x1e')],_0x434bf1=_0x18367b['offset']+_0x18367b[_0xda66('0x1f')],_0x544c47;if(_0x434bf1>=_0x5412ab){_0x434bf1=_0x5412ab;_0x544c47=0xc8;}else{_0x544c47=0xce;}_0x27c0dd[_0xda66('0x1c')](_0x544c47);return _0x27c0dd[_0xda66('0x20')](_0xda66('0x21'),_0x163569+'-'+_0x434bf1+'/'+_0x5412ab)[_0xda66('0x22')](_0x2d8843);}return null;};}function patchUpdates(_0x812972){return function(_0x2863ed){try{jsonpatch['apply'](_0x2863ed,_0x812972,!![]);}catch(_0x363e0a){return BPromise[_0xda66('0x23')](_0x363e0a);}return _0x2863ed[_0xda66('0x24')]();};}function saveUpdates(_0x23a85e,_0x2b7afd){return function(_0x45a2f5){if(_0x45a2f5){return _0x45a2f5[_0xda66('0x25')](_0x23a85e)['then'](function(_0x5b24f4){return _0x5b24f4;});}return null;};}function removeEntity(_0x5c1def,_0x228efb){return function(_0x4bf037){if(_0x4bf037){return _0x4bf037[_0xda66('0x26')]()[_0xda66('0x27')](function(){var _0x5d3baa=_0x4bf037[_0xda66('0x28')]({'plain':!![]});var _0x3105a7=_0xda66('0x29');return db[_0xda66('0x2a')][_0xda66('0x26')]({'where':{'type':_0x3105a7,'resourceId':_0x5d3baa['id']}})['then'](function(){return _0x4bf037;});})[_0xda66('0x27')](function(){_0x5c1def[_0xda66('0x1c')](0xcc)[_0xda66('0x1d')]();});}};}function handleEntityNotFound(_0xb8d665,_0x219058){return function(_0xcd5760){if(!_0xcd5760){_0xb8d665['sendStatus'](0x194);}return _0xcd5760;};}function handleError(_0x37d13b,_0x337456){_0x337456=_0x337456||0x1f4;return function(_0x4cbe5c){logger['error'](_0x4cbe5c[_0xda66('0x2b')]);if(_0x4cbe5c['name']){delete _0x4cbe5c[_0xda66('0x2c')];}_0x37d13b[_0xda66('0x1c')](_0x337456)[_0xda66('0x2d')](_0x4cbe5c);};}exports[_0xda66('0x2e')]=function(_0x48a614,_0x36fb5a){var _0x41b6dd={},_0x11cc3a={},_0x1b587e={'count':0x0,'rows':[]};var _0x8ac33a=_[_0xda66('0x2f')](db[_0xda66('0x30')]['rawAttributes'],function(_0xff9cd3){return{'name':_0xff9cd3['fieldName'],'type':_0xff9cd3[_0xda66('0x31')][_0xda66('0x32')]};});_0x11cc3a[_0xda66('0x33')]=_[_0xda66('0x2f')](_0x8ac33a,_0xda66('0x2c'));_0x11cc3a[_0xda66('0x34')]=_[_0xda66('0x35')](_0x48a614['query']);_0x11cc3a[_0xda66('0x36')]=_[_0xda66('0x37')](_0x11cc3a['model'],_0x11cc3a[_0xda66('0x34')]);_0x41b6dd[_0xda66('0x38')]=_[_0xda66('0x37')](_0x11cc3a[_0xda66('0x33')],qs[_0xda66('0x39')](_0x48a614[_0xda66('0x34')]['fields']));_0x41b6dd[_0xda66('0x38')]=_0x41b6dd[_0xda66('0x38')]['length']?_0x41b6dd[_0xda66('0x38')]:_0x11cc3a[_0xda66('0x33')];if(!_0x48a614[_0xda66('0x34')][_0xda66('0x3a')](_0xda66('0x3b'))){_0x41b6dd[_0xda66('0x1f')]=qs['limit'](_0x48a614[_0xda66('0x34')][_0xda66('0x1f')]);_0x41b6dd['offset']=qs[_0xda66('0x1e')](_0x48a614[_0xda66('0x34')][_0xda66('0x1e')]);}_0x41b6dd['order']=qs[_0xda66('0x3c')](_0x48a614[_0xda66('0x34')][_0xda66('0x3c')]);_0x41b6dd[_0xda66('0x3d')]=qs[_0xda66('0x36')](_[_0xda66('0x3e')](_0x48a614['query'],_0x11cc3a[_0xda66('0x36')]),_0x8ac33a);if(_0x48a614[_0xda66('0x34')][_0xda66('0x3f')]){_0x41b6dd[_0xda66('0x3d')]=_[_0xda66('0x40')](_0x41b6dd[_0xda66('0x3d')],{'$or':_[_0xda66('0x2f')](_0x8ac33a,function(_0x15cdbe){if(_0x15cdbe[_0xda66('0x31')]!=='VIRTUAL'){var _0x192912={};_0x192912[_0x15cdbe['name']]={'$like':'%'+_0x48a614[_0xda66('0x34')][_0xda66('0x3f')]+'%'};return _0x192912;}})});}_0x41b6dd=_[_0xda66('0x40')]({},_0x41b6dd,_0x48a614[_0xda66('0x41')]);var _0x160a6e={'where':_0x41b6dd['where']};return db[_0xda66('0x30')][_0xda66('0x42')](_0x160a6e)[_0xda66('0x27')](function(_0x42091e){_0x1b587e[_0xda66('0x42')]=_0x42091e;if(_0x48a614[_0xda66('0x34')][_0xda66('0x43')]){_0x41b6dd[_0xda66('0x44')]=[{'all':!![]}];}return db[_0xda66('0x30')][_0xda66('0x45')](_0x41b6dd);})[_0xda66('0x27')](function(_0x27f71d){_0x1b587e[_0xda66('0x46')]=_0x27f71d;return _0x1b587e;})[_0xda66('0x27')](respondWithFilteredResult(_0x36fb5a,_0x41b6dd))[_0xda66('0x47')](handleError(_0x36fb5a,null));};exports['show']=function(_0x3254e7,_0x2ad258){var _0x2e6899={'raw':!![],'where':{'id':_0x3254e7[_0xda66('0x48')]['id']}},_0x45d571={};_0x45d571[_0xda66('0x33')]=_[_0xda66('0x35')](db[_0xda66('0x30')]['rawAttributes']);_0x45d571[_0xda66('0x34')]=_[_0xda66('0x35')](_0x3254e7[_0xda66('0x34')]);_0x45d571[_0xda66('0x36')]=_['intersection'](_0x45d571[_0xda66('0x33')],_0x45d571[_0xda66('0x34')]);_0x2e6899[_0xda66('0x38')]=_[_0xda66('0x37')](_0x45d571['model'],qs[_0xda66('0x39')](_0x3254e7[_0xda66('0x34')][_0xda66('0x39')]));_0x2e6899[_0xda66('0x38')]=_0x2e6899[_0xda66('0x38')][_0xda66('0x49')]?_0x2e6899[_0xda66('0x38')]:_0x45d571['model'];if(_0x3254e7['query'][_0xda66('0x43')]){_0x2e6899[_0xda66('0x44')]=[{'all':!![]}];}_0x2e6899=_[_0xda66('0x40')]({},_0x2e6899,_0x3254e7[_0xda66('0x41')]);return db[_0xda66('0x30')][_0xda66('0x4a')](_0x2e6899)['then'](handleEntityNotFound(_0x2ad258,null))[_0xda66('0x27')](respondWithResult(_0x2ad258,null))['catch'](handleError(_0x2ad258,null));};exports[_0xda66('0x4b')]=function(_0x4e1746,_0x42d25a){return db[_0xda66('0x30')][_0xda66('0x4b')](_0x4e1746[_0xda66('0x4c')],{})['then'](function(_0x31ba7d){var _0x124c74=_0x4e1746[_0xda66('0x4d')][_0xda66('0x28')]({'plain':!![]});if(!_0x124c74)throw new Error(_0xda66('0x4e'));if(_0x124c74['role']==='user'){var _0x47bdda=_0x31ba7d['get']({'plain':!![]});var _0x427b05=_0xda66('0x29');return db[_0xda66('0x4f')][_0xda66('0x4a')]({'where':{'name':_0x427b05,'userProfileId':_0x124c74[_0xda66('0x50')]},'raw':!![]})[_0xda66('0x27')](function(_0x37ccca){if(_0x37ccca&&_0x37ccca[_0xda66('0x51')]===0x0){return db[_0xda66('0x2a')][_0xda66('0x4b')]({'name':_0x47bdda[_0xda66('0x2c')],'resourceId':_0x47bdda['id'],'type':_0x37ccca[_0xda66('0x2c')],'sectionId':_0x37ccca['id']},{})['then'](function(){return _0x31ba7d;});}else{return _0x31ba7d;}})[_0xda66('0x47')](function(_0x1c06a4){logger[_0xda66('0x52')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1c06a4);throw _0x1c06a4;});}return _0x31ba7d;})[_0xda66('0x27')](respondWithResult(_0x42d25a,0xc9))[_0xda66('0x47')](handleError(_0x42d25a,null));};exports[_0xda66('0x25')]=function(_0x534ab8,_0x49869e){if(_0x534ab8[_0xda66('0x4c')]['id']){delete _0x534ab8['body']['id'];}return db[_0xda66('0x30')][_0xda66('0x4a')]({'where':{'id':_0x534ab8['params']['id']}})[_0xda66('0x27')](handleEntityNotFound(_0x49869e,null))['then'](saveUpdates(_0x534ab8[_0xda66('0x4c')],null))[_0xda66('0x27')](respondWithResult(_0x49869e,null))['catch'](handleError(_0x49869e,null));};exports[_0xda66('0x26')]=function(_0xe5c646,_0x920f67){return db[_0xda66('0x30')]['find']({'where':{'id':_0xe5c646[_0xda66('0x48')]['id']}})[_0xda66('0x27')](handleEntityNotFound(_0x920f67,null))['then'](removeEntity(_0x920f67,null))['catch'](handleError(_0x920f67,null));};