0d4eb2d608cf19e050622e8abbaea63bea62f035
[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 _0xa476=['attributes','length','hasOwnProperty','nolimit','order','sort','filters','filter','where','merge','type','VIRTUAL','includeAll','rows','catch','show','params','include','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','get','Tags','UserProfileResource','error','stack','send','index','Tag','rawAttributes','fieldName','key','model','map','name','keys','query','intersection','fields'];(function(_0x6187b,_0x8574e0){var _0x4383c5=function(_0x1cf7b3){while(--_0x1cf7b3){_0x6187b['push'](_0x6187b['shift']());}};_0x4383c5(++_0x8574e0);}(_0xa476,0x1b0));var _0x6a47=function(_0x57f22c,_0x54e712){_0x57f22c=_0x57f22c-0x0;var _0xd6995=_0xa476[_0x57f22c];return _0xd6995;};'use strict';var pdf=require(_0x6a47('0x0'));var emlformat=require(_0x6a47('0x1'));var rimraf=require(_0x6a47('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6a47('0x3'));var rp=require(_0x6a47('0x4'));var moment=require(_0x6a47('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6a47('0x6'));var util=require(_0x6a47('0x7'));var path=require(_0x6a47('0x8'));var sox=require('sox');var csv=require(_0x6a47('0x9'));var ejs=require(_0x6a47('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x6a47('0xb'));var crypto=require('crypto');var jsforce=require(_0x6a47('0xc'));var deskjs=require(_0x6a47('0xd'));var toCsv=require(_0x6a47('0x9'));var querystring=require(_0x6a47('0xe'));var Papa=require('papaparse');var Redis=require(_0x6a47('0xf'));var authService=require(_0x6a47('0x10'));var qs=require(_0x6a47('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6a47('0x12'));var logger=require(_0x6a47('0x13'))('api');var utils=require(_0x6a47('0x14'));var config=require('../../config/environment');var db=require(_0x6a47('0x15'))['db'];function respondWithStatusCode(_0x3412dd,_0x5229a5){_0x5229a5=_0x5229a5||0xcc;return function(_0x589bb3){if(_0x589bb3){return _0x3412dd[_0x6a47('0x16')](_0x5229a5);}return _0x3412dd[_0x6a47('0x17')](_0x5229a5)[_0x6a47('0x18')]();};}function respondWithResult(_0x16a8b6,_0x1da2b9){_0x1da2b9=_0x1da2b9||0xc8;return function(_0x2b4f84){if(_0x2b4f84){return _0x16a8b6[_0x6a47('0x17')](_0x1da2b9)[_0x6a47('0x19')](_0x2b4f84);}};}function respondWithFilteredResult(_0x13385d,_0x157af2){return function(_0x3d5982){if(_0x3d5982){var _0x3e27ed=_0x3d5982[_0x6a47('0x1a')],_0x52170f=_0x157af2['offset'],_0x5b1407=_0x157af2[_0x6a47('0x1b')]+_0x157af2[_0x6a47('0x1c')],_0x50cc3b;if(_0x5b1407>=_0x3e27ed){_0x5b1407=_0x3e27ed;_0x50cc3b=0xc8;}else{_0x50cc3b=0xce;}_0x13385d[_0x6a47('0x17')](_0x50cc3b);return _0x13385d[_0x6a47('0x1d')]('Content-Range',_0x52170f+'-'+_0x5b1407+'/'+_0x3e27ed)['json'](_0x3d5982);}return null;};}function patchUpdates(_0x24a8b3){return function(_0x16f685){try{jsonpatch[_0x6a47('0x1e')](_0x16f685,_0x24a8b3,!![]);}catch(_0x20041e){return BPromise[_0x6a47('0x1f')](_0x20041e);}return _0x16f685[_0x6a47('0x20')]();};}function saveUpdates(_0x3d861f,_0x2baffc){return function(_0x395304){if(_0x395304){return _0x395304[_0x6a47('0x21')](_0x3d861f)[_0x6a47('0x22')](function(_0x36de27){return _0x36de27;});}return null;};}function removeEntity(_0x3ab1c8,_0x59231e){return function(_0x160a0e){if(_0x160a0e){return _0x160a0e[_0x6a47('0x23')]()[_0x6a47('0x22')](function(){var _0x3e1fc0=_0x160a0e[_0x6a47('0x24')]({'plain':!![]});var _0x56466b=_0x6a47('0x25');return db[_0x6a47('0x26')][_0x6a47('0x23')]({'where':{'type':_0x56466b,'resourceId':_0x3e1fc0['id']}})[_0x6a47('0x22')](function(){return _0x160a0e;});})['then'](function(){_0x3ab1c8['status'](0xcc)[_0x6a47('0x18')]();});}};}function handleEntityNotFound(_0x52853d,_0x199ba3){return function(_0x3b88a5){if(!_0x3b88a5){_0x52853d['sendStatus'](0x194);}return _0x3b88a5;};}function handleError(_0x1c3cb1,_0x413102){_0x413102=_0x413102||0x1f4;return function(_0x396ad8){logger[_0x6a47('0x27')](_0x396ad8[_0x6a47('0x28')]);if(_0x396ad8['name']){delete _0x396ad8['name'];}_0x1c3cb1[_0x6a47('0x17')](_0x413102)[_0x6a47('0x29')](_0x396ad8);};}exports[_0x6a47('0x2a')]=function(_0x2eec9d,_0x16e352){var _0x575441={},_0x556f7b={},_0x45e73a={'count':0x0,'rows':[]};var _0x5ebc71=_['map'](db[_0x6a47('0x2b')][_0x6a47('0x2c')],function(_0x597df7){return{'name':_0x597df7[_0x6a47('0x2d')],'type':_0x597df7['type'][_0x6a47('0x2e')]};});_0x556f7b[_0x6a47('0x2f')]=_[_0x6a47('0x30')](_0x5ebc71,_0x6a47('0x31'));_0x556f7b['query']=_[_0x6a47('0x32')](_0x2eec9d[_0x6a47('0x33')]);_0x556f7b['filters']=_['intersection'](_0x556f7b[_0x6a47('0x2f')],_0x556f7b[_0x6a47('0x33')]);_0x575441['attributes']=_[_0x6a47('0x34')](_0x556f7b[_0x6a47('0x2f')],qs[_0x6a47('0x35')](_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x35')]));_0x575441[_0x6a47('0x36')]=_0x575441[_0x6a47('0x36')][_0x6a47('0x37')]?_0x575441[_0x6a47('0x36')]:_0x556f7b[_0x6a47('0x2f')];if(!_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x38')](_0x6a47('0x39'))){_0x575441['limit']=qs[_0x6a47('0x1c')](_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x1c')]);_0x575441[_0x6a47('0x1b')]=qs[_0x6a47('0x1b')](_0x2eec9d['query'][_0x6a47('0x1b')]);}_0x575441[_0x6a47('0x3a')]=qs['sort'](_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x3b')]);_0x575441['where']=qs[_0x6a47('0x3c')](_['pick'](_0x2eec9d[_0x6a47('0x33')],_0x556f7b[_0x6a47('0x3c')]),_0x5ebc71);if(_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x3d')]){_0x575441[_0x6a47('0x3e')]=_[_0x6a47('0x3f')](_0x575441[_0x6a47('0x3e')],{'$or':_[_0x6a47('0x30')](_0x5ebc71,function(_0x483445){if(_0x483445[_0x6a47('0x40')]!==_0x6a47('0x41')){var _0x24df4b={};_0x24df4b[_0x483445[_0x6a47('0x31')]]={'$like':'%'+_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x3d')]+'%'};return _0x24df4b;}})});}_0x575441=_[_0x6a47('0x3f')]({},_0x575441,_0x2eec9d['options']);var _0x3f2930={'where':_0x575441[_0x6a47('0x3e')]};return db[_0x6a47('0x2b')][_0x6a47('0x1a')](_0x3f2930)[_0x6a47('0x22')](function(_0x438dfb){_0x45e73a[_0x6a47('0x1a')]=_0x438dfb;if(_0x2eec9d[_0x6a47('0x33')][_0x6a47('0x42')]){_0x575441['include']=[{'all':!![]}];}return db['Tag']['findAll'](_0x575441);})['then'](function(_0x255759){_0x45e73a[_0x6a47('0x43')]=_0x255759;return _0x45e73a;})[_0x6a47('0x22')](respondWithFilteredResult(_0x16e352,_0x575441))[_0x6a47('0x44')](handleError(_0x16e352,null));};exports[_0x6a47('0x45')]=function(_0x78a1a2,_0x1b7f66){var _0x2be257={'raw':!![],'where':{'id':_0x78a1a2[_0x6a47('0x46')]['id']}},_0x5d1710={};_0x5d1710[_0x6a47('0x2f')]=_['keys'](db[_0x6a47('0x2b')][_0x6a47('0x2c')]);_0x5d1710[_0x6a47('0x33')]=_[_0x6a47('0x32')](_0x78a1a2['query']);_0x5d1710[_0x6a47('0x3c')]=_[_0x6a47('0x34')](_0x5d1710[_0x6a47('0x2f')],_0x5d1710[_0x6a47('0x33')]);_0x2be257[_0x6a47('0x36')]=_[_0x6a47('0x34')](_0x5d1710[_0x6a47('0x2f')],qs[_0x6a47('0x35')](_0x78a1a2[_0x6a47('0x33')][_0x6a47('0x35')]));_0x2be257[_0x6a47('0x36')]=_0x2be257[_0x6a47('0x36')][_0x6a47('0x37')]?_0x2be257['attributes']:_0x5d1710[_0x6a47('0x2f')];if(_0x78a1a2[_0x6a47('0x33')][_0x6a47('0x42')]){_0x2be257[_0x6a47('0x47')]=[{'all':!![]}];}_0x2be257=_[_0x6a47('0x3f')]({},_0x2be257,_0x78a1a2[_0x6a47('0x48')]);return db[_0x6a47('0x2b')]['find'](_0x2be257)['then'](handleEntityNotFound(_0x1b7f66,null))['then'](respondWithResult(_0x1b7f66,null))[_0x6a47('0x44')](handleError(_0x1b7f66,null));};exports[_0x6a47('0x49')]=function(_0x3d2e55,_0x5e3f19){return db[_0x6a47('0x2b')][_0x6a47('0x49')](_0x3d2e55[_0x6a47('0x4a')],{})[_0x6a47('0x22')](function(_0x4827e4){var _0x4b8360=_0x3d2e55[_0x6a47('0x4b')][_0x6a47('0x24')]({'plain':!![]});if(!_0x4b8360)throw new Error(_0x6a47('0x4c'));if(_0x4b8360[_0x6a47('0x4d')]===_0x6a47('0x4b')){var _0x1a967d=_0x4827e4[_0x6a47('0x24')]({'plain':!![]});var _0x9f7634='Tags';return db[_0x6a47('0x4e')][_0x6a47('0x4f')]({'where':{'name':_0x9f7634,'userProfileId':_0x4b8360['userProfileId']},'raw':!![]})[_0x6a47('0x22')](function(_0x4d308e){if(_0x4d308e&&_0x4d308e[_0x6a47('0x50')]===0x0){return db['UserProfileResource']['create']({'name':_0x1a967d['name'],'resourceId':_0x1a967d['id'],'type':_0x4d308e[_0x6a47('0x31')],'sectionId':_0x4d308e['id']},{})[_0x6a47('0x22')](function(){return _0x4827e4;});}else{return _0x4827e4;}})[_0x6a47('0x44')](function(_0x54fe56){logger[_0x6a47('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x54fe56);throw _0x54fe56;});}return _0x4827e4;})[_0x6a47('0x22')](respondWithResult(_0x5e3f19,0xc9))[_0x6a47('0x44')](handleError(_0x5e3f19,null));};exports[_0x6a47('0x21')]=function(_0x3c24c1,_0x3020e1){if(_0x3c24c1['body']['id']){delete _0x3c24c1['body']['id'];}return db['Tag']['find']({'where':{'id':_0x3c24c1[_0x6a47('0x46')]['id']}})[_0x6a47('0x22')](handleEntityNotFound(_0x3020e1,null))[_0x6a47('0x22')](saveUpdates(_0x3c24c1[_0x6a47('0x4a')],null))['then'](respondWithResult(_0x3020e1,null))[_0x6a47('0x44')](handleError(_0x3020e1,null));};exports[_0x6a47('0x23')]=function(_0xbca30d,_0x3bd6a2){return db['Tag']['find']({'where':{'id':_0xbca30d[_0x6a47('0x46')]['id']}})[_0x6a47('0x22')](handleEntityNotFound(_0x3bd6a2,null))['then'](removeEntity(_0x3bd6a2,null))[_0x6a47('0x44')](handleError(_0x3bd6a2,null));};