Built motion from commit (unavailable).|2.5.31
[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 _0xb3d9=['jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','update','then','get','UserProfileResource','error','name','send','index','map','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','Tag','findAll','rows','catch','show','params','rawAttributes','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel'];(function(_0x1b1a80,_0x4dcdef){var _0x1b5c3f=function(_0x148825){while(--_0x148825){_0x1b1a80['push'](_0x1b1a80['shift']());}};_0x1b5c3f(++_0x4dcdef);}(_0xb3d9,0x91));var _0x9b3d=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xb3d9[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x9b3d('0x0'));var rimraf=require(_0x9b3d('0x1'));var zipdir=require(_0x9b3d('0x2'));var jsonpatch=require(_0x9b3d('0x3'));var rp=require(_0x9b3d('0x4'));var moment=require(_0x9b3d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x9b3d('0x6'));var util=require(_0x9b3d('0x7'));var path=require(_0x9b3d('0x8'));var sox=require(_0x9b3d('0x9'));var csv=require(_0x9b3d('0xa'));var ejs=require(_0x9b3d('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9b3d('0xc'));var crypto=require('crypto');var jsforce=require(_0x9b3d('0xd'));var deskjs=require(_0x9b3d('0xe'));var toCsv=require(_0x9b3d('0xa'));var querystring=require('querystring');var Papa=require(_0x9b3d('0xf'));var Redis=require('ioredis');var authService=require(_0x9b3d('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x9b3d('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9b3d('0x12'))('api');var utils=require('../../config/utils');var config=require(_0x9b3d('0x13'));var licenseUtil=require(_0x9b3d('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x24bcde,_0x2b99b4){_0x2b99b4=_0x2b99b4||0xcc;return function(_0xd9b003){if(_0xd9b003){return _0x24bcde[_0x9b3d('0x15')](_0x2b99b4);}return _0x24bcde[_0x9b3d('0x16')](_0x2b99b4)[_0x9b3d('0x17')]();};}function respondWithResult(_0x41f1c3,_0xee8d83){_0xee8d83=_0xee8d83||0xc8;return function(_0x3f87e6){if(_0x3f87e6){return _0x41f1c3[_0x9b3d('0x16')](_0xee8d83)[_0x9b3d('0x18')](_0x3f87e6);}};}function respondWithFilteredResult(_0x1b4fa4,_0x5a25df){return function(_0x2e00f1){if(_0x2e00f1){var _0x54d486=typeof _0x5a25df[_0x9b3d('0x19')]===_0x9b3d('0x1a')&&typeof _0x5a25df[_0x9b3d('0x1b')]===_0x9b3d('0x1a');var _0x3820af=_0x2e00f1['count'];var _0x5a8304=_0x54d486?0x0:_0x5a25df[_0x9b3d('0x19')];var _0x6200fd=_0x54d486?_0x2e00f1[_0x9b3d('0x1c')]:_0x5a25df[_0x9b3d('0x19')]+_0x5a25df[_0x9b3d('0x1b')];var _0x1e9ed4;if(_0x6200fd>=_0x3820af){_0x6200fd=_0x3820af;_0x1e9ed4=0xc8;}else{_0x1e9ed4=0xce;}_0x1b4fa4[_0x9b3d('0x16')](_0x1e9ed4);return _0x1b4fa4[_0x9b3d('0x1d')]('Content-Range',_0x5a8304+'-'+_0x6200fd+'/'+_0x3820af)[_0x9b3d('0x18')](_0x2e00f1);}return null;};}function patchUpdates(_0x1aa045){return function(_0x343aff){try{jsonpatch['apply'](_0x343aff,_0x1aa045,!![]);}catch(_0x1b2604){return BPromise[_0x9b3d('0x1e')](_0x1b2604);}return _0x343aff['save']();};}function saveUpdates(_0xf08fc9,_0x86fc4b){return function(_0x1be3f4){if(_0x1be3f4){return _0x1be3f4[_0x9b3d('0x1f')](_0xf08fc9)[_0x9b3d('0x20')](function(_0x1740ad){return _0x1740ad;});}return null;};}function removeEntity(_0x378e18,_0xb04669){return function(_0x42cb21){if(_0x42cb21){return _0x42cb21['destroy']()['then'](function(){var _0x19e407=_0x42cb21[_0x9b3d('0x21')]({'plain':!![]});var _0x2cd6cf='Tags';return db[_0x9b3d('0x22')]['destroy']({'where':{'type':_0x2cd6cf,'resourceId':_0x19e407['id']}})[_0x9b3d('0x20')](function(){return _0x42cb21;});})[_0x9b3d('0x20')](function(){_0x378e18[_0x9b3d('0x16')](0xcc)[_0x9b3d('0x17')]();});}};}function handleEntityNotFound(_0x43887b,_0x1e5487){return function(_0x1dc606){if(!_0x1dc606){_0x43887b[_0x9b3d('0x15')](0x194);}return _0x1dc606;};}function handleError(_0x167cc5,_0x3489ad){_0x3489ad=_0x3489ad||0x1f4;return function(_0x32abde){logger[_0x9b3d('0x23')](_0x32abde['stack']);if(_0x32abde[_0x9b3d('0x24')]){delete _0x32abde[_0x9b3d('0x24')];}_0x167cc5['status'](_0x3489ad)[_0x9b3d('0x25')](_0x32abde);};}exports[_0x9b3d('0x26')]=function(_0x448fb9,_0xf1cec2){var _0x3a1f33={},_0x5af11e={},_0x36d56a={'count':0x0,'rows':[]};var _0x25538e=_[_0x9b3d('0x27')](db['Tag']['rawAttributes'],function(_0x36f084){return{'name':_0x36f084[_0x9b3d('0x28')],'type':_0x36f084[_0x9b3d('0x29')][_0x9b3d('0x2a')]};});_0x5af11e[_0x9b3d('0x2b')]=_[_0x9b3d('0x27')](_0x25538e,_0x9b3d('0x24'));_0x5af11e['query']=_[_0x9b3d('0x2c')](_0x448fb9[_0x9b3d('0x2d')]);_0x5af11e['filters']=_[_0x9b3d('0x2e')](_0x5af11e[_0x9b3d('0x2b')],_0x5af11e[_0x9b3d('0x2d')]);_0x3a1f33[_0x9b3d('0x2f')]=_[_0x9b3d('0x2e')](_0x5af11e[_0x9b3d('0x2b')],qs[_0x9b3d('0x30')](_0x448fb9['query'][_0x9b3d('0x30')]));_0x3a1f33['attributes']=_0x3a1f33[_0x9b3d('0x2f')][_0x9b3d('0x31')]?_0x3a1f33[_0x9b3d('0x2f')]:_0x5af11e['model'];if(!_0x448fb9[_0x9b3d('0x2d')][_0x9b3d('0x32')](_0x9b3d('0x33'))){_0x3a1f33[_0x9b3d('0x1b')]=qs[_0x9b3d('0x1b')](_0x448fb9[_0x9b3d('0x2d')][_0x9b3d('0x1b')]);_0x3a1f33[_0x9b3d('0x19')]=qs[_0x9b3d('0x19')](_0x448fb9[_0x9b3d('0x2d')][_0x9b3d('0x19')]);}_0x3a1f33[_0x9b3d('0x34')]=qs[_0x9b3d('0x35')](_0x448fb9['query'][_0x9b3d('0x35')]);_0x3a1f33[_0x9b3d('0x36')]=qs[_0x9b3d('0x37')](_[_0x9b3d('0x38')](_0x448fb9[_0x9b3d('0x2d')],_0x5af11e[_0x9b3d('0x37')]),_0x25538e);if(_0x448fb9['query']['filter']){_0x3a1f33[_0x9b3d('0x36')]=_[_0x9b3d('0x39')](_0x3a1f33[_0x9b3d('0x36')],{'$or':_[_0x9b3d('0x27')](_0x25538e,function(_0x42e1d6){if(_0x42e1d6['type']!==_0x9b3d('0x3a')){var _0x3374ba={};_0x3374ba[_0x42e1d6[_0x9b3d('0x24')]]={'$like':'%'+_0x448fb9[_0x9b3d('0x2d')][_0x9b3d('0x3b')]+'%'};return _0x3374ba;}})});}_0x3a1f33=_['merge']({},_0x3a1f33,_0x448fb9[_0x9b3d('0x3c')]);var _0x31950e={'where':_0x3a1f33[_0x9b3d('0x36')]};return db['Tag'][_0x9b3d('0x1c')](_0x31950e)['then'](function(_0x338f9a){_0x36d56a[_0x9b3d('0x1c')]=_0x338f9a;if(_0x448fb9['query'][_0x9b3d('0x3d')]){_0x3a1f33[_0x9b3d('0x3e')]=[{'all':!![]}];}return db[_0x9b3d('0x3f')][_0x9b3d('0x40')](_0x3a1f33);})[_0x9b3d('0x20')](function(_0x506ff7){_0x36d56a[_0x9b3d('0x41')]=_0x506ff7;return _0x36d56a;})[_0x9b3d('0x20')](respondWithFilteredResult(_0xf1cec2,_0x3a1f33))[_0x9b3d('0x42')](handleError(_0xf1cec2,null));};exports[_0x9b3d('0x43')]=function(_0x2dcaca,_0xf568e6){var _0x1fe369={'raw':!![],'where':{'id':_0x2dcaca[_0x9b3d('0x44')]['id']}},_0x41e797={};_0x41e797[_0x9b3d('0x2b')]=_['keys'](db[_0x9b3d('0x3f')][_0x9b3d('0x45')]);_0x41e797[_0x9b3d('0x2d')]=_[_0x9b3d('0x2c')](_0x2dcaca[_0x9b3d('0x2d')]);_0x41e797[_0x9b3d('0x37')]=_[_0x9b3d('0x2e')](_0x41e797[_0x9b3d('0x2b')],_0x41e797[_0x9b3d('0x2d')]);_0x1fe369['attributes']=_['intersection'](_0x41e797[_0x9b3d('0x2b')],qs[_0x9b3d('0x30')](_0x2dcaca[_0x9b3d('0x2d')][_0x9b3d('0x30')]));_0x1fe369[_0x9b3d('0x2f')]=_0x1fe369[_0x9b3d('0x2f')][_0x9b3d('0x31')]?_0x1fe369[_0x9b3d('0x2f')]:_0x41e797[_0x9b3d('0x2b')];if(_0x2dcaca[_0x9b3d('0x2d')][_0x9b3d('0x3d')]){_0x1fe369[_0x9b3d('0x3e')]=[{'all':!![]}];}_0x1fe369=_[_0x9b3d('0x39')]({},_0x1fe369,_0x2dcaca['options']);return db[_0x9b3d('0x3f')]['find'](_0x1fe369)[_0x9b3d('0x20')](handleEntityNotFound(_0xf568e6,null))[_0x9b3d('0x20')](respondWithResult(_0xf568e6,null))[_0x9b3d('0x42')](handleError(_0xf568e6,null));};exports[_0x9b3d('0x46')]=function(_0x55b1b9,_0x4a72ec){return db[_0x9b3d('0x3f')][_0x9b3d('0x46')](_0x55b1b9['body'],{})['then'](function(_0x1d9368){var _0x19efb2=_0x55b1b9[_0x9b3d('0x47')]['get']({'plain':!![]});if(!_0x19efb2)throw new Error(_0x9b3d('0x48'));if(_0x19efb2[_0x9b3d('0x49')]===_0x9b3d('0x47')){var _0xf792eb=_0x1d9368[_0x9b3d('0x21')]({'plain':!![]});var _0x237a26='Tags';return db[_0x9b3d('0x4a')][_0x9b3d('0x4b')]({'where':{'name':_0x237a26,'userProfileId':_0x19efb2[_0x9b3d('0x4c')]},'raw':!![]})[_0x9b3d('0x20')](function(_0x497885){if(_0x497885&&_0x497885[_0x9b3d('0x4d')]===0x0){return db[_0x9b3d('0x22')][_0x9b3d('0x46')]({'name':_0xf792eb['name'],'resourceId':_0xf792eb['id'],'type':_0x497885[_0x9b3d('0x24')],'sectionId':_0x497885['id']},{})['then'](function(){return _0x1d9368;});}else{return _0x1d9368;}})[_0x9b3d('0x42')](function(_0x6c7a27){logger[_0x9b3d('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x6c7a27);throw _0x6c7a27;});}return _0x1d9368;})[_0x9b3d('0x20')](respondWithResult(_0x4a72ec,0xc9))[_0x9b3d('0x42')](handleError(_0x4a72ec,null));};exports[_0x9b3d('0x1f')]=function(_0x3e8997,_0xc4d64b){if(_0x3e8997[_0x9b3d('0x4e')]['id']){delete _0x3e8997[_0x9b3d('0x4e')]['id'];}return db[_0x9b3d('0x3f')][_0x9b3d('0x4b')]({'where':{'id':_0x3e8997['params']['id']}})[_0x9b3d('0x20')](handleEntityNotFound(_0xc4d64b,null))[_0x9b3d('0x20')](saveUpdates(_0x3e8997[_0x9b3d('0x4e')],null))[_0x9b3d('0x20')](respondWithResult(_0xc4d64b,null))['catch'](handleError(_0xc4d64b,null));};exports['destroy']=function(_0x17e3f7,_0x300f1e){return db[_0x9b3d('0x3f')][_0x9b3d('0x4b')]({'where':{'id':_0x17e3f7[_0x9b3d('0x44')]['id']}})['then'](handleEntityNotFound(_0x300f1e,null))[_0x9b3d('0x20')](removeEntity(_0x300f1e,null))[_0x9b3d('0x42')](handleError(_0x300f1e,null));};