Built motion from commit bab6f49e.|2.6.17
[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 _0xb28a=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','save','then','destroy','get','Tags','UserProfileResource','error','stack','name','send','index','rawAttributes','type','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','filter','merge','Tag','catch','show','include','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','rimraf','zip-dir','request-promise','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch'];(function(_0x433737,_0x11aacd){var _0x26b9d8=function(_0xacf0c5){while(--_0xacf0c5){_0x433737['push'](_0x433737['shift']());}};_0x26b9d8(++_0x11aacd);}(_0xb28a,0x166));var _0xab28=function(_0x166656,_0x50fd3c){_0x166656=_0x166656-0x0;var _0xc6fb62=_0xb28a[_0x166656];return _0xc6fb62;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xab28('0x0'));var zipdir=require(_0xab28('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xab28('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xab28('0x3'));var path=require(_0xab28('0x4'));var sox=require(_0xab28('0x5'));var csv=require(_0xab28('0x6'));var ejs=require(_0xab28('0x7'));var fs=require('fs');var fs_extra=require(_0xab28('0x8'));var _=require(_0xab28('0x9'));var squel=require(_0xab28('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xab28('0xb'));var toCsv=require(_0xab28('0x6'));var querystring=require(_0xab28('0xc'));var Papa=require(_0xab28('0xd'));var Redis=require(_0xab28('0xe'));var authService=require(_0xab28('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xab28('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xab28('0x11'))(_0xab28('0x12'));var utils=require(_0xab28('0x13'));var config=require(_0xab28('0x14'));var licenseUtil=require(_0xab28('0x15'));var db=require(_0xab28('0x16'))['db'];function respondWithStatusCode(_0x3fd6f2,_0x1976a5){_0x1976a5=_0x1976a5||0xcc;return function(_0x5b32d6){if(_0x5b32d6){return _0x3fd6f2[_0xab28('0x17')](_0x1976a5);}return _0x3fd6f2[_0xab28('0x18')](_0x1976a5)[_0xab28('0x19')]();};}function respondWithResult(_0x389fc3,_0x2c05bc){_0x2c05bc=_0x2c05bc||0xc8;return function(_0x19029e){if(_0x19029e){return _0x389fc3['status'](_0x2c05bc)['json'](_0x19029e);}};}function respondWithFilteredResult(_0x7c1921,_0x3d133e){return function(_0x14e8b4){if(_0x14e8b4){var _0xaaeb24=typeof _0x3d133e['offset']===_0xab28('0x1a')&&typeof _0x3d133e['limit']===_0xab28('0x1a');var _0x54f79b=_0x14e8b4[_0xab28('0x1b')];var _0x2b0b5c=_0xaaeb24?0x0:_0x3d133e[_0xab28('0x1c')];var _0x4005fd=_0xaaeb24?_0x14e8b4[_0xab28('0x1b')]:_0x3d133e[_0xab28('0x1c')]+_0x3d133e[_0xab28('0x1d')];var _0x300cbd;if(_0x4005fd>=_0x54f79b){_0x4005fd=_0x54f79b;_0x300cbd=0xc8;}else{_0x300cbd=0xce;}_0x7c1921['status'](_0x300cbd);return _0x7c1921[_0xab28('0x1e')](_0xab28('0x1f'),_0x2b0b5c+'-'+_0x4005fd+'/'+_0x54f79b)[_0xab28('0x20')](_0x14e8b4);}return null;};}function patchUpdates(_0x170a80){return function(_0x2f6541){try{jsonpatch[_0xab28('0x21')](_0x2f6541,_0x170a80,!![]);}catch(_0x1b0fc6){return BPromise['reject'](_0x1b0fc6);}return _0x2f6541[_0xab28('0x22')]();};}function saveUpdates(_0x4ec564,_0x1db226){return function(_0x127e2b){if(_0x127e2b){return _0x127e2b['update'](_0x4ec564)[_0xab28('0x23')](function(_0x1829bd){return _0x1829bd;});}return null;};}function removeEntity(_0x3bef23,_0x46a24b){return function(_0x4549e6){if(_0x4549e6){return _0x4549e6[_0xab28('0x24')]()[_0xab28('0x23')](function(){var _0x56c6ef=_0x4549e6[_0xab28('0x25')]({'plain':!![]});var _0x50ae27=_0xab28('0x26');return db[_0xab28('0x27')]['destroy']({'where':{'type':_0x50ae27,'resourceId':_0x56c6ef['id']}})[_0xab28('0x23')](function(){return _0x4549e6;});})['then'](function(){_0x3bef23[_0xab28('0x18')](0xcc)[_0xab28('0x19')]();});}};}function handleEntityNotFound(_0x3d8c60,_0x4e3b93){return function(_0x24a692){if(!_0x24a692){_0x3d8c60[_0xab28('0x17')](0x194);}return _0x24a692;};}function handleError(_0x4a6435,_0x6a494e){_0x6a494e=_0x6a494e||0x1f4;return function(_0x46b19b){logger[_0xab28('0x28')](_0x46b19b[_0xab28('0x29')]);if(_0x46b19b['name']){delete _0x46b19b[_0xab28('0x2a')];}_0x4a6435[_0xab28('0x18')](_0x6a494e)[_0xab28('0x2b')](_0x46b19b);};}exports[_0xab28('0x2c')]=function(_0x376589,_0x4114fd){var _0x44f016={},_0x43362a={},_0x670c1f={'count':0x0,'rows':[]};var _0x383e05=_['map'](db['Tag'][_0xab28('0x2d')],function(_0x4cbc0b){return{'name':_0x4cbc0b['fieldName'],'type':_0x4cbc0b[_0xab28('0x2e')][_0xab28('0x2f')]};});_0x43362a[_0xab28('0x30')]=_[_0xab28('0x31')](_0x383e05,_0xab28('0x2a'));_0x43362a[_0xab28('0x32')]=_['keys'](_0x376589[_0xab28('0x32')]);_0x43362a[_0xab28('0x33')]=_[_0xab28('0x34')](_0x43362a['model'],_0x43362a[_0xab28('0x32')]);_0x44f016['attributes']=_[_0xab28('0x34')](_0x43362a[_0xab28('0x30')],qs['fields'](_0x376589[_0xab28('0x32')][_0xab28('0x35')]));_0x44f016[_0xab28('0x36')]=_0x44f016[_0xab28('0x36')][_0xab28('0x37')]?_0x44f016[_0xab28('0x36')]:_0x43362a['model'];if(!_0x376589[_0xab28('0x32')][_0xab28('0x38')]('nolimit')){_0x44f016[_0xab28('0x1d')]=qs[_0xab28('0x1d')](_0x376589[_0xab28('0x32')][_0xab28('0x1d')]);_0x44f016[_0xab28('0x1c')]=qs[_0xab28('0x1c')](_0x376589[_0xab28('0x32')][_0xab28('0x1c')]);}_0x44f016['order']=qs[_0xab28('0x39')](_0x376589[_0xab28('0x32')]['sort']);_0x44f016[_0xab28('0x3a')]=qs[_0xab28('0x33')](_['pick'](_0x376589[_0xab28('0x32')],_0x43362a[_0xab28('0x33')]),_0x383e05);if(_0x376589[_0xab28('0x32')][_0xab28('0x3b')]){_0x44f016[_0xab28('0x3a')]=_[_0xab28('0x3c')](_0x44f016[_0xab28('0x3a')],{'$or':_['map'](_0x383e05,function(_0x3a1a78){if(_0x3a1a78[_0xab28('0x2e')]!=='VIRTUAL'){var _0x1e59b8={};_0x1e59b8[_0x3a1a78[_0xab28('0x2a')]]={'$like':'%'+_0x376589[_0xab28('0x32')][_0xab28('0x3b')]+'%'};return _0x1e59b8;}})});}_0x44f016=_[_0xab28('0x3c')]({},_0x44f016,_0x376589['options']);var _0x16c441={'where':_0x44f016['where']};return db['Tag'][_0xab28('0x1b')](_0x16c441)[_0xab28('0x23')](function(_0x23ada2){_0x670c1f[_0xab28('0x1b')]=_0x23ada2;if(_0x376589[_0xab28('0x32')]['includeAll']){_0x44f016['include']=[{'all':!![]}];}return db[_0xab28('0x3d')]['findAll'](_0x44f016);})[_0xab28('0x23')](function(_0x47a122){_0x670c1f['rows']=_0x47a122;return _0x670c1f;})[_0xab28('0x23')](respondWithFilteredResult(_0x4114fd,_0x44f016))[_0xab28('0x3e')](handleError(_0x4114fd,null));};exports[_0xab28('0x3f')]=function(_0xb437c5,_0x415130){var _0x1aea9b={'raw':!![],'where':{'id':_0xb437c5['params']['id']}},_0x53c232={};_0x53c232[_0xab28('0x30')]=_['keys'](db[_0xab28('0x3d')]['rawAttributes']);_0x53c232[_0xab28('0x32')]=_['keys'](_0xb437c5['query']);_0x53c232[_0xab28('0x33')]=_['intersection'](_0x53c232['model'],_0x53c232['query']);_0x1aea9b[_0xab28('0x36')]=_['intersection'](_0x53c232[_0xab28('0x30')],qs[_0xab28('0x35')](_0xb437c5[_0xab28('0x32')][_0xab28('0x35')]));_0x1aea9b['attributes']=_0x1aea9b[_0xab28('0x36')][_0xab28('0x37')]?_0x1aea9b[_0xab28('0x36')]:_0x53c232[_0xab28('0x30')];if(_0xb437c5[_0xab28('0x32')]['includeAll']){_0x1aea9b[_0xab28('0x40')]=[{'all':!![]}];}_0x1aea9b=_[_0xab28('0x3c')]({},_0x1aea9b,_0xb437c5['options']);return db[_0xab28('0x3d')]['find'](_0x1aea9b)['then'](handleEntityNotFound(_0x415130,null))[_0xab28('0x23')](respondWithResult(_0x415130,null))[_0xab28('0x3e')](handleError(_0x415130,null));};exports['create']=function(_0x39a4ef,_0x52fa3a){return db[_0xab28('0x3d')][_0xab28('0x41')](_0x39a4ef[_0xab28('0x42')],{})[_0xab28('0x23')](function(_0x48f1e3){var _0x1e6513=_0x39a4ef['user']['get']({'plain':!![]});if(!_0x1e6513)throw new Error(_0xab28('0x43'));if(_0x1e6513['role']===_0xab28('0x44')){var _0x199734=_0x48f1e3['get']({'plain':!![]});var _0x3e037d=_0xab28('0x26');return db[_0xab28('0x45')][_0xab28('0x46')]({'where':{'name':_0x3e037d,'userProfileId':_0x1e6513['userProfileId']},'raw':!![]})[_0xab28('0x23')](function(_0x19a791){if(_0x19a791&&_0x19a791[_0xab28('0x47')]===0x0){return db[_0xab28('0x27')][_0xab28('0x41')]({'name':_0x199734[_0xab28('0x2a')],'resourceId':_0x199734['id'],'type':_0x19a791[_0xab28('0x2a')],'sectionId':_0x19a791['id']},{})[_0xab28('0x23')](function(){return _0x48f1e3;});}else{return _0x48f1e3;}})['catch'](function(_0x39c5b4){logger[_0xab28('0x28')](_0xab28('0x48'),_0x39c5b4);throw _0x39c5b4;});}return _0x48f1e3;})[_0xab28('0x23')](respondWithResult(_0x52fa3a,0xc9))[_0xab28('0x3e')](handleError(_0x52fa3a,null));};exports[_0xab28('0x49')]=function(_0x9bae23,_0x1f2a25){if(_0x9bae23[_0xab28('0x42')]['id']){delete _0x9bae23[_0xab28('0x42')]['id'];}return db[_0xab28('0x3d')]['find']({'where':{'id':_0x9bae23[_0xab28('0x4a')]['id']}})['then'](handleEntityNotFound(_0x1f2a25,null))['then'](saveUpdates(_0x9bae23[_0xab28('0x42')],null))[_0xab28('0x23')](respondWithResult(_0x1f2a25,null))[_0xab28('0x3e')](handleError(_0x1f2a25,null));};exports['destroy']=function(_0x51da7f,_0x13265a){return db[_0xab28('0x3d')][_0xab28('0x46')]({'where':{'id':_0x51da7f[_0xab28('0x4a')]['id']}})[_0xab28('0x23')](handleEntityNotFound(_0x13265a,null))[_0xab28('0x23')](removeEntity(_0x13265a,null))[_0xab28('0x3e')](handleError(_0x13265a,null));};