Built motion from commit 25580385.|2.6.2
[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 _0x87ae=['moment','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','offset','limit','undefined','count','set','Content-Range','json','apply','reject','update','then','UserProfileResource','destroy','status','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','VIRTUAL','options','Tag','includeAll','findAll','rows','show','params','length','include','find','catch','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','zip-dir'];(function(_0x3826ad,_0x49a30d){var _0x17b900=function(_0x38474f){while(--_0x38474f){_0x3826ad['push'](_0x3826ad['shift']());}};_0x17b900(++_0x49a30d);}(_0x87ae,0xf5));var _0xe87a=function(_0xc77819,_0x139fdc){_0xc77819=_0xc77819-0x0;var _0x1c9434=_0x87ae[_0xc77819];return _0x1c9434;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe87a('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe87a('0x1'));var BPromise=require(_0xe87a('0x2'));var Mustache=require(_0xe87a('0x3'));var util=require('util');var path=require(_0xe87a('0x4'));var sox=require(_0xe87a('0x5'));var csv=require(_0xe87a('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe87a('0x7'));var squel=require(_0xe87a('0x8'));var crypto=require('crypto');var jsforce=require(_0xe87a('0x9'));var deskjs=require(_0xe87a('0xa'));var toCsv=require('to-csv');var querystring=require(_0xe87a('0xb'));var Papa=require(_0xe87a('0xc'));var Redis=require('ioredis');var authService=require(_0xe87a('0xd'));var qs=require(_0xe87a('0xe'));var as=require(_0xe87a('0xf'));var hardwareService=require(_0xe87a('0x10'));var logger=require(_0xe87a('0x11'))(_0xe87a('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe87a('0x13'));var db=require(_0xe87a('0x14'))['db'];function respondWithStatusCode(_0x3e990c,_0x4db185){_0x4db185=_0x4db185||0xcc;return function(_0x1a725a){if(_0x1a725a){return _0x3e990c[_0xe87a('0x15')](_0x4db185);}return _0x3e990c['status'](_0x4db185)[_0xe87a('0x16')]();};}function respondWithResult(_0x353c52,_0x136340){_0x136340=_0x136340||0xc8;return function(_0x5032c5){if(_0x5032c5){return _0x353c52['status'](_0x136340)['json'](_0x5032c5);}};}function respondWithFilteredResult(_0x53a4f7,_0x44474f){return function(_0x1fa2cd){if(_0x1fa2cd){var _0xd2ca53=typeof _0x44474f[_0xe87a('0x17')]==='undefined'&&typeof _0x44474f[_0xe87a('0x18')]===_0xe87a('0x19');var _0x527c58=_0x1fa2cd['count'];var _0x4160e2=_0xd2ca53?0x0:_0x44474f['offset'];var _0x182e6f=_0xd2ca53?_0x1fa2cd[_0xe87a('0x1a')]:_0x44474f[_0xe87a('0x17')]+_0x44474f['limit'];var _0x444eeb;if(_0x182e6f>=_0x527c58){_0x182e6f=_0x527c58;_0x444eeb=0xc8;}else{_0x444eeb=0xce;}_0x53a4f7['status'](_0x444eeb);return _0x53a4f7[_0xe87a('0x1b')](_0xe87a('0x1c'),_0x4160e2+'-'+_0x182e6f+'/'+_0x527c58)[_0xe87a('0x1d')](_0x1fa2cd);}return null;};}function patchUpdates(_0x4059e1){return function(_0x104f67){try{jsonpatch[_0xe87a('0x1e')](_0x104f67,_0x4059e1,!![]);}catch(_0x1e37aa){return BPromise[_0xe87a('0x1f')](_0x1e37aa);}return _0x104f67['save']();};}function saveUpdates(_0x59c17c,_0x42ba03){return function(_0x363c6a){if(_0x363c6a){return _0x363c6a[_0xe87a('0x20')](_0x59c17c)[_0xe87a('0x21')](function(_0x15ced2){return _0x15ced2;});}return null;};}function removeEntity(_0x46731f,_0x56eba0){return function(_0x59d9f7){if(_0x59d9f7){return _0x59d9f7['destroy']()['then'](function(){var _0x328921=_0x59d9f7['get']({'plain':!![]});var _0x1108d0='Tags';return db[_0xe87a('0x22')][_0xe87a('0x23')]({'where':{'type':_0x1108d0,'resourceId':_0x328921['id']}})[_0xe87a('0x21')](function(){return _0x59d9f7;});})[_0xe87a('0x21')](function(){_0x46731f[_0xe87a('0x24')](0xcc)[_0xe87a('0x16')]();});}};}function handleEntityNotFound(_0x4fe080,_0x3fc24e){return function(_0x5b984f){if(!_0x5b984f){_0x4fe080['sendStatus'](0x194);}return _0x5b984f;};}function handleError(_0x39ec27,_0x48511b){_0x48511b=_0x48511b||0x1f4;return function(_0x537b52){logger['error'](_0x537b52[_0xe87a('0x25')]);if(_0x537b52[_0xe87a('0x26')]){delete _0x537b52[_0xe87a('0x26')];}_0x39ec27['status'](_0x48511b)['send'](_0x537b52);};}exports[_0xe87a('0x27')]=function(_0x5a747b,_0x4f61f7){var _0x3a5dc4={},_0x1d9742={},_0x15407d={'count':0x0,'rows':[]};var _0x2d3f77=_[_0xe87a('0x28')](db['Tag'][_0xe87a('0x29')],function(_0x4b80df){return{'name':_0x4b80df[_0xe87a('0x2a')],'type':_0x4b80df['type'][_0xe87a('0x2b')]};});_0x1d9742[_0xe87a('0x2c')]=_[_0xe87a('0x28')](_0x2d3f77,_0xe87a('0x26'));_0x1d9742[_0xe87a('0x2d')]=_[_0xe87a('0x2e')](_0x5a747b[_0xe87a('0x2d')]);_0x1d9742[_0xe87a('0x2f')]=_[_0xe87a('0x30')](_0x1d9742[_0xe87a('0x2c')],_0x1d9742['query']);_0x3a5dc4['attributes']=_['intersection'](_0x1d9742[_0xe87a('0x2c')],qs['fields'](_0x5a747b[_0xe87a('0x2d')][_0xe87a('0x31')]));_0x3a5dc4['attributes']=_0x3a5dc4[_0xe87a('0x32')]['length']?_0x3a5dc4['attributes']:_0x1d9742[_0xe87a('0x2c')];if(!_0x5a747b[_0xe87a('0x2d')][_0xe87a('0x33')](_0xe87a('0x34'))){_0x3a5dc4['limit']=qs[_0xe87a('0x18')](_0x5a747b[_0xe87a('0x2d')]['limit']);_0x3a5dc4[_0xe87a('0x17')]=qs[_0xe87a('0x17')](_0x5a747b['query'][_0xe87a('0x17')]);}_0x3a5dc4[_0xe87a('0x35')]=qs[_0xe87a('0x36')](_0x5a747b[_0xe87a('0x2d')][_0xe87a('0x36')]);_0x3a5dc4['where']=qs[_0xe87a('0x2f')](_['pick'](_0x5a747b[_0xe87a('0x2d')],_0x1d9742['filters']),_0x2d3f77);if(_0x5a747b['query'][_0xe87a('0x37')]){_0x3a5dc4[_0xe87a('0x38')]=_[_0xe87a('0x39')](_0x3a5dc4[_0xe87a('0x38')],{'$or':_[_0xe87a('0x28')](_0x2d3f77,function(_0x1109b9){if(_0x1109b9[_0xe87a('0x3a')]!==_0xe87a('0x3b')){var _0xda1ce1={};_0xda1ce1[_0x1109b9[_0xe87a('0x26')]]={'$like':'%'+_0x5a747b[_0xe87a('0x2d')][_0xe87a('0x37')]+'%'};return _0xda1ce1;}})});}_0x3a5dc4=_[_0xe87a('0x39')]({},_0x3a5dc4,_0x5a747b[_0xe87a('0x3c')]);var _0x553537={'where':_0x3a5dc4[_0xe87a('0x38')]};return db[_0xe87a('0x3d')][_0xe87a('0x1a')](_0x553537)[_0xe87a('0x21')](function(_0x5eb4e1){_0x15407d['count']=_0x5eb4e1;if(_0x5a747b['query'][_0xe87a('0x3e')]){_0x3a5dc4['include']=[{'all':!![]}];}return db['Tag'][_0xe87a('0x3f')](_0x3a5dc4);})['then'](function(_0x5b1f55){_0x15407d[_0xe87a('0x40')]=_0x5b1f55;return _0x15407d;})[_0xe87a('0x21')](respondWithFilteredResult(_0x4f61f7,_0x3a5dc4))['catch'](handleError(_0x4f61f7,null));};exports[_0xe87a('0x41')]=function(_0x4e8f4c,_0x5ad3af){var _0x551ba3={'raw':!![],'where':{'id':_0x4e8f4c[_0xe87a('0x42')]['id']}},_0x3aba9c={};_0x3aba9c['model']=_[_0xe87a('0x2e')](db[_0xe87a('0x3d')][_0xe87a('0x29')]);_0x3aba9c['query']=_['keys'](_0x4e8f4c['query']);_0x3aba9c['filters']=_[_0xe87a('0x30')](_0x3aba9c['model'],_0x3aba9c[_0xe87a('0x2d')]);_0x551ba3[_0xe87a('0x32')]=_[_0xe87a('0x30')](_0x3aba9c[_0xe87a('0x2c')],qs['fields'](_0x4e8f4c[_0xe87a('0x2d')][_0xe87a('0x31')]));_0x551ba3['attributes']=_0x551ba3[_0xe87a('0x32')][_0xe87a('0x43')]?_0x551ba3[_0xe87a('0x32')]:_0x3aba9c[_0xe87a('0x2c')];if(_0x4e8f4c[_0xe87a('0x2d')][_0xe87a('0x3e')]){_0x551ba3[_0xe87a('0x44')]=[{'all':!![]}];}_0x551ba3=_[_0xe87a('0x39')]({},_0x551ba3,_0x4e8f4c[_0xe87a('0x3c')]);return db['Tag'][_0xe87a('0x45')](_0x551ba3)[_0xe87a('0x21')](handleEntityNotFound(_0x5ad3af,null))[_0xe87a('0x21')](respondWithResult(_0x5ad3af,null))[_0xe87a('0x46')](handleError(_0x5ad3af,null));};exports['create']=function(_0x6ddec4,_0x28c00b){return db[_0xe87a('0x3d')][_0xe87a('0x47')](_0x6ddec4[_0xe87a('0x48')],{})[_0xe87a('0x21')](function(_0x154f73){var _0x324d97=_0x6ddec4['user'][_0xe87a('0x49')]({'plain':!![]});if(!_0x324d97)throw new Error(_0xe87a('0x4a'));if(_0x324d97[_0xe87a('0x4b')]==='user'){var _0x19d380=_0x154f73[_0xe87a('0x49')]({'plain':!![]});var _0xe032c8=_0xe87a('0x4c');return db[_0xe87a('0x4d')][_0xe87a('0x45')]({'where':{'name':_0xe032c8,'userProfileId':_0x324d97[_0xe87a('0x4e')]},'raw':!![]})[_0xe87a('0x21')](function(_0x1d268a){if(_0x1d268a&&_0x1d268a[_0xe87a('0x4f')]===0x0){return db[_0xe87a('0x22')][_0xe87a('0x47')]({'name':_0x19d380['name'],'resourceId':_0x19d380['id'],'type':_0x1d268a[_0xe87a('0x26')],'sectionId':_0x1d268a['id']},{})[_0xe87a('0x21')](function(){return _0x154f73;});}else{return _0x154f73;}})[_0xe87a('0x46')](function(_0x1bbd2e){logger[_0xe87a('0x50')](_0xe87a('0x51'),_0x1bbd2e);throw _0x1bbd2e;});}return _0x154f73;})[_0xe87a('0x21')](respondWithResult(_0x28c00b,0xc9))[_0xe87a('0x46')](handleError(_0x28c00b,null));};exports[_0xe87a('0x20')]=function(_0x5ee0b9,_0x553df2){if(_0x5ee0b9[_0xe87a('0x48')]['id']){delete _0x5ee0b9[_0xe87a('0x48')]['id'];}return db['Tag'][_0xe87a('0x45')]({'where':{'id':_0x5ee0b9[_0xe87a('0x42')]['id']}})['then'](handleEntityNotFound(_0x553df2,null))[_0xe87a('0x21')](saveUpdates(_0x5ee0b9[_0xe87a('0x48')],null))['then'](respondWithResult(_0x553df2,null))[_0xe87a('0x46')](handleError(_0x553df2,null));};exports[_0xe87a('0x23')]=function(_0x86d45e,_0xe84a3a){return db['Tag']['find']({'where':{'id':_0x86d45e[_0xe87a('0x42')]['id']}})[_0xe87a('0x21')](handleEntityNotFound(_0xe84a3a,null))['then'](removeEntity(_0xe84a3a,null))[_0xe87a('0x46')](handleError(_0xe84a3a,null));};