Built motion from commit (unavailable).|2.5.14
[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 _0xa491=['to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','sendStatus','status','json','Content-Range','apply','reject','update','then','get','UserProfileResource','destroy','end','stack','name','send','index','map','Tag','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','limit','offset','order','sort','pick','filter','where','merge','VIRTUAL','count','includeAll','include','findAll','rows','show','rawAttributes','length','options','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','fast-json-patch','request-promise','moment','util','path','sox','ejs','squel','jsforce','desk.js'];(function(_0x242f39,_0x45c706){var _0x58c51c=function(_0x26e672){while(--_0x26e672){_0x242f39['push'](_0x242f39['shift']());}};_0x58c51c(++_0x45c706);}(_0xa491,0xe8));var _0x1a49=function(_0x3f8204,_0x1568e2){_0x3f8204=_0x3f8204-0x0;var _0x56b8f3=_0xa491[_0x3f8204];return _0x56b8f3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1a49('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x1a49('0x1'));var rp=require(_0x1a49('0x2'));var moment=require(_0x1a49('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1a49('0x4'));var path=require(_0x1a49('0x5'));var sox=require(_0x1a49('0x6'));var csv=require('to-csv');var ejs=require(_0x1a49('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x1a49('0x8'));var crypto=require('crypto');var jsforce=require(_0x1a49('0x9'));var deskjs=require(_0x1a49('0xa'));var toCsv=require(_0x1a49('0xb'));var querystring=require(_0x1a49('0xc'));var Papa=require(_0x1a49('0xd'));var Redis=require(_0x1a49('0xe'));var authService=require(_0x1a49('0xf'));var qs=require(_0x1a49('0x10'));var as=require(_0x1a49('0x11'));var hardwareService=require(_0x1a49('0x12'));var logger=require(_0x1a49('0x13'))(_0x1a49('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x1a49('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x27d8d4,_0x14f78d){_0x14f78d=_0x14f78d||0xcc;return function(_0x11384c){if(_0x11384c){return _0x27d8d4[_0x1a49('0x16')](_0x14f78d);}return _0x27d8d4[_0x1a49('0x17')](_0x14f78d)['end']();};}function respondWithResult(_0x35acfa,_0x5b06e1){_0x5b06e1=_0x5b06e1||0xc8;return function(_0x56a872){if(_0x56a872){return _0x35acfa[_0x1a49('0x17')](_0x5b06e1)[_0x1a49('0x18')](_0x56a872);}};}function respondWithFilteredResult(_0x4ab33b,_0x25d329){return function(_0x200be9){if(_0x200be9){var _0x2bbc01=_0x200be9['count'],_0x3718bf=_0x25d329['offset'],_0x280d43=_0x25d329['offset']+_0x25d329['limit'],_0x19a186;if(_0x280d43>=_0x2bbc01){_0x280d43=_0x2bbc01;_0x19a186=0xc8;}else{_0x19a186=0xce;}_0x4ab33b['status'](_0x19a186);return _0x4ab33b['set'](_0x1a49('0x19'),_0x3718bf+'-'+_0x280d43+'/'+_0x2bbc01)[_0x1a49('0x18')](_0x200be9);}return null;};}function patchUpdates(_0x289197){return function(_0x145e78){try{jsonpatch[_0x1a49('0x1a')](_0x145e78,_0x289197,!![]);}catch(_0x4ae914){return BPromise[_0x1a49('0x1b')](_0x4ae914);}return _0x145e78['save']();};}function saveUpdates(_0x34c9c4,_0x8f35e){return function(_0x4e30cf){if(_0x4e30cf){return _0x4e30cf[_0x1a49('0x1c')](_0x34c9c4)[_0x1a49('0x1d')](function(_0x45b27a){return _0x45b27a;});}return null;};}function removeEntity(_0x3f1cdd,_0x1645e5){return function(_0x50b3da){if(_0x50b3da){return _0x50b3da['destroy']()[_0x1a49('0x1d')](function(){var _0x47f26b=_0x50b3da[_0x1a49('0x1e')]({'plain':!![]});var _0x3a785f='Tags';return db[_0x1a49('0x1f')][_0x1a49('0x20')]({'where':{'type':_0x3a785f,'resourceId':_0x47f26b['id']}})['then'](function(){return _0x50b3da;});})[_0x1a49('0x1d')](function(){_0x3f1cdd['status'](0xcc)[_0x1a49('0x21')]();});}};}function handleEntityNotFound(_0x2e6ec9,_0x2468a7){return function(_0x45daf7){if(!_0x45daf7){_0x2e6ec9[_0x1a49('0x16')](0x194);}return _0x45daf7;};}function handleError(_0xf93fb9,_0x3e1635){_0x3e1635=_0x3e1635||0x1f4;return function(_0x1aaa62){logger['error'](_0x1aaa62[_0x1a49('0x22')]);if(_0x1aaa62[_0x1a49('0x23')]){delete _0x1aaa62['name'];}_0xf93fb9[_0x1a49('0x17')](_0x3e1635)[_0x1a49('0x24')](_0x1aaa62);};}exports[_0x1a49('0x25')]=function(_0x25185b,_0x7bd96e){var _0x4295fb={},_0x32fb1f={},_0xebf05f={'count':0x0,'rows':[]};var _0x2ac025=_[_0x1a49('0x26')](db[_0x1a49('0x27')]['rawAttributes'],function(_0x2856fb){return{'name':_0x2856fb[_0x1a49('0x28')],'type':_0x2856fb[_0x1a49('0x29')][_0x1a49('0x2a')]};});_0x32fb1f[_0x1a49('0x2b')]=_[_0x1a49('0x26')](_0x2ac025,'name');_0x32fb1f['query']=_[_0x1a49('0x2c')](_0x25185b[_0x1a49('0x2d')]);_0x32fb1f[_0x1a49('0x2e')]=_['intersection'](_0x32fb1f['model'],_0x32fb1f[_0x1a49('0x2d')]);_0x4295fb[_0x1a49('0x2f')]=_[_0x1a49('0x30')](_0x32fb1f['model'],qs['fields'](_0x25185b['query'][_0x1a49('0x31')]));_0x4295fb[_0x1a49('0x2f')]=_0x4295fb[_0x1a49('0x2f')]['length']?_0x4295fb[_0x1a49('0x2f')]:_0x32fb1f['model'];if(!_0x25185b[_0x1a49('0x2d')][_0x1a49('0x32')](_0x1a49('0x33'))){_0x4295fb[_0x1a49('0x34')]=qs[_0x1a49('0x34')](_0x25185b[_0x1a49('0x2d')][_0x1a49('0x34')]);_0x4295fb[_0x1a49('0x35')]=qs['offset'](_0x25185b[_0x1a49('0x2d')][_0x1a49('0x35')]);}_0x4295fb[_0x1a49('0x36')]=qs[_0x1a49('0x37')](_0x25185b[_0x1a49('0x2d')][_0x1a49('0x37')]);_0x4295fb['where']=qs[_0x1a49('0x2e')](_[_0x1a49('0x38')](_0x25185b[_0x1a49('0x2d')],_0x32fb1f[_0x1a49('0x2e')]),_0x2ac025);if(_0x25185b[_0x1a49('0x2d')][_0x1a49('0x39')]){_0x4295fb[_0x1a49('0x3a')]=_[_0x1a49('0x3b')](_0x4295fb[_0x1a49('0x3a')],{'$or':_[_0x1a49('0x26')](_0x2ac025,function(_0xeb056d){if(_0xeb056d[_0x1a49('0x29')]!==_0x1a49('0x3c')){var _0x44c0b2={};_0x44c0b2[_0xeb056d['name']]={'$like':'%'+_0x25185b[_0x1a49('0x2d')]['filter']+'%'};return _0x44c0b2;}})});}_0x4295fb=_['merge']({},_0x4295fb,_0x25185b['options']);var _0x4c5952={'where':_0x4295fb['where']};return db[_0x1a49('0x27')][_0x1a49('0x3d')](_0x4c5952)['then'](function(_0x3b0ecc){_0xebf05f[_0x1a49('0x3d')]=_0x3b0ecc;if(_0x25185b[_0x1a49('0x2d')][_0x1a49('0x3e')]){_0x4295fb[_0x1a49('0x3f')]=[{'all':!![]}];}return db['Tag'][_0x1a49('0x40')](_0x4295fb);})[_0x1a49('0x1d')](function(_0x81118a){_0xebf05f[_0x1a49('0x41')]=_0x81118a;return _0xebf05f;})[_0x1a49('0x1d')](respondWithFilteredResult(_0x7bd96e,_0x4295fb))['catch'](handleError(_0x7bd96e,null));};exports[_0x1a49('0x42')]=function(_0x386d12,_0x156575){var _0x123eb6={'raw':!![],'where':{'id':_0x386d12['params']['id']}},_0x4dd181={};_0x4dd181[_0x1a49('0x2b')]=_[_0x1a49('0x2c')](db['Tag'][_0x1a49('0x43')]);_0x4dd181[_0x1a49('0x2d')]=_[_0x1a49('0x2c')](_0x386d12[_0x1a49('0x2d')]);_0x4dd181[_0x1a49('0x2e')]=_[_0x1a49('0x30')](_0x4dd181[_0x1a49('0x2b')],_0x4dd181['query']);_0x123eb6[_0x1a49('0x2f')]=_[_0x1a49('0x30')](_0x4dd181['model'],qs[_0x1a49('0x31')](_0x386d12[_0x1a49('0x2d')][_0x1a49('0x31')]));_0x123eb6[_0x1a49('0x2f')]=_0x123eb6[_0x1a49('0x2f')][_0x1a49('0x44')]?_0x123eb6[_0x1a49('0x2f')]:_0x4dd181[_0x1a49('0x2b')];if(_0x386d12[_0x1a49('0x2d')][_0x1a49('0x3e')]){_0x123eb6[_0x1a49('0x3f')]=[{'all':!![]}];}_0x123eb6=_['merge']({},_0x123eb6,_0x386d12[_0x1a49('0x45')]);return db[_0x1a49('0x27')]['find'](_0x123eb6)['then'](handleEntityNotFound(_0x156575,null))['then'](respondWithResult(_0x156575,null))[_0x1a49('0x46')](handleError(_0x156575,null));};exports[_0x1a49('0x47')]=function(_0x58a16e,_0x18e62a){return db[_0x1a49('0x27')][_0x1a49('0x47')](_0x58a16e['body'],{})[_0x1a49('0x1d')](function(_0xb23215){var _0x5c5fbb=_0x58a16e[_0x1a49('0x48')][_0x1a49('0x1e')]({'plain':!![]});if(!_0x5c5fbb)throw new Error(_0x1a49('0x49'));if(_0x5c5fbb['role']===_0x1a49('0x48')){var _0x3abf86=_0xb23215['get']({'plain':!![]});var _0x2b1624='Tags';return db[_0x1a49('0x4a')][_0x1a49('0x4b')]({'where':{'name':_0x2b1624,'userProfileId':_0x5c5fbb['userProfileId']},'raw':!![]})[_0x1a49('0x1d')](function(_0x59773a){if(_0x59773a&&_0x59773a[_0x1a49('0x4c')]===0x0){return db['UserProfileResource'][_0x1a49('0x47')]({'name':_0x3abf86['name'],'resourceId':_0x3abf86['id'],'type':_0x59773a[_0x1a49('0x23')],'sectionId':_0x59773a['id']},{})[_0x1a49('0x1d')](function(){return _0xb23215;});}else{return _0xb23215;}})['catch'](function(_0x1e23ef){logger[_0x1a49('0x4d')](_0x1a49('0x4e'),_0x1e23ef);throw _0x1e23ef;});}return _0xb23215;})['then'](respondWithResult(_0x18e62a,0xc9))[_0x1a49('0x46')](handleError(_0x18e62a,null));};exports['update']=function(_0xf61740,_0x4a2321){if(_0xf61740[_0x1a49('0x4f')]['id']){delete _0xf61740['body']['id'];}return db['Tag'][_0x1a49('0x4b')]({'where':{'id':_0xf61740[_0x1a49('0x50')]['id']}})[_0x1a49('0x1d')](handleEntityNotFound(_0x4a2321,null))['then'](saveUpdates(_0xf61740[_0x1a49('0x4f')],null))[_0x1a49('0x1d')](respondWithResult(_0x4a2321,null))[_0x1a49('0x46')](handleError(_0x4a2321,null));};exports[_0x1a49('0x20')]=function(_0x197024,_0x59f93e){return db[_0x1a49('0x27')][_0x1a49('0x4b')]({'where':{'id':_0x197024[_0x1a49('0x50')]['id']}})['then'](handleEntityNotFound(_0x59f93e,null))[_0x1a49('0x1d')](removeEntity(_0x59f93e,null))[_0x1a49('0x46')](handleError(_0x59f93e,null));};