38a258f87ae8375d22ca9359c52593efceb2eb18
[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 _0x0fd5=['model','fields','length','nolimit','order','sort','where','pick','merge','filter','include','catch','show','keys','intersection','includeAll','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','html-pdf','eml-format','rimraf','zip-dir','bluebird','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','count','offset','limit','Content-Range','json','apply','reject','save','update','then','destroy','get','Tags','stack','name','send','map','Tag','rawAttributes','type','key','query','filters','attributes'];(function(_0x3ccebb,_0x80f121){var _0x2c5c99=function(_0x315766){while(--_0x315766){_0x3ccebb['push'](_0x3ccebb['shift']());}};_0x2c5c99(++_0x80f121);}(_0x0fd5,0x1a9));var _0x50fd=function(_0x4e0fd6,_0x16bc28){_0x4e0fd6=_0x4e0fd6-0x0;var _0x50a6ef=_0x0fd5[_0x4e0fd6];return _0x50a6ef;};'use strict';var pdf=require(_0x50fd('0x0'));var emlformat=require(_0x50fd('0x1'));var rimraf=require(_0x50fd('0x2'));var zipdir=require(_0x50fd('0x3'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x50fd('0x4'));var Mustache=require('mustache');var util=require(_0x50fd('0x5'));var path=require(_0x50fd('0x6'));var sox=require(_0x50fd('0x7'));var csv=require(_0x50fd('0x8'));var ejs=require(_0x50fd('0x9'));var fs=require('fs');var _=require(_0x50fd('0xa'));var squel=require(_0x50fd('0xb'));var crypto=require('crypto');var jsforce=require(_0x50fd('0xc'));var deskjs=require(_0x50fd('0xd'));var toCsv=require('to-csv');var querystring=require(_0x50fd('0xe'));var Papa=require(_0x50fd('0xf'));var Redis=require(_0x50fd('0x10'));var authService=require(_0x50fd('0x11'));var qs=require(_0x50fd('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x50fd('0x13'));var utils=require(_0x50fd('0x14'));var config=require(_0x50fd('0x15'));var db=require(_0x50fd('0x16'))['db'];function respondWithStatusCode(_0x20cae5,_0x3da142){_0x3da142=_0x3da142||0xcc;return function(_0x3d5f73){if(_0x3d5f73){return _0x20cae5[_0x50fd('0x17')](_0x3da142);}return _0x20cae5[_0x50fd('0x18')](_0x3da142)['end']();};}function respondWithResult(_0x496e75,_0x2f2f17){_0x2f2f17=_0x2f2f17||0xc8;return function(_0x45dc2d){if(_0x45dc2d){return _0x496e75[_0x50fd('0x18')](_0x2f2f17)['json'](_0x45dc2d);}};}function respondWithFilteredResult(_0x48caff,_0x1cd999){return function(_0x31562b){if(_0x31562b){var _0x594b31=_0x31562b[_0x50fd('0x19')],_0x9417ce=_0x1cd999[_0x50fd('0x1a')],_0x1a2f4e=_0x1cd999[_0x50fd('0x1a')]+_0x1cd999[_0x50fd('0x1b')],_0x30f9f9;if(_0x1a2f4e>=_0x594b31){_0x1a2f4e=_0x594b31;_0x30f9f9=0xc8;}else{_0x30f9f9=0xce;}_0x48caff[_0x50fd('0x18')](_0x30f9f9);return _0x48caff['set'](_0x50fd('0x1c'),_0x9417ce+'-'+_0x1a2f4e+'/'+_0x594b31)[_0x50fd('0x1d')](_0x31562b);}return null;};}function patchUpdates(_0x373d0a){return function(_0x36b919){try{jsonpatch[_0x50fd('0x1e')](_0x36b919,_0x373d0a,!![]);}catch(_0x4500ce){return BPromise[_0x50fd('0x1f')](_0x4500ce);}return _0x36b919[_0x50fd('0x20')]();};}function saveUpdates(_0x161b24,_0x488100){return function(_0x10a3eb){if(_0x10a3eb){return _0x10a3eb[_0x50fd('0x21')](_0x161b24)[_0x50fd('0x22')](function(_0x139524){return _0x139524;});}return null;};}function removeEntity(_0x505067,_0x1e650b){return function(_0x48826a){if(_0x48826a){return _0x48826a[_0x50fd('0x23')]()[_0x50fd('0x22')](function(){var _0x468246=_0x48826a[_0x50fd('0x24')]({'plain':!![]});var _0x1846ec=_0x50fd('0x25');return db['UserProfileResource'][_0x50fd('0x23')]({'where':{'type':_0x1846ec,'resourceId':_0x468246['id']}})[_0x50fd('0x22')](function(){return _0x48826a;});})[_0x50fd('0x22')](function(){_0x505067[_0x50fd('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x501b20,_0x20e230){return function(_0x2c71fc){if(!_0x2c71fc){_0x501b20['sendStatus'](0x194);}return _0x2c71fc;};}function handleError(_0x205baa,_0x3b5646){_0x3b5646=_0x3b5646||0x1f4;return function(_0x512139){logger['error'](_0x512139[_0x50fd('0x26')]);if(_0x512139[_0x50fd('0x27')]){delete _0x512139[_0x50fd('0x27')];}_0x205baa['status'](_0x3b5646)[_0x50fd('0x28')](_0x512139);};}exports['index']=function(_0x16c76f,_0xe455b2){var _0x59855c={},_0x386dfe={},_0x5df0bb={'count':0x0,'rows':[]};var _0x10e0cc=_[_0x50fd('0x29')](db[_0x50fd('0x2a')][_0x50fd('0x2b')],function(_0x515ae5){return{'name':_0x515ae5['fieldName'],'type':_0x515ae5[_0x50fd('0x2c')][_0x50fd('0x2d')]};});_0x386dfe['model']=_['map'](_0x10e0cc,_0x50fd('0x27'));_0x386dfe['query']=_['keys'](_0x16c76f[_0x50fd('0x2e')]);_0x386dfe[_0x50fd('0x2f')]=_['intersection'](_0x386dfe['model'],_0x386dfe['query']);_0x59855c[_0x50fd('0x30')]=_['intersection'](_0x386dfe[_0x50fd('0x31')],qs[_0x50fd('0x32')](_0x16c76f['query']['fields']));_0x59855c['attributes']=_0x59855c[_0x50fd('0x30')][_0x50fd('0x33')]?_0x59855c[_0x50fd('0x30')]:_0x386dfe['model'];if(!_0x16c76f[_0x50fd('0x2e')]['hasOwnProperty'](_0x50fd('0x34'))){_0x59855c[_0x50fd('0x1b')]=qs[_0x50fd('0x1b')](_0x16c76f[_0x50fd('0x2e')]['limit']);_0x59855c[_0x50fd('0x1a')]=qs['offset'](_0x16c76f[_0x50fd('0x2e')][_0x50fd('0x1a')]);}_0x59855c[_0x50fd('0x35')]=qs[_0x50fd('0x36')](_0x16c76f['query'][_0x50fd('0x36')]);_0x59855c[_0x50fd('0x37')]=qs[_0x50fd('0x2f')](_[_0x50fd('0x38')](_0x16c76f['query'],_0x386dfe[_0x50fd('0x2f')]),_0x10e0cc);if(_0x16c76f[_0x50fd('0x2e')]['filter']){_0x59855c[_0x50fd('0x37')]=_[_0x50fd('0x39')](_0x59855c[_0x50fd('0x37')],{'$or':_[_0x50fd('0x29')](_0x10e0cc,function(_0x52d4d8){if(_0x52d4d8[_0x50fd('0x2c')]!=='VIRTUAL'){var _0x596b32={};_0x596b32[_0x52d4d8['name']]={'$like':'%'+_0x16c76f[_0x50fd('0x2e')][_0x50fd('0x3a')]+'%'};return _0x596b32;}})});}_0x59855c=_['merge']({},_0x59855c,_0x16c76f['options']);var _0x4d8402={'where':_0x59855c['where']};return db[_0x50fd('0x2a')][_0x50fd('0x19')](_0x4d8402)['then'](function(_0x569b8f){_0x5df0bb[_0x50fd('0x19')]=_0x569b8f;if(_0x16c76f['query']['includeAll']){_0x59855c[_0x50fd('0x3b')]=[{'all':!![]}];}return db[_0x50fd('0x2a')]['findAll'](_0x59855c);})[_0x50fd('0x22')](function(_0x988159){_0x5df0bb['rows']=_0x988159;return _0x5df0bb;})['then'](respondWithFilteredResult(_0xe455b2,_0x59855c))[_0x50fd('0x3c')](handleError(_0xe455b2,null));};exports[_0x50fd('0x3d')]=function(_0x58d088,_0x47d466){var _0x2ad3fc={'raw':!![],'where':{'id':_0x58d088['params']['id']}},_0x4feba7={};_0x4feba7[_0x50fd('0x31')]=_[_0x50fd('0x3e')](db[_0x50fd('0x2a')][_0x50fd('0x2b')]);_0x4feba7['query']=_[_0x50fd('0x3e')](_0x58d088[_0x50fd('0x2e')]);_0x4feba7[_0x50fd('0x2f')]=_['intersection'](_0x4feba7[_0x50fd('0x31')],_0x4feba7['query']);_0x2ad3fc[_0x50fd('0x30')]=_[_0x50fd('0x3f')](_0x4feba7[_0x50fd('0x31')],qs[_0x50fd('0x32')](_0x58d088[_0x50fd('0x2e')][_0x50fd('0x32')]));_0x2ad3fc[_0x50fd('0x30')]=_0x2ad3fc[_0x50fd('0x30')][_0x50fd('0x33')]?_0x2ad3fc[_0x50fd('0x30')]:_0x4feba7[_0x50fd('0x31')];if(_0x58d088['query'][_0x50fd('0x40')]){_0x2ad3fc[_0x50fd('0x3b')]=[{'all':!![]}];}_0x2ad3fc=_[_0x50fd('0x39')]({},_0x2ad3fc,_0x58d088[_0x50fd('0x41')]);return db[_0x50fd('0x2a')]['find'](_0x2ad3fc)['then'](handleEntityNotFound(_0x47d466,null))[_0x50fd('0x22')](respondWithResult(_0x47d466,null))[_0x50fd('0x3c')](handleError(_0x47d466,null));};exports[_0x50fd('0x42')]=function(_0x325966,_0x278f9a){return db[_0x50fd('0x2a')][_0x50fd('0x42')](_0x325966[_0x50fd('0x43')],{})['then'](function(_0x534190){var _0x1334a9=_0x325966[_0x50fd('0x44')][_0x50fd('0x24')]({'plain':!![]});if(!_0x1334a9)throw new Error(_0x50fd('0x45'));if(_0x1334a9[_0x50fd('0x46')]===_0x50fd('0x44')){var _0x5ca4f8=_0x534190[_0x50fd('0x24')]({'plain':!![]});var _0x48def3=_0x50fd('0x25');return db[_0x50fd('0x47')][_0x50fd('0x48')]({'where':{'name':_0x48def3,'userProfileId':_0x1334a9[_0x50fd('0x49')]},'raw':!![]})[_0x50fd('0x22')](function(_0xd8104b){if(_0xd8104b&&_0xd8104b[_0x50fd('0x4a')]===0x0){return db[_0x50fd('0x4b')][_0x50fd('0x42')]({'name':_0x5ca4f8[_0x50fd('0x27')],'resourceId':_0x5ca4f8['id'],'type':_0xd8104b[_0x50fd('0x27')],'sectionId':_0xd8104b['id']},{})[_0x50fd('0x22')](function(){return _0x534190;});}else{return _0x534190;}})[_0x50fd('0x3c')](function(_0x3101c3){logger[_0x50fd('0x4c')](_0x50fd('0x4d'),_0x3101c3);throw _0x3101c3;});}return _0x534190;})[_0x50fd('0x22')](respondWithResult(_0x278f9a,0xc9))[_0x50fd('0x3c')](handleError(_0x278f9a,null));};exports['update']=function(_0x181a4e,_0x2e0e0d){if(_0x181a4e[_0x50fd('0x43')]['id']){delete _0x181a4e['body']['id'];}return db[_0x50fd('0x2a')][_0x50fd('0x48')]({'where':{'id':_0x181a4e['params']['id']}})['then'](handleEntityNotFound(_0x2e0e0d,null))[_0x50fd('0x22')](saveUpdates(_0x181a4e[_0x50fd('0x43')],null))[_0x50fd('0x22')](respondWithResult(_0x2e0e0d,null))[_0x50fd('0x3c')](handleError(_0x2e0e0d,null));};exports[_0x50fd('0x23')]=function(_0x3d9100,_0x264989){return db[_0x50fd('0x2a')][_0x50fd('0x48')]({'where':{'id':_0x3d9100[_0x50fd('0x4e')]['id']}})[_0x50fd('0x22')](handleEntityNotFound(_0x264989,null))[_0x50fd('0x22')](removeEntity(_0x264989,null))[_0x50fd('0x3c')](handleError(_0x264989,null));};