Built motion from commit 953226e6.|2.6.32
[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 _0x9d9d=['where','pick','filter','merge','map','type','VIRTUAL','options','include','findAll','rows','catch','show','includeAll','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','get','destroy','end','error','stack','name','send','Tag','rawAttributes','fieldName','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort'];(function(_0x2ba527,_0x5d28e8){var _0x3e5e81=function(_0x4d46c7){while(--_0x4d46c7){_0x2ba527['push'](_0x2ba527['shift']());}};_0x3e5e81(++_0x5d28e8);}(_0x9d9d,0x1ba));var _0xd9d9=function(_0x2752e6,_0x485ddb){_0x2752e6=_0x2752e6-0x0;var _0xfbe536=_0x9d9d[_0x2752e6];return _0xfbe536;};'use strict';var emlformat=require(_0xd9d9('0x0'));var rimraf=require(_0xd9d9('0x1'));var zipdir=require(_0xd9d9('0x2'));var jsonpatch=require(_0xd9d9('0x3'));var rp=require('request-promise');var moment=require(_0xd9d9('0x4'));var BPromise=require(_0xd9d9('0x5'));var Mustache=require('mustache');var util=require(_0xd9d9('0x6'));var path=require('path');var sox=require(_0xd9d9('0x7'));var csv=require(_0xd9d9('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd9d9('0x9'));var _=require(_0xd9d9('0xa'));var squel=require(_0xd9d9('0xb'));var crypto=require(_0xd9d9('0xc'));var jsforce=require(_0xd9d9('0xd'));var deskjs=require(_0xd9d9('0xe'));var toCsv=require(_0xd9d9('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd9d9('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xd9d9('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd9d9('0x11'))('api');var utils=require(_0xd9d9('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xd9d9('0x13'))['db'];function respondWithStatusCode(_0x257aba,_0x342703){_0x342703=_0x342703||0xcc;return function(_0x5da241){if(_0x5da241){return _0x257aba[_0xd9d9('0x14')](_0x342703);}return _0x257aba['status'](_0x342703)['end']();};}function respondWithResult(_0x5de83b,_0x3b320c){_0x3b320c=_0x3b320c||0xc8;return function(_0x4dc5b0){if(_0x4dc5b0){return _0x5de83b[_0xd9d9('0x15')](_0x3b320c)[_0xd9d9('0x16')](_0x4dc5b0);}};}function respondWithFilteredResult(_0xe6ff49,_0x3cb768){return function(_0x20ffea){if(_0x20ffea){var _0x103c02=typeof _0x3cb768[_0xd9d9('0x17')]===_0xd9d9('0x18')&&typeof _0x3cb768[_0xd9d9('0x19')]==='undefined';var _0x532802=_0x20ffea[_0xd9d9('0x1a')];var _0x1b3fb4=_0x103c02?0x0:_0x3cb768[_0xd9d9('0x17')];var _0x554930=_0x103c02?_0x20ffea[_0xd9d9('0x1a')]:_0x3cb768[_0xd9d9('0x17')]+_0x3cb768['limit'];var _0xcbc441;if(_0x554930>=_0x532802){_0x554930=_0x532802;_0xcbc441=0xc8;}else{_0xcbc441=0xce;}_0xe6ff49[_0xd9d9('0x15')](_0xcbc441);return _0xe6ff49[_0xd9d9('0x1b')](_0xd9d9('0x1c'),_0x1b3fb4+'-'+_0x554930+'/'+_0x532802)[_0xd9d9('0x16')](_0x20ffea);}return null;};}function patchUpdates(_0x503fd6){return function(_0x2eabdb){try{jsonpatch[_0xd9d9('0x1d')](_0x2eabdb,_0x503fd6,!![]);}catch(_0x155051){return BPromise[_0xd9d9('0x1e')](_0x155051);}return _0x2eabdb[_0xd9d9('0x1f')]();};}function saveUpdates(_0x18d26c,_0x374fdb){return function(_0x1ab7bb){if(_0x1ab7bb){return _0x1ab7bb['update'](_0x18d26c)[_0xd9d9('0x20')](function(_0x2114ec){return _0x2114ec;});}return null;};}function removeEntity(_0x3a72f3,_0x529a8e){return function(_0x3042f5){if(_0x3042f5){return _0x3042f5['destroy']()[_0xd9d9('0x20')](function(){var _0x155e0d=_0x3042f5[_0xd9d9('0x21')]({'plain':!![]});var _0x15a040='Tags';return db['UserProfileResource'][_0xd9d9('0x22')]({'where':{'type':_0x15a040,'resourceId':_0x155e0d['id']}})[_0xd9d9('0x20')](function(){return _0x3042f5;});})[_0xd9d9('0x20')](function(){_0x3a72f3['status'](0xcc)[_0xd9d9('0x23')]();});}};}function handleEntityNotFound(_0x510b56,_0x129b8f){return function(_0xc39e56){if(!_0xc39e56){_0x510b56[_0xd9d9('0x14')](0x194);}return _0xc39e56;};}function handleError(_0xa098e8,_0x876eed){_0x876eed=_0x876eed||0x1f4;return function(_0x5243e9){logger[_0xd9d9('0x24')](_0x5243e9[_0xd9d9('0x25')]);if(_0x5243e9[_0xd9d9('0x26')]){delete _0x5243e9[_0xd9d9('0x26')];}_0xa098e8[_0xd9d9('0x15')](_0x876eed)[_0xd9d9('0x27')](_0x5243e9);};}exports['index']=function(_0x366b8b,_0x2d61f6){var _0x3c9f33={},_0x57b4cf={},_0xe8985={'count':0x0,'rows':[]};var _0x43d45a=_['map'](db[_0xd9d9('0x28')][_0xd9d9('0x29')],function(_0x41226e){return{'name':_0x41226e[_0xd9d9('0x2a')],'type':_0x41226e['type'][_0xd9d9('0x2b')]};});_0x57b4cf[_0xd9d9('0x2c')]=_['map'](_0x43d45a,_0xd9d9('0x26'));_0x57b4cf['query']=_[_0xd9d9('0x2d')](_0x366b8b[_0xd9d9('0x2e')]);_0x57b4cf[_0xd9d9('0x2f')]=_[_0xd9d9('0x30')](_0x57b4cf[_0xd9d9('0x2c')],_0x57b4cf['query']);_0x3c9f33['attributes']=_[_0xd9d9('0x30')](_0x57b4cf['model'],qs[_0xd9d9('0x31')](_0x366b8b[_0xd9d9('0x2e')]['fields']));_0x3c9f33[_0xd9d9('0x32')]=_0x3c9f33[_0xd9d9('0x32')][_0xd9d9('0x33')]?_0x3c9f33[_0xd9d9('0x32')]:_0x57b4cf[_0xd9d9('0x2c')];if(!_0x366b8b[_0xd9d9('0x2e')][_0xd9d9('0x34')](_0xd9d9('0x35'))){_0x3c9f33[_0xd9d9('0x19')]=qs[_0xd9d9('0x19')](_0x366b8b[_0xd9d9('0x2e')][_0xd9d9('0x19')]);_0x3c9f33['offset']=qs[_0xd9d9('0x17')](_0x366b8b['query'][_0xd9d9('0x17')]);}_0x3c9f33[_0xd9d9('0x36')]=qs[_0xd9d9('0x37')](_0x366b8b[_0xd9d9('0x2e')][_0xd9d9('0x37')]);_0x3c9f33[_0xd9d9('0x38')]=qs[_0xd9d9('0x2f')](_[_0xd9d9('0x39')](_0x366b8b[_0xd9d9('0x2e')],_0x57b4cf[_0xd9d9('0x2f')]),_0x43d45a);if(_0x366b8b[_0xd9d9('0x2e')][_0xd9d9('0x3a')]){_0x3c9f33['where']=_[_0xd9d9('0x3b')](_0x3c9f33[_0xd9d9('0x38')],{'$or':_[_0xd9d9('0x3c')](_0x43d45a,function(_0x1c4856){if(_0x1c4856[_0xd9d9('0x3d')]!==_0xd9d9('0x3e')){var _0x28403a={};_0x28403a[_0x1c4856[_0xd9d9('0x26')]]={'$like':'%'+_0x366b8b[_0xd9d9('0x2e')]['filter']+'%'};return _0x28403a;}})});}_0x3c9f33=_['merge']({},_0x3c9f33,_0x366b8b[_0xd9d9('0x3f')]);var _0x538134={'where':_0x3c9f33[_0xd9d9('0x38')]};return db[_0xd9d9('0x28')][_0xd9d9('0x1a')](_0x538134)[_0xd9d9('0x20')](function(_0x652274){_0xe8985[_0xd9d9('0x1a')]=_0x652274;if(_0x366b8b[_0xd9d9('0x2e')]['includeAll']){_0x3c9f33[_0xd9d9('0x40')]=[{'all':!![]}];}return db['Tag'][_0xd9d9('0x41')](_0x3c9f33);})[_0xd9d9('0x20')](function(_0x1c8eae){_0xe8985[_0xd9d9('0x42')]=_0x1c8eae;return _0xe8985;})[_0xd9d9('0x20')](respondWithFilteredResult(_0x2d61f6,_0x3c9f33))[_0xd9d9('0x43')](handleError(_0x2d61f6,null));};exports[_0xd9d9('0x44')]=function(_0x4fe90c,_0x5e356e){var _0x2a7ca9={'raw':!![],'where':{'id':_0x4fe90c['params']['id']}},_0x5071a5={};_0x5071a5[_0xd9d9('0x2c')]=_[_0xd9d9('0x2d')](db['Tag']['rawAttributes']);_0x5071a5[_0xd9d9('0x2e')]=_[_0xd9d9('0x2d')](_0x4fe90c['query']);_0x5071a5[_0xd9d9('0x2f')]=_[_0xd9d9('0x30')](_0x5071a5[_0xd9d9('0x2c')],_0x5071a5[_0xd9d9('0x2e')]);_0x2a7ca9[_0xd9d9('0x32')]=_[_0xd9d9('0x30')](_0x5071a5[_0xd9d9('0x2c')],qs[_0xd9d9('0x31')](_0x4fe90c[_0xd9d9('0x2e')][_0xd9d9('0x31')]));_0x2a7ca9['attributes']=_0x2a7ca9[_0xd9d9('0x32')]['length']?_0x2a7ca9[_0xd9d9('0x32')]:_0x5071a5[_0xd9d9('0x2c')];if(_0x4fe90c[_0xd9d9('0x2e')][_0xd9d9('0x45')]){_0x2a7ca9[_0xd9d9('0x40')]=[{'all':!![]}];}_0x2a7ca9=_[_0xd9d9('0x3b')]({},_0x2a7ca9,_0x4fe90c['options']);return db[_0xd9d9('0x28')][_0xd9d9('0x46')](_0x2a7ca9)['then'](handleEntityNotFound(_0x5e356e,null))['then'](respondWithResult(_0x5e356e,null))[_0xd9d9('0x43')](handleError(_0x5e356e,null));};exports[_0xd9d9('0x47')]=function(_0x18dc32,_0x2bdbe4){return db[_0xd9d9('0x28')][_0xd9d9('0x47')](_0x18dc32['body'],{})['then'](function(_0x257e3){var _0xe77909=_0x18dc32[_0xd9d9('0x48')]['get']({'plain':!![]});if(!_0xe77909)throw new Error(_0xd9d9('0x49'));if(_0xe77909[_0xd9d9('0x4a')]===_0xd9d9('0x48')){var _0xc376ae=_0x257e3[_0xd9d9('0x21')]({'plain':!![]});var _0x5bacc4=_0xd9d9('0x4b');return db['UserProfileSection']['find']({'where':{'name':_0x5bacc4,'userProfileId':_0xe77909[_0xd9d9('0x4c')]},'raw':!![]})['then'](function(_0x23b956){if(_0x23b956&&_0x23b956['autoAssociation']===0x0){return db[_0xd9d9('0x4d')][_0xd9d9('0x47')]({'name':_0xc376ae[_0xd9d9('0x26')],'resourceId':_0xc376ae['id'],'type':_0x23b956[_0xd9d9('0x26')],'sectionId':_0x23b956['id']},{})['then'](function(){return _0x257e3;});}else{return _0x257e3;}})[_0xd9d9('0x43')](function(_0x26b0c5){logger[_0xd9d9('0x24')](_0xd9d9('0x4e'),_0x26b0c5);throw _0x26b0c5;});}return _0x257e3;})[_0xd9d9('0x20')](respondWithResult(_0x2bdbe4,0xc9))[_0xd9d9('0x43')](handleError(_0x2bdbe4,null));};exports[_0xd9d9('0x4f')]=function(_0x356c92,_0x3550c5){if(_0x356c92[_0xd9d9('0x50')]['id']){delete _0x356c92[_0xd9d9('0x50')]['id'];}return db['Tag']['find']({'where':{'id':_0x356c92[_0xd9d9('0x51')]['id']}})[_0xd9d9('0x20')](handleEntityNotFound(_0x3550c5,null))[_0xd9d9('0x20')](saveUpdates(_0x356c92['body'],null))['then'](respondWithResult(_0x3550c5,null))[_0xd9d9('0x43')](handleError(_0x3550c5,null));};exports[_0xd9d9('0x22')]=function(_0x166443,_0x35e476){return db[_0xd9d9('0x28')][_0xd9d9('0x46')]({'where':{'id':_0x166443[_0xd9d9('0x51')]['id']}})['then'](handleEntityNotFound(_0x35e476,null))[_0xd9d9('0x20')](removeEntity(_0x35e476,null))[_0xd9d9('0x43')](handleError(_0x35e476,null));};exports[_0xd9d9('0x52')]=function(_0x4d8c61,_0x2bcc22){return db[_0xd9d9('0x28')][_0xd9d9('0x52')]()['then'](respondWithResult(_0x2bcc22,null))[_0xd9d9('0x43')](handleError(_0x2bcc22,null));};