df3927b8333cdcfb709ad1a1c53843c297d30434
[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 _0x4fef=['keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','json','apply','reject','then','destroy','get','Tags','UserProfileResource','name','send','map','Tag','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params'];(function(_0x1b1d70,_0x2e44cc){var _0x6897c7=function(_0x21052c){while(--_0x21052c){_0x1b1d70['push'](_0x1b1d70['shift']());}};_0x6897c7(++_0x2e44cc);}(_0x4fef,0x10f));var _0xf4fe=function(_0x387697,_0x347f65){_0x387697=_0x387697-0x0;var _0x1230e6=_0x4fef[_0x387697];return _0x1230e6;};'use strict';var emlformat=require(_0xf4fe('0x0'));var rimraf=require(_0xf4fe('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf4fe('0x2'));var rp=require('request-promise');var moment=require(_0xf4fe('0x3'));var BPromise=require(_0xf4fe('0x4'));var Mustache=require(_0xf4fe('0x5'));var util=require(_0xf4fe('0x6'));var path=require(_0xf4fe('0x7'));var sox=require(_0xf4fe('0x8'));var csv=require(_0xf4fe('0x9'));var ejs=require(_0xf4fe('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf4fe('0xb'));var squel=require(_0xf4fe('0xc'));var crypto=require('crypto');var jsforce=require(_0xf4fe('0xd'));var deskjs=require(_0xf4fe('0xe'));var toCsv=require(_0xf4fe('0x9'));var querystring=require(_0xf4fe('0xf'));var Papa=require(_0xf4fe('0x10'));var Redis=require(_0xf4fe('0x11'));var authService=require(_0xf4fe('0x12'));var qs=require(_0xf4fe('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf4fe('0x14'));var logger=require('../../config/logger')(_0xf4fe('0x15'));var utils=require(_0xf4fe('0x16'));var config=require(_0xf4fe('0x17'));var licenseUtil=require(_0xf4fe('0x18'));var db=require(_0xf4fe('0x19'))['db'];function respondWithStatusCode(_0x5c0ae7,_0x1ca9d3){_0x1ca9d3=_0x1ca9d3||0xcc;return function(_0xade41e){if(_0xade41e){return _0x5c0ae7[_0xf4fe('0x1a')](_0x1ca9d3);}return _0x5c0ae7['status'](_0x1ca9d3)[_0xf4fe('0x1b')]();};}function respondWithResult(_0x4824f5,_0x3ce3f1){_0x3ce3f1=_0x3ce3f1||0xc8;return function(_0x457a14){if(_0x457a14){return _0x4824f5[_0xf4fe('0x1c')](_0x3ce3f1)['json'](_0x457a14);}};}function respondWithFilteredResult(_0x93346e,_0x3442f1){return function(_0x5de99e){if(_0x5de99e){var _0x2a00ea=typeof _0x3442f1[_0xf4fe('0x1d')]===_0xf4fe('0x1e')&&typeof _0x3442f1['limit']==='undefined';var _0x10cf15=_0x5de99e[_0xf4fe('0x1f')];var _0x5ad86c=_0x2a00ea?0x0:_0x3442f1['offset'];var _0x24c818=_0x2a00ea?_0x5de99e[_0xf4fe('0x1f')]:_0x3442f1[_0xf4fe('0x1d')]+_0x3442f1[_0xf4fe('0x20')];var _0x364aa6;if(_0x24c818>=_0x10cf15){_0x24c818=_0x10cf15;_0x364aa6=0xc8;}else{_0x364aa6=0xce;}_0x93346e[_0xf4fe('0x1c')](_0x364aa6);return _0x93346e[_0xf4fe('0x21')](_0xf4fe('0x22'),_0x5ad86c+'-'+_0x24c818+'/'+_0x10cf15)[_0xf4fe('0x23')](_0x5de99e);}return null;};}function patchUpdates(_0x223676){return function(_0x2eb45e){try{jsonpatch[_0xf4fe('0x24')](_0x2eb45e,_0x223676,!![]);}catch(_0x453f01){return BPromise[_0xf4fe('0x25')](_0x453f01);}return _0x2eb45e['save']();};}function saveUpdates(_0x3e1d03,_0x5e8e18){return function(_0x502b3c){if(_0x502b3c){return _0x502b3c['update'](_0x3e1d03)[_0xf4fe('0x26')](function(_0x518d0d){return _0x518d0d;});}return null;};}function removeEntity(_0x5eb921,_0xd3bfb3){return function(_0x1ba32a){if(_0x1ba32a){return _0x1ba32a[_0xf4fe('0x27')]()[_0xf4fe('0x26')](function(){var _0x1756f9=_0x1ba32a[_0xf4fe('0x28')]({'plain':!![]});var _0x51dc14=_0xf4fe('0x29');return db[_0xf4fe('0x2a')][_0xf4fe('0x27')]({'where':{'type':_0x51dc14,'resourceId':_0x1756f9['id']}})[_0xf4fe('0x26')](function(){return _0x1ba32a;});})[_0xf4fe('0x26')](function(){_0x5eb921[_0xf4fe('0x1c')](0xcc)[_0xf4fe('0x1b')]();});}};}function handleEntityNotFound(_0x5790f9,_0x35ae34){return function(_0x112b80){if(!_0x112b80){_0x5790f9[_0xf4fe('0x1a')](0x194);}return _0x112b80;};}function handleError(_0x5c3f68,_0x538a68){_0x538a68=_0x538a68||0x1f4;return function(_0x2c94c9){logger['error'](_0x2c94c9['stack']);if(_0x2c94c9[_0xf4fe('0x2b')]){delete _0x2c94c9[_0xf4fe('0x2b')];}_0x5c3f68[_0xf4fe('0x1c')](_0x538a68)[_0xf4fe('0x2c')](_0x2c94c9);};}exports['index']=function(_0x50a6a3,_0x4b4832){var _0x6a5205={},_0x5990de={},_0x89403c={'count':0x0,'rows':[]};var _0x3c2380=_[_0xf4fe('0x2d')](db[_0xf4fe('0x2e')][_0xf4fe('0x2f')],function(_0x3a0109){return{'name':_0x3a0109[_0xf4fe('0x30')],'type':_0x3a0109[_0xf4fe('0x31')][_0xf4fe('0x32')]};});_0x5990de[_0xf4fe('0x33')]=_[_0xf4fe('0x2d')](_0x3c2380,_0xf4fe('0x2b'));_0x5990de[_0xf4fe('0x34')]=_['keys'](_0x50a6a3[_0xf4fe('0x34')]);_0x5990de[_0xf4fe('0x35')]=_['intersection'](_0x5990de[_0xf4fe('0x33')],_0x5990de[_0xf4fe('0x34')]);_0x6a5205['attributes']=_[_0xf4fe('0x36')](_0x5990de[_0xf4fe('0x33')],qs[_0xf4fe('0x37')](_0x50a6a3[_0xf4fe('0x34')][_0xf4fe('0x37')]));_0x6a5205[_0xf4fe('0x38')]=_0x6a5205['attributes'][_0xf4fe('0x39')]?_0x6a5205[_0xf4fe('0x38')]:_0x5990de['model'];if(!_0x50a6a3[_0xf4fe('0x34')][_0xf4fe('0x3a')](_0xf4fe('0x3b'))){_0x6a5205[_0xf4fe('0x20')]=qs[_0xf4fe('0x20')](_0x50a6a3['query'][_0xf4fe('0x20')]);_0x6a5205[_0xf4fe('0x1d')]=qs[_0xf4fe('0x1d')](_0x50a6a3['query'][_0xf4fe('0x1d')]);}_0x6a5205[_0xf4fe('0x3c')]=qs['sort'](_0x50a6a3[_0xf4fe('0x34')]['sort']);_0x6a5205['where']=qs[_0xf4fe('0x35')](_[_0xf4fe('0x3d')](_0x50a6a3[_0xf4fe('0x34')],_0x5990de['filters']),_0x3c2380);if(_0x50a6a3[_0xf4fe('0x34')][_0xf4fe('0x3e')]){_0x6a5205[_0xf4fe('0x3f')]=_[_0xf4fe('0x40')](_0x6a5205[_0xf4fe('0x3f')],{'$or':_['map'](_0x3c2380,function(_0x4623c4){if(_0x4623c4['type']!=='VIRTUAL'){var _0x3e806c={};_0x3e806c[_0x4623c4[_0xf4fe('0x2b')]]={'$like':'%'+_0x50a6a3[_0xf4fe('0x34')][_0xf4fe('0x3e')]+'%'};return _0x3e806c;}})});}_0x6a5205=_['merge']({},_0x6a5205,_0x50a6a3[_0xf4fe('0x41')]);var _0x25540d={'where':_0x6a5205['where']};return db[_0xf4fe('0x2e')][_0xf4fe('0x1f')](_0x25540d)[_0xf4fe('0x26')](function(_0xac4bf4){_0x89403c['count']=_0xac4bf4;if(_0x50a6a3[_0xf4fe('0x34')][_0xf4fe('0x42')]){_0x6a5205[_0xf4fe('0x43')]=[{'all':!![]}];}return db['Tag'][_0xf4fe('0x44')](_0x6a5205);})[_0xf4fe('0x26')](function(_0x240379){_0x89403c[_0xf4fe('0x45')]=_0x240379;return _0x89403c;})['then'](respondWithFilteredResult(_0x4b4832,_0x6a5205))[_0xf4fe('0x46')](handleError(_0x4b4832,null));};exports[_0xf4fe('0x47')]=function(_0x3ecd8b,_0x2ee92b){var _0x2e5286={'raw':!![],'where':{'id':_0x3ecd8b[_0xf4fe('0x48')]['id']}},_0x5effba={};_0x5effba[_0xf4fe('0x33')]=_[_0xf4fe('0x49')](db[_0xf4fe('0x2e')][_0xf4fe('0x2f')]);_0x5effba[_0xf4fe('0x34')]=_[_0xf4fe('0x49')](_0x3ecd8b[_0xf4fe('0x34')]);_0x5effba['filters']=_[_0xf4fe('0x36')](_0x5effba['model'],_0x5effba[_0xf4fe('0x34')]);_0x2e5286[_0xf4fe('0x38')]=_[_0xf4fe('0x36')](_0x5effba['model'],qs[_0xf4fe('0x37')](_0x3ecd8b[_0xf4fe('0x34')][_0xf4fe('0x37')]));_0x2e5286[_0xf4fe('0x38')]=_0x2e5286['attributes'][_0xf4fe('0x39')]?_0x2e5286['attributes']:_0x5effba[_0xf4fe('0x33')];if(_0x3ecd8b[_0xf4fe('0x34')][_0xf4fe('0x42')]){_0x2e5286[_0xf4fe('0x43')]=[{'all':!![]}];}_0x2e5286=_[_0xf4fe('0x40')]({},_0x2e5286,_0x3ecd8b['options']);return db[_0xf4fe('0x2e')]['find'](_0x2e5286)[_0xf4fe('0x26')](handleEntityNotFound(_0x2ee92b,null))[_0xf4fe('0x26')](respondWithResult(_0x2ee92b,null))[_0xf4fe('0x46')](handleError(_0x2ee92b,null));};exports['create']=function(_0x59de95,_0x59dcdf){return db[_0xf4fe('0x2e')][_0xf4fe('0x4a')](_0x59de95[_0xf4fe('0x4b')],{})[_0xf4fe('0x26')](function(_0x6cdec6){var _0x2d8597=_0x59de95[_0xf4fe('0x4c')]['get']({'plain':!![]});if(!_0x2d8597)throw new Error(_0xf4fe('0x4d'));if(_0x2d8597[_0xf4fe('0x4e')]===_0xf4fe('0x4c')){var _0x4bf5d7=_0x6cdec6[_0xf4fe('0x28')]({'plain':!![]});var _0x41d55c='Tags';return db[_0xf4fe('0x4f')][_0xf4fe('0x50')]({'where':{'name':_0x41d55c,'userProfileId':_0x2d8597[_0xf4fe('0x51')]},'raw':!![]})['then'](function(_0x56d5ad){if(_0x56d5ad&&_0x56d5ad[_0xf4fe('0x52')]===0x0){return db[_0xf4fe('0x2a')][_0xf4fe('0x4a')]({'name':_0x4bf5d7[_0xf4fe('0x2b')],'resourceId':_0x4bf5d7['id'],'type':_0x56d5ad['name'],'sectionId':_0x56d5ad['id']},{})[_0xf4fe('0x26')](function(){return _0x6cdec6;});}else{return _0x6cdec6;}})[_0xf4fe('0x46')](function(_0x215bc7){logger[_0xf4fe('0x53')](_0xf4fe('0x54'),_0x215bc7);throw _0x215bc7;});}return _0x6cdec6;})[_0xf4fe('0x26')](respondWithResult(_0x59dcdf,0xc9))['catch'](handleError(_0x59dcdf,null));};exports[_0xf4fe('0x55')]=function(_0x8e8876,_0x52895a){if(_0x8e8876[_0xf4fe('0x4b')]['id']){delete _0x8e8876[_0xf4fe('0x4b')]['id'];}return db[_0xf4fe('0x2e')][_0xf4fe('0x50')]({'where':{'id':_0x8e8876['params']['id']}})['then'](handleEntityNotFound(_0x52895a,null))['then'](saveUpdates(_0x8e8876[_0xf4fe('0x4b')],null))[_0xf4fe('0x26')](respondWithResult(_0x52895a,null))['catch'](handleError(_0x52895a,null));};exports[_0xf4fe('0x27')]=function(_0x67a86e,_0x1f21a4){return db[_0xf4fe('0x2e')][_0xf4fe('0x50')]({'where':{'id':_0x67a86e[_0xf4fe('0x48')]['id']}})[_0xf4fe('0x26')](handleEntityNotFound(_0x1f21a4,null))['then'](removeEntity(_0x1f21a4,null))[_0xf4fe('0x46')](handleError(_0x1f21a4,null));};