926109018464edf9e52ae05c6ac44feb8fcaa435
[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 _0xdd03=['querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','count','set','save','update','then','destroy','get','UserProfileResource','error','stack','send','index','map','Tag','key','model','name','query','keys','filters','attributes','intersection','fields','length','nolimit','sort','where','pick','filter','merge','type','options','includeAll','findAll','rows','show','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv'];(function(_0x5cda3e,_0x216c8c){var _0x32e52c=function(_0x16a3b5){while(--_0x16a3b5){_0x5cda3e['push'](_0x5cda3e['shift']());}};_0x32e52c(++_0x216c8c);}(_0xdd03,0xe5));var _0x3dd0=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xdd03[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3dd0('0x0'));var rp=require(_0x3dd0('0x1'));var moment=require(_0x3dd0('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x3dd0('0x3'));var util=require(_0x3dd0('0x4'));var path=require('path');var sox=require(_0x3dd0('0x5'));var csv=require('to-csv');var ejs=require(_0x3dd0('0x6'));var fs=require('fs');var fs_extra=require(_0x3dd0('0x7'));var _=require(_0x3dd0('0x8'));var squel=require(_0x3dd0('0x9'));var crypto=require(_0x3dd0('0xa'));var jsforce=require(_0x3dd0('0xb'));var deskjs=require(_0x3dd0('0xc'));var toCsv=require(_0x3dd0('0xd'));var querystring=require(_0x3dd0('0xe'));var Papa=require('papaparse');var Redis=require(_0x3dd0('0xf'));var authService=require(_0x3dd0('0x10'));var qs=require(_0x3dd0('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3dd0('0x12'));var logger=require(_0x3dd0('0x13'))(_0x3dd0('0x14'));var utils=require(_0x3dd0('0x15'));var config=require(_0x3dd0('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x50d20b,_0x1a8bb7){_0x1a8bb7=_0x1a8bb7||0xcc;return function(_0x52f757){if(_0x52f757){return _0x50d20b[_0x3dd0('0x17')](_0x1a8bb7);}return _0x50d20b['status'](_0x1a8bb7)[_0x3dd0('0x18')]();};}function respondWithResult(_0x1dee9e,_0x2f3174){_0x2f3174=_0x2f3174||0xc8;return function(_0x526eeb){if(_0x526eeb){return _0x1dee9e[_0x3dd0('0x19')](_0x2f3174)[_0x3dd0('0x1a')](_0x526eeb);}};}function respondWithFilteredResult(_0x25f612,_0x176526){return function(_0x2b57f0){if(_0x2b57f0){var _0x75c5a8=typeof _0x176526[_0x3dd0('0x1b')]===_0x3dd0('0x1c')&&typeof _0x176526[_0x3dd0('0x1d')]===_0x3dd0('0x1c');var _0x247bc3=_0x2b57f0[_0x3dd0('0x1e')];var _0x328903=_0x75c5a8?0x0:_0x176526[_0x3dd0('0x1b')];var _0x59c882=_0x75c5a8?_0x2b57f0[_0x3dd0('0x1e')]:_0x176526[_0x3dd0('0x1b')]+_0x176526[_0x3dd0('0x1d')];var _0x173679;if(_0x59c882>=_0x247bc3){_0x59c882=_0x247bc3;_0x173679=0xc8;}else{_0x173679=0xce;}_0x25f612[_0x3dd0('0x19')](_0x173679);return _0x25f612[_0x3dd0('0x1f')]('Content-Range',_0x328903+'-'+_0x59c882+'/'+_0x247bc3)[_0x3dd0('0x1a')](_0x2b57f0);}return null;};}function patchUpdates(_0x20ab25){return function(_0x33df87){try{jsonpatch['apply'](_0x33df87,_0x20ab25,!![]);}catch(_0x2afc66){return BPromise['reject'](_0x2afc66);}return _0x33df87[_0x3dd0('0x20')]();};}function saveUpdates(_0x57ffeb,_0x5237da){return function(_0x38d262){if(_0x38d262){return _0x38d262[_0x3dd0('0x21')](_0x57ffeb)[_0x3dd0('0x22')](function(_0x4f7aa8){return _0x4f7aa8;});}return null;};}function removeEntity(_0x144b66,_0x1ea8ab){return function(_0x3b4156){if(_0x3b4156){return _0x3b4156[_0x3dd0('0x23')]()[_0x3dd0('0x22')](function(){var _0x2423fd=_0x3b4156[_0x3dd0('0x24')]({'plain':!![]});var _0x50a0d9='Tags';return db[_0x3dd0('0x25')]['destroy']({'where':{'type':_0x50a0d9,'resourceId':_0x2423fd['id']}})[_0x3dd0('0x22')](function(){return _0x3b4156;});})['then'](function(){_0x144b66[_0x3dd0('0x19')](0xcc)[_0x3dd0('0x18')]();});}};}function handleEntityNotFound(_0x51adf1,_0x28e96e){return function(_0x5e0d5d){if(!_0x5e0d5d){_0x51adf1[_0x3dd0('0x17')](0x194);}return _0x5e0d5d;};}function handleError(_0x201bee,_0x4f01eb){_0x4f01eb=_0x4f01eb||0x1f4;return function(_0x48c06a){logger[_0x3dd0('0x26')](_0x48c06a[_0x3dd0('0x27')]);if(_0x48c06a['name']){delete _0x48c06a['name'];}_0x201bee[_0x3dd0('0x19')](_0x4f01eb)[_0x3dd0('0x28')](_0x48c06a);};}exports[_0x3dd0('0x29')]=function(_0x3f7b62,_0x881acd){var _0x201599={},_0x4682d9={},_0x2ea22f={'count':0x0,'rows':[]};var _0x19b2ac=_[_0x3dd0('0x2a')](db[_0x3dd0('0x2b')]['rawAttributes'],function(_0x3f176a){return{'name':_0x3f176a['fieldName'],'type':_0x3f176a['type'][_0x3dd0('0x2c')]};});_0x4682d9[_0x3dd0('0x2d')]=_[_0x3dd0('0x2a')](_0x19b2ac,_0x3dd0('0x2e'));_0x4682d9[_0x3dd0('0x2f')]=_[_0x3dd0('0x30')](_0x3f7b62[_0x3dd0('0x2f')]);_0x4682d9[_0x3dd0('0x31')]=_['intersection'](_0x4682d9[_0x3dd0('0x2d')],_0x4682d9[_0x3dd0('0x2f')]);_0x201599[_0x3dd0('0x32')]=_[_0x3dd0('0x33')](_0x4682d9[_0x3dd0('0x2d')],qs[_0x3dd0('0x34')](_0x3f7b62[_0x3dd0('0x2f')]['fields']));_0x201599['attributes']=_0x201599['attributes'][_0x3dd0('0x35')]?_0x201599[_0x3dd0('0x32')]:_0x4682d9[_0x3dd0('0x2d')];if(!_0x3f7b62['query']['hasOwnProperty'](_0x3dd0('0x36'))){_0x201599[_0x3dd0('0x1d')]=qs[_0x3dd0('0x1d')](_0x3f7b62[_0x3dd0('0x2f')]['limit']);_0x201599[_0x3dd0('0x1b')]=qs[_0x3dd0('0x1b')](_0x3f7b62['query'][_0x3dd0('0x1b')]);}_0x201599['order']=qs['sort'](_0x3f7b62[_0x3dd0('0x2f')][_0x3dd0('0x37')]);_0x201599[_0x3dd0('0x38')]=qs[_0x3dd0('0x31')](_[_0x3dd0('0x39')](_0x3f7b62[_0x3dd0('0x2f')],_0x4682d9[_0x3dd0('0x31')]),_0x19b2ac);if(_0x3f7b62[_0x3dd0('0x2f')][_0x3dd0('0x3a')]){_0x201599['where']=_[_0x3dd0('0x3b')](_0x201599[_0x3dd0('0x38')],{'$or':_['map'](_0x19b2ac,function(_0x17da16){if(_0x17da16[_0x3dd0('0x3c')]!=='VIRTUAL'){var _0x54ada9={};_0x54ada9[_0x17da16[_0x3dd0('0x2e')]]={'$like':'%'+_0x3f7b62['query'][_0x3dd0('0x3a')]+'%'};return _0x54ada9;}})});}_0x201599=_['merge']({},_0x201599,_0x3f7b62[_0x3dd0('0x3d')]);var _0x497589={'where':_0x201599[_0x3dd0('0x38')]};return db[_0x3dd0('0x2b')][_0x3dd0('0x1e')](_0x497589)[_0x3dd0('0x22')](function(_0x197c95){_0x2ea22f['count']=_0x197c95;if(_0x3f7b62['query'][_0x3dd0('0x3e')]){_0x201599['include']=[{'all':!![]}];}return db['Tag'][_0x3dd0('0x3f')](_0x201599);})[_0x3dd0('0x22')](function(_0xd6ef58){_0x2ea22f[_0x3dd0('0x40')]=_0xd6ef58;return _0x2ea22f;})['then'](respondWithFilteredResult(_0x881acd,_0x201599))['catch'](handleError(_0x881acd,null));};exports[_0x3dd0('0x41')]=function(_0x34ba66,_0xad4eb1){var _0x3fdf54={'raw':!![],'where':{'id':_0x34ba66['params']['id']}},_0x3a96db={};_0x3a96db[_0x3dd0('0x2d')]=_['keys'](db[_0x3dd0('0x2b')][_0x3dd0('0x42')]);_0x3a96db['query']=_[_0x3dd0('0x30')](_0x34ba66[_0x3dd0('0x2f')]);_0x3a96db[_0x3dd0('0x31')]=_[_0x3dd0('0x33')](_0x3a96db[_0x3dd0('0x2d')],_0x3a96db[_0x3dd0('0x2f')]);_0x3fdf54[_0x3dd0('0x32')]=_[_0x3dd0('0x33')](_0x3a96db[_0x3dd0('0x2d')],qs[_0x3dd0('0x34')](_0x34ba66[_0x3dd0('0x2f')][_0x3dd0('0x34')]));_0x3fdf54['attributes']=_0x3fdf54[_0x3dd0('0x32')][_0x3dd0('0x35')]?_0x3fdf54[_0x3dd0('0x32')]:_0x3a96db[_0x3dd0('0x2d')];if(_0x34ba66[_0x3dd0('0x2f')][_0x3dd0('0x3e')]){_0x3fdf54['include']=[{'all':!![]}];}_0x3fdf54=_[_0x3dd0('0x3b')]({},_0x3fdf54,_0x34ba66[_0x3dd0('0x3d')]);return db[_0x3dd0('0x2b')][_0x3dd0('0x43')](_0x3fdf54)[_0x3dd0('0x22')](handleEntityNotFound(_0xad4eb1,null))['then'](respondWithResult(_0xad4eb1,null))['catch'](handleError(_0xad4eb1,null));};exports[_0x3dd0('0x44')]=function(_0x2b6361,_0x312c8b){return db['Tag'][_0x3dd0('0x44')](_0x2b6361[_0x3dd0('0x45')],{})[_0x3dd0('0x22')](function(_0x76e263){var _0x2bd6e2=_0x2b6361[_0x3dd0('0x46')][_0x3dd0('0x24')]({'plain':!![]});if(!_0x2bd6e2)throw new Error(_0x3dd0('0x47'));if(_0x2bd6e2[_0x3dd0('0x48')]===_0x3dd0('0x46')){var _0x35d6ac=_0x76e263['get']({'plain':!![]});var _0x339f5f=_0x3dd0('0x49');return db[_0x3dd0('0x4a')][_0x3dd0('0x43')]({'where':{'name':_0x339f5f,'userProfileId':_0x2bd6e2[_0x3dd0('0x4b')]},'raw':!![]})[_0x3dd0('0x22')](function(_0x176a01){if(_0x176a01&&_0x176a01[_0x3dd0('0x4c')]===0x0){return db[_0x3dd0('0x25')][_0x3dd0('0x44')]({'name':_0x35d6ac[_0x3dd0('0x2e')],'resourceId':_0x35d6ac['id'],'type':_0x176a01[_0x3dd0('0x2e')],'sectionId':_0x176a01['id']},{})['then'](function(){return _0x76e263;});}else{return _0x76e263;}})[_0x3dd0('0x4d')](function(_0x1b8db7){logger[_0x3dd0('0x26')](_0x3dd0('0x4e'),_0x1b8db7);throw _0x1b8db7;});}return _0x76e263;})['then'](respondWithResult(_0x312c8b,0xc9))['catch'](handleError(_0x312c8b,null));};exports['update']=function(_0x11011f,_0x19e82c){if(_0x11011f[_0x3dd0('0x45')]['id']){delete _0x11011f[_0x3dd0('0x45')]['id'];}return db[_0x3dd0('0x2b')][_0x3dd0('0x43')]({'where':{'id':_0x11011f['params']['id']}})[_0x3dd0('0x22')](handleEntityNotFound(_0x19e82c,null))['then'](saveUpdates(_0x11011f[_0x3dd0('0x45')],null))['then'](respondWithResult(_0x19e82c,null))[_0x3dd0('0x4d')](handleError(_0x19e82c,null));};exports[_0x3dd0('0x23')]=function(_0x158f59,_0x5c49f5){return db[_0x3dd0('0x2b')][_0x3dd0('0x43')]({'where':{'id':_0x158f59[_0x3dd0('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5c49f5,null))['then'](removeEntity(_0x5c49f5,null))['catch'](handleError(_0x5c49f5,null));};exports[_0x3dd0('0x50')]=function(_0x11d6e6,_0x3cbc1a){return db[_0x3dd0('0x2b')]['describe']()['then'](respondWithResult(_0x3cbc1a,null))[_0x3dd0('0x4d')](handleError(_0x3cbc1a,null));};