e280101eeb94604e583cd32d56e52f09445c1a2d
[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 _0xa748=['then','get','destroy','error','send','index','Tag','rawAttributes','type','model','map','query','intersection','attributes','fields','length','nolimit','sort','filter','merge','where','VIRTUAL','name','options','includeAll','rows','catch','show','params','keys','filters','include','find','create','body','user','role','Tags','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','apply','reject','save'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0xa748,0x73));var _0x8a74=function(_0x255fa4,_0xa3b664){_0x255fa4=_0x255fa4-0x0;var _0x12be17=_0xa748[_0x255fa4];return _0x12be17;};'use strict';var pdf=require(_0x8a74('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x8a74('0x1'));var jsonpatch=require(_0x8a74('0x2'));var rp=require(_0x8a74('0x3'));var moment=require(_0x8a74('0x4'));var BPromise=require(_0x8a74('0x5'));var Mustache=require(_0x8a74('0x6'));var util=require(_0x8a74('0x7'));var path=require('path');var sox=require(_0x8a74('0x8'));var csv=require('to-csv');var ejs=require(_0x8a74('0x9'));var fs=require('fs');var _=require(_0x8a74('0xa'));var squel=require(_0x8a74('0xb'));var crypto=require('crypto');var jsforce=require(_0x8a74('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8a74('0xd'));var Papa=require(_0x8a74('0xe'));var Redis=require(_0x8a74('0xf'));var authService=require(_0x8a74('0x10'));var qs=require(_0x8a74('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8a74('0x12'))('api');var utils=require(_0x8a74('0x13'));var config=require('../../config/environment');var db=require(_0x8a74('0x14'))['db'];function respondWithStatusCode(_0x101043,_0x1a5ea5){_0x1a5ea5=_0x1a5ea5||0xcc;return function(_0x48e261){if(_0x48e261){return _0x101043[_0x8a74('0x15')](_0x1a5ea5);}return _0x101043[_0x8a74('0x16')](_0x1a5ea5)[_0x8a74('0x17')]();};}function respondWithResult(_0xa9ce1,_0x2302c3){_0x2302c3=_0x2302c3||0xc8;return function(_0x561c29){if(_0x561c29){return _0xa9ce1[_0x8a74('0x16')](_0x2302c3)[_0x8a74('0x18')](_0x561c29);}};}function respondWithFilteredResult(_0x456f77,_0x558360){return function(_0x5373e3){if(_0x5373e3){var _0x31df4b=_0x5373e3[_0x8a74('0x19')],_0x5e22f4=_0x558360[_0x8a74('0x1a')],_0x212ad5=_0x558360[_0x8a74('0x1a')]+_0x558360[_0x8a74('0x1b')],_0x3300ee;if(_0x212ad5>=_0x31df4b){_0x212ad5=_0x31df4b;_0x3300ee=0xc8;}else{_0x3300ee=0xce;}_0x456f77[_0x8a74('0x16')](_0x3300ee);return _0x456f77['set']('Content-Range',_0x5e22f4+'-'+_0x212ad5+'/'+_0x31df4b)[_0x8a74('0x18')](_0x5373e3);}return null;};}function patchUpdates(_0x4819d2){return function(_0xfac6d1){try{jsonpatch[_0x8a74('0x1c')](_0xfac6d1,_0x4819d2,!![]);}catch(_0x2adebf){return BPromise[_0x8a74('0x1d')](_0x2adebf);}return _0xfac6d1[_0x8a74('0x1e')]();};}function saveUpdates(_0x444e93,_0x10b8f0){return function(_0x3b966b){if(_0x3b966b){return _0x3b966b['update'](_0x444e93)[_0x8a74('0x1f')](function(_0x31959b){return _0x31959b;});}return null;};}function removeEntity(_0x3a9362,_0x2d0741){return function(_0x3c8a88){if(_0x3c8a88){return _0x3c8a88['destroy']()[_0x8a74('0x1f')](function(){var _0x3ac96a=_0x3c8a88[_0x8a74('0x20')]({'plain':!![]});var _0x1dcabb='Tags';return db['UserProfileResource'][_0x8a74('0x21')]({'where':{'type':_0x1dcabb,'resourceId':_0x3ac96a['id']}})[_0x8a74('0x1f')](function(){return _0x3c8a88;});})[_0x8a74('0x1f')](function(){_0x3a9362['status'](0xcc)[_0x8a74('0x17')]();});}};}function handleEntityNotFound(_0xbf632b,_0x5ece8b){return function(_0x4387dd){if(!_0x4387dd){_0xbf632b[_0x8a74('0x15')](0x194);}return _0x4387dd;};}function handleError(_0x26fbf4,_0x57309e){_0x57309e=_0x57309e||0x1f4;return function(_0x59aec6){logger[_0x8a74('0x22')](_0x59aec6['stack']);if(_0x59aec6['name']){delete _0x59aec6['name'];}_0x26fbf4[_0x8a74('0x16')](_0x57309e)[_0x8a74('0x23')](_0x59aec6);};}exports[_0x8a74('0x24')]=function(_0x22a498,_0x112e99){var _0x7e6840={},_0x3ae984={},_0x45be5a={'count':0x0,'rows':[]};var _0x26e36d=_['map'](db[_0x8a74('0x25')][_0x8a74('0x26')],function(_0x3bf586){return{'name':_0x3bf586['fieldName'],'type':_0x3bf586[_0x8a74('0x27')]['key']};});_0x3ae984[_0x8a74('0x28')]=_[_0x8a74('0x29')](_0x26e36d,'name');_0x3ae984[_0x8a74('0x2a')]=_['keys'](_0x22a498[_0x8a74('0x2a')]);_0x3ae984['filters']=_[_0x8a74('0x2b')](_0x3ae984['model'],_0x3ae984['query']);_0x7e6840[_0x8a74('0x2c')]=_[_0x8a74('0x2b')](_0x3ae984[_0x8a74('0x28')],qs['fields'](_0x22a498['query'][_0x8a74('0x2d')]));_0x7e6840['attributes']=_0x7e6840[_0x8a74('0x2c')][_0x8a74('0x2e')]?_0x7e6840[_0x8a74('0x2c')]:_0x3ae984['model'];if(!_0x22a498['query']['hasOwnProperty'](_0x8a74('0x2f'))){_0x7e6840['limit']=qs[_0x8a74('0x1b')](_0x22a498['query'][_0x8a74('0x1b')]);_0x7e6840[_0x8a74('0x1a')]=qs[_0x8a74('0x1a')](_0x22a498[_0x8a74('0x2a')][_0x8a74('0x1a')]);}_0x7e6840['order']=qs[_0x8a74('0x30')](_0x22a498[_0x8a74('0x2a')][_0x8a74('0x30')]);_0x7e6840['where']=qs['filters'](_['pick'](_0x22a498[_0x8a74('0x2a')],_0x3ae984['filters']),_0x26e36d);if(_0x22a498[_0x8a74('0x2a')][_0x8a74('0x31')]){_0x7e6840['where']=_[_0x8a74('0x32')](_0x7e6840[_0x8a74('0x33')],{'$or':_['map'](_0x26e36d,function(_0x31d525){if(_0x31d525[_0x8a74('0x27')]!==_0x8a74('0x34')){var _0x2bd664={};_0x2bd664[_0x31d525[_0x8a74('0x35')]]={'$like':'%'+_0x22a498[_0x8a74('0x2a')][_0x8a74('0x31')]+'%'};return _0x2bd664;}})});}_0x7e6840=_[_0x8a74('0x32')]({},_0x7e6840,_0x22a498[_0x8a74('0x36')]);var _0x4bdab9={'where':_0x7e6840[_0x8a74('0x33')]};return db['Tag']['count'](_0x4bdab9)[_0x8a74('0x1f')](function(_0x5940dd){_0x45be5a[_0x8a74('0x19')]=_0x5940dd;if(_0x22a498[_0x8a74('0x2a')][_0x8a74('0x37')]){_0x7e6840['include']=[{'all':!![]}];}return db[_0x8a74('0x25')]['findAll'](_0x7e6840);})['then'](function(_0x500c10){_0x45be5a[_0x8a74('0x38')]=_0x500c10;return _0x45be5a;})['then'](respondWithFilteredResult(_0x112e99,_0x7e6840))[_0x8a74('0x39')](handleError(_0x112e99,null));};exports[_0x8a74('0x3a')]=function(_0x5cc4ad,_0x354dd1){var _0x37b0a6={'raw':!![],'where':{'id':_0x5cc4ad[_0x8a74('0x3b')]['id']}},_0x26d5be={};_0x26d5be[_0x8a74('0x28')]=_['keys'](db['Tag'][_0x8a74('0x26')]);_0x26d5be[_0x8a74('0x2a')]=_[_0x8a74('0x3c')](_0x5cc4ad[_0x8a74('0x2a')]);_0x26d5be[_0x8a74('0x3d')]=_[_0x8a74('0x2b')](_0x26d5be[_0x8a74('0x28')],_0x26d5be[_0x8a74('0x2a')]);_0x37b0a6[_0x8a74('0x2c')]=_[_0x8a74('0x2b')](_0x26d5be['model'],qs['fields'](_0x5cc4ad[_0x8a74('0x2a')][_0x8a74('0x2d')]));_0x37b0a6[_0x8a74('0x2c')]=_0x37b0a6[_0x8a74('0x2c')][_0x8a74('0x2e')]?_0x37b0a6[_0x8a74('0x2c')]:_0x26d5be[_0x8a74('0x28')];if(_0x5cc4ad['query'][_0x8a74('0x37')]){_0x37b0a6[_0x8a74('0x3e')]=[{'all':!![]}];}_0x37b0a6=_['merge']({},_0x37b0a6,_0x5cc4ad['options']);return db['Tag'][_0x8a74('0x3f')](_0x37b0a6)['then'](handleEntityNotFound(_0x354dd1,null))[_0x8a74('0x1f')](respondWithResult(_0x354dd1,null))[_0x8a74('0x39')](handleError(_0x354dd1,null));};exports[_0x8a74('0x40')]=function(_0x1111f1,_0x40d264){return db[_0x8a74('0x25')][_0x8a74('0x40')](_0x1111f1[_0x8a74('0x41')],{})[_0x8a74('0x1f')](function(_0x1b5014){var _0x4b12b6=_0x1111f1[_0x8a74('0x42')]['get']({'plain':!![]});if(!_0x4b12b6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b12b6[_0x8a74('0x43')]===_0x8a74('0x42')){var _0x2b5c66=_0x1b5014['get']({'plain':!![]});var _0x363b32=_0x8a74('0x44');return db[_0x8a74('0x45')][_0x8a74('0x3f')]({'where':{'name':_0x363b32,'userProfileId':_0x4b12b6[_0x8a74('0x46')]},'raw':!![]})[_0x8a74('0x1f')](function(_0x31cf0c){if(_0x31cf0c&&_0x31cf0c[_0x8a74('0x47')]===0x0){return db['UserProfileResource'][_0x8a74('0x40')]({'name':_0x2b5c66[_0x8a74('0x35')],'resourceId':_0x2b5c66['id'],'type':_0x31cf0c[_0x8a74('0x35')],'sectionId':_0x31cf0c['id']},{})[_0x8a74('0x1f')](function(){return _0x1b5014;});}else{return _0x1b5014;}})['catch'](function(_0x17466f){logger[_0x8a74('0x22')](_0x8a74('0x48'),_0x17466f);throw _0x17466f;});}return _0x1b5014;})[_0x8a74('0x1f')](respondWithResult(_0x40d264,0xc9))['catch'](handleError(_0x40d264,null));};exports['update']=function(_0x4dc15e,_0x2ba8dc){if(_0x4dc15e[_0x8a74('0x41')]['id']){delete _0x4dc15e[_0x8a74('0x41')]['id'];}return db[_0x8a74('0x25')]['find']({'where':{'id':_0x4dc15e[_0x8a74('0x3b')]['id']}})[_0x8a74('0x1f')](handleEntityNotFound(_0x2ba8dc,null))[_0x8a74('0x1f')](saveUpdates(_0x4dc15e['body'],null))[_0x8a74('0x1f')](respondWithResult(_0x2ba8dc,null))[_0x8a74('0x39')](handleError(_0x2ba8dc,null));};exports[_0x8a74('0x21')]=function(_0x24d947,_0x1578c3){return db[_0x8a74('0x25')][_0x8a74('0x3f')]({'where':{'id':_0x24d947[_0x8a74('0x3b')]['id']}})[_0x8a74('0x1f')](handleEntityNotFound(_0x1578c3,null))[_0x8a74('0x1f')](removeEntity(_0x1578c3,null))[_0x8a74('0x39')](handleError(_0x1578c3,null));};