7b1a9463dac6efd0fb45fdf4dcc3cb675bd5361b
[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 _0xee6d=['to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','stack','name','send','index','map','Tag','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','sox'];(function(_0x2fffff,_0x415518){var _0x4f2a2c=function(_0x32c77b){while(--_0x32c77b){_0x2fffff['push'](_0x2fffff['shift']());}};_0x4f2a2c(++_0x415518);}(_0xee6d,0xa1));var _0xdee6=function(_0x119eca,_0x3637aa){_0x119eca=_0x119eca-0x0;var _0x2b032c=_0xee6d[_0x119eca];return _0x2b032c;};'use strict';var emlformat=require(_0xdee6('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xdee6('0x1'));var rp=require(_0xdee6('0x2'));var moment=require('moment');var BPromise=require(_0xdee6('0x3'));var Mustache=require(_0xdee6('0x4'));var util=require(_0xdee6('0x5'));var path=require('path');var sox=require(_0xdee6('0x6'));var csv=require(_0xdee6('0x7'));var ejs=require(_0xdee6('0x8'));var fs=require('fs');var fs_extra=require(_0xdee6('0x9'));var _=require(_0xdee6('0xa'));var squel=require(_0xdee6('0xb'));var crypto=require(_0xdee6('0xc'));var jsforce=require(_0xdee6('0xd'));var deskjs=require(_0xdee6('0xe'));var toCsv=require(_0xdee6('0x7'));var querystring=require(_0xdee6('0xf'));var Papa=require(_0xdee6('0x10'));var Redis=require(_0xdee6('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xdee6('0x12'));var as=require(_0xdee6('0x13'));var hardwareService=require(_0xdee6('0x14'));var logger=require(_0xdee6('0x15'))(_0xdee6('0x16'));var utils=require(_0xdee6('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xdee6('0x18'));var db=require(_0xdee6('0x19'))['db'];function respondWithStatusCode(_0x481807,_0x31e70f){_0x31e70f=_0x31e70f||0xcc;return function(_0x223e15){if(_0x223e15){return _0x481807[_0xdee6('0x1a')](_0x31e70f);}return _0x481807[_0xdee6('0x1b')](_0x31e70f)['end']();};}function respondWithResult(_0x23fac6,_0x3ff6de){_0x3ff6de=_0x3ff6de||0xc8;return function(_0x47733f){if(_0x47733f){return _0x23fac6[_0xdee6('0x1b')](_0x3ff6de)[_0xdee6('0x1c')](_0x47733f);}};}function respondWithFilteredResult(_0x3855f0,_0x3acee8){return function(_0x11a4d0){if(_0x11a4d0){var _0x322856=typeof _0x3acee8[_0xdee6('0x1d')]===_0xdee6('0x1e')&&typeof _0x3acee8[_0xdee6('0x1f')]==='undefined';var _0x2598ce=_0x11a4d0[_0xdee6('0x20')];var _0x33805e=_0x322856?0x0:_0x3acee8[_0xdee6('0x1d')];var _0x4a5519=_0x322856?_0x11a4d0[_0xdee6('0x20')]:_0x3acee8['offset']+_0x3acee8[_0xdee6('0x1f')];var _0x48d92c;if(_0x4a5519>=_0x2598ce){_0x4a5519=_0x2598ce;_0x48d92c=0xc8;}else{_0x48d92c=0xce;}_0x3855f0[_0xdee6('0x1b')](_0x48d92c);return _0x3855f0[_0xdee6('0x21')](_0xdee6('0x22'),_0x33805e+'-'+_0x4a5519+'/'+_0x2598ce)[_0xdee6('0x1c')](_0x11a4d0);}return null;};}function patchUpdates(_0x41381d){return function(_0x285c44){try{jsonpatch[_0xdee6('0x23')](_0x285c44,_0x41381d,!![]);}catch(_0x203c38){return BPromise[_0xdee6('0x24')](_0x203c38);}return _0x285c44[_0xdee6('0x25')]();};}function saveUpdates(_0x338902,_0x410665){return function(_0x58ea6f){if(_0x58ea6f){return _0x58ea6f[_0xdee6('0x26')](_0x338902)['then'](function(_0x2527c0){return _0x2527c0;});}return null;};}function removeEntity(_0x4dd425,_0x3c222c){return function(_0x1d7258){if(_0x1d7258){return _0x1d7258[_0xdee6('0x27')]()[_0xdee6('0x28')](function(){var _0x4d6d20=_0x1d7258[_0xdee6('0x29')]({'plain':!![]});var _0x22c525='Tags';return db['UserProfileResource'][_0xdee6('0x27')]({'where':{'type':_0x22c525,'resourceId':_0x4d6d20['id']}})[_0xdee6('0x28')](function(){return _0x1d7258;});})[_0xdee6('0x28')](function(){_0x4dd425[_0xdee6('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f4873,_0x118287){return function(_0x396ed6){if(!_0x396ed6){_0x4f4873[_0xdee6('0x1a')](0x194);}return _0x396ed6;};}function handleError(_0x59067d,_0xaef2d3){_0xaef2d3=_0xaef2d3||0x1f4;return function(_0x1042d1){logger['error'](_0x1042d1[_0xdee6('0x2a')]);if(_0x1042d1[_0xdee6('0x2b')]){delete _0x1042d1[_0xdee6('0x2b')];}_0x59067d[_0xdee6('0x1b')](_0xaef2d3)[_0xdee6('0x2c')](_0x1042d1);};}exports[_0xdee6('0x2d')]=function(_0x21083d,_0x3eafc6){var _0x789c1e={},_0x1357ea={},_0x3e17b6={'count':0x0,'rows':[]};var _0x502b11=_[_0xdee6('0x2e')](db[_0xdee6('0x2f')][_0xdee6('0x30')],function(_0x55a1a0){return{'name':_0x55a1a0[_0xdee6('0x31')],'type':_0x55a1a0[_0xdee6('0x32')]['key']};});_0x1357ea[_0xdee6('0x33')]=_[_0xdee6('0x2e')](_0x502b11,_0xdee6('0x2b'));_0x1357ea[_0xdee6('0x34')]=_['keys'](_0x21083d[_0xdee6('0x34')]);_0x1357ea[_0xdee6('0x35')]=_[_0xdee6('0x36')](_0x1357ea[_0xdee6('0x33')],_0x1357ea[_0xdee6('0x34')]);_0x789c1e[_0xdee6('0x37')]=_[_0xdee6('0x36')](_0x1357ea[_0xdee6('0x33')],qs[_0xdee6('0x38')](_0x21083d[_0xdee6('0x34')][_0xdee6('0x38')]));_0x789c1e[_0xdee6('0x37')]=_0x789c1e[_0xdee6('0x37')]['length']?_0x789c1e[_0xdee6('0x37')]:_0x1357ea[_0xdee6('0x33')];if(!_0x21083d[_0xdee6('0x34')][_0xdee6('0x39')]('nolimit')){_0x789c1e['limit']=qs['limit'](_0x21083d[_0xdee6('0x34')][_0xdee6('0x1f')]);_0x789c1e[_0xdee6('0x1d')]=qs[_0xdee6('0x1d')](_0x21083d[_0xdee6('0x34')]['offset']);}_0x789c1e[_0xdee6('0x3a')]=qs[_0xdee6('0x3b')](_0x21083d[_0xdee6('0x34')][_0xdee6('0x3b')]);_0x789c1e[_0xdee6('0x3c')]=qs[_0xdee6('0x35')](_[_0xdee6('0x3d')](_0x21083d[_0xdee6('0x34')],_0x1357ea['filters']),_0x502b11);if(_0x21083d['query'][_0xdee6('0x3e')]){_0x789c1e[_0xdee6('0x3c')]=_[_0xdee6('0x3f')](_0x789c1e[_0xdee6('0x3c')],{'$or':_[_0xdee6('0x2e')](_0x502b11,function(_0x774ac6){if(_0x774ac6[_0xdee6('0x32')]!==_0xdee6('0x40')){var _0x5d4f79={};_0x5d4f79[_0x774ac6['name']]={'$like':'%'+_0x21083d[_0xdee6('0x34')][_0xdee6('0x3e')]+'%'};return _0x5d4f79;}})});}_0x789c1e=_[_0xdee6('0x3f')]({},_0x789c1e,_0x21083d[_0xdee6('0x41')]);var _0x2caa44={'where':_0x789c1e[_0xdee6('0x3c')]};return db['Tag'][_0xdee6('0x20')](_0x2caa44)[_0xdee6('0x28')](function(_0x51647d){_0x3e17b6[_0xdee6('0x20')]=_0x51647d;if(_0x21083d[_0xdee6('0x34')][_0xdee6('0x42')]){_0x789c1e[_0xdee6('0x43')]=[{'all':!![]}];}return db[_0xdee6('0x2f')][_0xdee6('0x44')](_0x789c1e);})[_0xdee6('0x28')](function(_0x35de30){_0x3e17b6[_0xdee6('0x45')]=_0x35de30;return _0x3e17b6;})['then'](respondWithFilteredResult(_0x3eafc6,_0x789c1e))[_0xdee6('0x46')](handleError(_0x3eafc6,null));};exports[_0xdee6('0x47')]=function(_0x5d4d25,_0x4f3edf){var _0x399eb7={'raw':!![],'where':{'id':_0x5d4d25[_0xdee6('0x48')]['id']}},_0x23286c={};_0x23286c['model']=_[_0xdee6('0x49')](db[_0xdee6('0x2f')][_0xdee6('0x30')]);_0x23286c['query']=_['keys'](_0x5d4d25[_0xdee6('0x34')]);_0x23286c[_0xdee6('0x35')]=_['intersection'](_0x23286c['model'],_0x23286c['query']);_0x399eb7[_0xdee6('0x37')]=_[_0xdee6('0x36')](_0x23286c[_0xdee6('0x33')],qs[_0xdee6('0x38')](_0x5d4d25['query'][_0xdee6('0x38')]));_0x399eb7['attributes']=_0x399eb7[_0xdee6('0x37')][_0xdee6('0x4a')]?_0x399eb7[_0xdee6('0x37')]:_0x23286c[_0xdee6('0x33')];if(_0x5d4d25[_0xdee6('0x34')]['includeAll']){_0x399eb7[_0xdee6('0x43')]=[{'all':!![]}];}_0x399eb7=_[_0xdee6('0x3f')]({},_0x399eb7,_0x5d4d25[_0xdee6('0x41')]);return db['Tag'][_0xdee6('0x4b')](_0x399eb7)[_0xdee6('0x28')](handleEntityNotFound(_0x4f3edf,null))[_0xdee6('0x28')](respondWithResult(_0x4f3edf,null))['catch'](handleError(_0x4f3edf,null));};exports[_0xdee6('0x4c')]=function(_0x212697,_0xf6c990){return db[_0xdee6('0x2f')][_0xdee6('0x4c')](_0x212697[_0xdee6('0x4d')],{})['then'](function(_0x5de09d){var _0x5be04a=_0x212697[_0xdee6('0x4e')]['get']({'plain':!![]});if(!_0x5be04a)throw new Error(_0xdee6('0x4f'));if(_0x5be04a[_0xdee6('0x50')]===_0xdee6('0x4e')){var _0x5f27e4=_0x5de09d['get']({'plain':!![]});var _0x450da6='Tags';return db['UserProfileSection'][_0xdee6('0x4b')]({'where':{'name':_0x450da6,'userProfileId':_0x5be04a['userProfileId']},'raw':!![]})[_0xdee6('0x28')](function(_0x1c49aa){if(_0x1c49aa&&_0x1c49aa['autoAssociation']===0x0){return db[_0xdee6('0x51')][_0xdee6('0x4c')]({'name':_0x5f27e4[_0xdee6('0x2b')],'resourceId':_0x5f27e4['id'],'type':_0x1c49aa['name'],'sectionId':_0x1c49aa['id']},{})[_0xdee6('0x28')](function(){return _0x5de09d;});}else{return _0x5de09d;}})[_0xdee6('0x46')](function(_0x1f34a4){logger['error'](_0xdee6('0x52'),_0x1f34a4);throw _0x1f34a4;});}return _0x5de09d;})[_0xdee6('0x28')](respondWithResult(_0xf6c990,0xc9))['catch'](handleError(_0xf6c990,null));};exports[_0xdee6('0x26')]=function(_0x530acb,_0x433814){if(_0x530acb[_0xdee6('0x4d')]['id']){delete _0x530acb[_0xdee6('0x4d')]['id'];}return db[_0xdee6('0x2f')][_0xdee6('0x4b')]({'where':{'id':_0x530acb['params']['id']}})[_0xdee6('0x28')](handleEntityNotFound(_0x433814,null))[_0xdee6('0x28')](saveUpdates(_0x530acb[_0xdee6('0x4d')],null))[_0xdee6('0x28')](respondWithResult(_0x433814,null))['catch'](handleError(_0x433814,null));};exports['destroy']=function(_0x355d48,_0x1c228a){return db[_0xdee6('0x2f')]['find']({'where':{'id':_0x355d48[_0xdee6('0x48')]['id']}})[_0xdee6('0x28')](handleEntityNotFound(_0x1c228a,null))[_0xdee6('0x28')](removeEntity(_0x1c228a,null))['catch'](handleError(_0x1c228a,null));};exports[_0xdee6('0x53')]=function(_0x510aef,_0x32139e){return db['Tag']['describe']()['then'](respondWithResult(_0x32139e,null))[_0xdee6('0x46')](handleError(_0x32139e,null));};