2deefe8fae501ede1eb948dcd600acbc8a9805f5
[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 _0x2dae=['filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','filter','includeAll','findAll','rows','catch','show','params','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','undefined','limit','offset','count','Content-Range','json','apply','save','update','then','get','Tags','UserProfileResource','destroy','stack','name','map','Tag','rawAttributes','type','key','model','query','keys'];(function(_0x40b189,_0x50f8cc){var _0x17886c=function(_0x6ac7a4){while(--_0x6ac7a4){_0x40b189['push'](_0x40b189['shift']());}};_0x17886c(++_0x50f8cc);}(_0x2dae,0xc3));var _0xe2da=function(_0x3fd3a3,_0x36c863){_0x3fd3a3=_0x3fd3a3-0x0;var _0xa3e4d5=_0x2dae[_0x3fd3a3];return _0xa3e4d5;};'use strict';var emlformat=require(_0xe2da('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe2da('0x1'));var jsonpatch=require(_0xe2da('0x2'));var rp=require(_0xe2da('0x3'));var moment=require(_0xe2da('0x4'));var BPromise=require(_0xe2da('0x5'));var Mustache=require('mustache');var util=require(_0xe2da('0x6'));var path=require(_0xe2da('0x7'));var sox=require(_0xe2da('0x8'));var csv=require(_0xe2da('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe2da('0xa'));var _=require(_0xe2da('0xb'));var squel=require(_0xe2da('0xc'));var crypto=require(_0xe2da('0xd'));var jsforce=require(_0xe2da('0xe'));var deskjs=require(_0xe2da('0xf'));var toCsv=require(_0xe2da('0x9'));var querystring=require(_0xe2da('0x10'));var Papa=require(_0xe2da('0x11'));var Redis=require('ioredis');var authService=require(_0xe2da('0x12'));var qs=require(_0xe2da('0x13'));var as=require(_0xe2da('0x14'));var hardwareService=require(_0xe2da('0x15'));var logger=require(_0xe2da('0x16'))(_0xe2da('0x17'));var utils=require(_0xe2da('0x18'));var config=require(_0xe2da('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe2da('0x1a'))['db'];function respondWithStatusCode(_0x5200b1,_0x4377c6){_0x4377c6=_0x4377c6||0xcc;return function(_0x245ad7){if(_0x245ad7){return _0x5200b1[_0xe2da('0x1b')](_0x4377c6);}return _0x5200b1[_0xe2da('0x1c')](_0x4377c6)[_0xe2da('0x1d')]();};}function respondWithResult(_0x5660b5,_0x295a86){_0x295a86=_0x295a86||0xc8;return function(_0x48584b){if(_0x48584b){return _0x5660b5[_0xe2da('0x1c')](_0x295a86)['json'](_0x48584b);}};}function respondWithFilteredResult(_0x586b27,_0x403d1c){return function(_0x3dfc52){if(_0x3dfc52){var _0x33f919=typeof _0x403d1c['offset']===_0xe2da('0x1e')&&typeof _0x403d1c[_0xe2da('0x1f')]===_0xe2da('0x1e');var _0x33568f=_0x3dfc52['count'];var _0x45bb92=_0x33f919?0x0:_0x403d1c[_0xe2da('0x20')];var _0x417363=_0x33f919?_0x3dfc52[_0xe2da('0x21')]:_0x403d1c[_0xe2da('0x20')]+_0x403d1c['limit'];var _0x56eeb1;if(_0x417363>=_0x33568f){_0x417363=_0x33568f;_0x56eeb1=0xc8;}else{_0x56eeb1=0xce;}_0x586b27[_0xe2da('0x1c')](_0x56eeb1);return _0x586b27['set'](_0xe2da('0x22'),_0x45bb92+'-'+_0x417363+'/'+_0x33568f)[_0xe2da('0x23')](_0x3dfc52);}return null;};}function patchUpdates(_0x332193){return function(_0x203d36){try{jsonpatch[_0xe2da('0x24')](_0x203d36,_0x332193,!![]);}catch(_0x3e22de){return BPromise['reject'](_0x3e22de);}return _0x203d36[_0xe2da('0x25')]();};}function saveUpdates(_0x53cc4e,_0x30efdc){return function(_0x191d38){if(_0x191d38){return _0x191d38[_0xe2da('0x26')](_0x53cc4e)[_0xe2da('0x27')](function(_0x30dea4){return _0x30dea4;});}return null;};}function removeEntity(_0x1e45e9,_0x38f2c4){return function(_0x221e98){if(_0x221e98){return _0x221e98['destroy']()[_0xe2da('0x27')](function(){var _0x357bff=_0x221e98[_0xe2da('0x28')]({'plain':!![]});var _0x14704d=_0xe2da('0x29');return db[_0xe2da('0x2a')][_0xe2da('0x2b')]({'where':{'type':_0x14704d,'resourceId':_0x357bff['id']}})['then'](function(){return _0x221e98;});})[_0xe2da('0x27')](function(){_0x1e45e9[_0xe2da('0x1c')](0xcc)[_0xe2da('0x1d')]();});}};}function handleEntityNotFound(_0x38ee5e,_0x36ca43){return function(_0x2b6c9e){if(!_0x2b6c9e){_0x38ee5e[_0xe2da('0x1b')](0x194);}return _0x2b6c9e;};}function handleError(_0x39f60e,_0x516f42){_0x516f42=_0x516f42||0x1f4;return function(_0x487a7c){logger['error'](_0x487a7c[_0xe2da('0x2c')]);if(_0x487a7c[_0xe2da('0x2d')]){delete _0x487a7c[_0xe2da('0x2d')];}_0x39f60e[_0xe2da('0x1c')](_0x516f42)['send'](_0x487a7c);};}exports['index']=function(_0x356ab4,_0x1ec8ca){var _0x262d40={},_0x39f983={},_0x7ab5ee={'count':0x0,'rows':[]};var _0x15df33=_[_0xe2da('0x2e')](db[_0xe2da('0x2f')][_0xe2da('0x30')],function(_0x499400){return{'name':_0x499400['fieldName'],'type':_0x499400[_0xe2da('0x31')][_0xe2da('0x32')]};});_0x39f983[_0xe2da('0x33')]=_[_0xe2da('0x2e')](_0x15df33,_0xe2da('0x2d'));_0x39f983[_0xe2da('0x34')]=_[_0xe2da('0x35')](_0x356ab4[_0xe2da('0x34')]);_0x39f983[_0xe2da('0x36')]=_[_0xe2da('0x37')](_0x39f983[_0xe2da('0x33')],_0x39f983[_0xe2da('0x34')]);_0x262d40[_0xe2da('0x38')]=_[_0xe2da('0x37')](_0x39f983[_0xe2da('0x33')],qs[_0xe2da('0x39')](_0x356ab4[_0xe2da('0x34')][_0xe2da('0x39')]));_0x262d40['attributes']=_0x262d40[_0xe2da('0x38')][_0xe2da('0x3a')]?_0x262d40[_0xe2da('0x38')]:_0x39f983['model'];if(!_0x356ab4[_0xe2da('0x34')][_0xe2da('0x3b')](_0xe2da('0x3c'))){_0x262d40['limit']=qs['limit'](_0x356ab4[_0xe2da('0x34')][_0xe2da('0x1f')]);_0x262d40['offset']=qs[_0xe2da('0x20')](_0x356ab4[_0xe2da('0x34')][_0xe2da('0x20')]);}_0x262d40[_0xe2da('0x3d')]=qs[_0xe2da('0x3e')](_0x356ab4['query'][_0xe2da('0x3e')]);_0x262d40['where']=qs['filters'](_[_0xe2da('0x3f')](_0x356ab4['query'],_0x39f983[_0xe2da('0x36')]),_0x15df33);if(_0x356ab4[_0xe2da('0x34')]['filter']){_0x262d40[_0xe2da('0x40')]=_[_0xe2da('0x41')](_0x262d40['where'],{'$or':_['map'](_0x15df33,function(_0x55be3e){if(_0x55be3e[_0xe2da('0x31')]!==_0xe2da('0x42')){var _0x26ba99={};_0x26ba99[_0x55be3e[_0xe2da('0x2d')]]={'$like':'%'+_0x356ab4[_0xe2da('0x34')][_0xe2da('0x43')]+'%'};return _0x26ba99;}})});}_0x262d40=_[_0xe2da('0x41')]({},_0x262d40,_0x356ab4['options']);var _0x3d1fd={'where':_0x262d40[_0xe2da('0x40')]};return db[_0xe2da('0x2f')][_0xe2da('0x21')](_0x3d1fd)[_0xe2da('0x27')](function(_0x5a1550){_0x7ab5ee[_0xe2da('0x21')]=_0x5a1550;if(_0x356ab4[_0xe2da('0x34')][_0xe2da('0x44')]){_0x262d40['include']=[{'all':!![]}];}return db[_0xe2da('0x2f')][_0xe2da('0x45')](_0x262d40);})[_0xe2da('0x27')](function(_0x4096c5){_0x7ab5ee[_0xe2da('0x46')]=_0x4096c5;return _0x7ab5ee;})[_0xe2da('0x27')](respondWithFilteredResult(_0x1ec8ca,_0x262d40))[_0xe2da('0x47')](handleError(_0x1ec8ca,null));};exports[_0xe2da('0x48')]=function(_0x4aec15,_0x21cc34){var _0x472d1e={'raw':!![],'where':{'id':_0x4aec15[_0xe2da('0x49')]['id']}},_0x2113e8={};_0x2113e8[_0xe2da('0x33')]=_['keys'](db[_0xe2da('0x2f')][_0xe2da('0x30')]);_0x2113e8[_0xe2da('0x34')]=_[_0xe2da('0x35')](_0x4aec15[_0xe2da('0x34')]);_0x2113e8[_0xe2da('0x36')]=_[_0xe2da('0x37')](_0x2113e8['model'],_0x2113e8[_0xe2da('0x34')]);_0x472d1e['attributes']=_[_0xe2da('0x37')](_0x2113e8[_0xe2da('0x33')],qs[_0xe2da('0x39')](_0x4aec15['query'][_0xe2da('0x39')]));_0x472d1e[_0xe2da('0x38')]=_0x472d1e['attributes'][_0xe2da('0x3a')]?_0x472d1e[_0xe2da('0x38')]:_0x2113e8[_0xe2da('0x33')];if(_0x4aec15['query'][_0xe2da('0x44')]){_0x472d1e['include']=[{'all':!![]}];}_0x472d1e=_['merge']({},_0x472d1e,_0x4aec15[_0xe2da('0x4a')]);return db['Tag'][_0xe2da('0x4b')](_0x472d1e)[_0xe2da('0x27')](handleEntityNotFound(_0x21cc34,null))['then'](respondWithResult(_0x21cc34,null))[_0xe2da('0x47')](handleError(_0x21cc34,null));};exports[_0xe2da('0x4c')]=function(_0x482547,_0x4a6d80){return db[_0xe2da('0x2f')]['create'](_0x482547[_0xe2da('0x4d')],{})[_0xe2da('0x27')](function(_0x259546){var _0x1c17f1=_0x482547[_0xe2da('0x4e')][_0xe2da('0x28')]({'plain':!![]});if(!_0x1c17f1)throw new Error(_0xe2da('0x4f'));if(_0x1c17f1[_0xe2da('0x50')]===_0xe2da('0x4e')){var _0x515f9b=_0x259546[_0xe2da('0x28')]({'plain':!![]});var _0x157c36=_0xe2da('0x29');return db['UserProfileSection'][_0xe2da('0x4b')]({'where':{'name':_0x157c36,'userProfileId':_0x1c17f1[_0xe2da('0x51')]},'raw':!![]})[_0xe2da('0x27')](function(_0x125118){if(_0x125118&&_0x125118[_0xe2da('0x52')]===0x0){return db[_0xe2da('0x2a')][_0xe2da('0x4c')]({'name':_0x515f9b['name'],'resourceId':_0x515f9b['id'],'type':_0x125118['name'],'sectionId':_0x125118['id']},{})[_0xe2da('0x27')](function(){return _0x259546;});}else{return _0x259546;}})[_0xe2da('0x47')](function(_0x28f916){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x28f916);throw _0x28f916;});}return _0x259546;})[_0xe2da('0x27')](respondWithResult(_0x4a6d80,0xc9))['catch'](handleError(_0x4a6d80,null));};exports[_0xe2da('0x26')]=function(_0x153749,_0x8e78b9){if(_0x153749[_0xe2da('0x4d')]['id']){delete _0x153749[_0xe2da('0x4d')]['id'];}return db[_0xe2da('0x2f')][_0xe2da('0x4b')]({'where':{'id':_0x153749[_0xe2da('0x49')]['id']}})[_0xe2da('0x27')](handleEntityNotFound(_0x8e78b9,null))['then'](saveUpdates(_0x153749[_0xe2da('0x4d')],null))[_0xe2da('0x27')](respondWithResult(_0x8e78b9,null))[_0xe2da('0x47')](handleError(_0x8e78b9,null));};exports[_0xe2da('0x2b')]=function(_0x51d174,_0x25b8a7){return db[_0xe2da('0x2f')][_0xe2da('0x4b')]({'where':{'id':_0x51d174['params']['id']}})[_0xe2da('0x27')](handleEntityNotFound(_0x25b8a7,null))[_0xe2da('0x27')](removeEntity(_0x25b8a7,null))[_0xe2da('0x47')](handleError(_0x25b8a7,null));};