2705d48d63ec55643417e170168f0178260a1958
[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 _0x4460=['error','name','send','index','map','Tag','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','get','role','user','find','userProfileId','autoAssociation','UserProfileResource','destroy','eml-format','zip-dir','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','Tags','end'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4460,0x80));var _0x0446=function(_0x186a7c,_0x32f5ed){_0x186a7c=_0x186a7c-0x0;var _0x52e0f8=_0x4460[_0x186a7c];return _0x52e0f8;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x0446('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0446('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0446('0x2'));var moment=require('moment');var BPromise=require(_0x0446('0x3'));var Mustache=require(_0x0446('0x4'));var util=require(_0x0446('0x5'));var path=require('path');var sox=require(_0x0446('0x6'));var csv=require(_0x0446('0x7'));var ejs=require(_0x0446('0x8'));var fs=require('fs');var _=require(_0x0446('0x9'));var squel=require(_0x0446('0xa'));var crypto=require('crypto');var jsforce=require(_0x0446('0xb'));var deskjs=require(_0x0446('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x0446('0xd'));var authService=require(_0x0446('0xe'));var qs=require(_0x0446('0xf'));var as=require(_0x0446('0x10'));var hardwareService=require(_0x0446('0x11'));var logger=require(_0x0446('0x12'))(_0x0446('0x13'));var utils=require(_0x0446('0x14'));var config=require(_0x0446('0x15'));var db=require(_0x0446('0x16'))['db'];function respondWithStatusCode(_0x20ccd9,_0x3df13e){_0x3df13e=_0x3df13e||0xcc;return function(_0x5c3faf){if(_0x5c3faf){return _0x20ccd9[_0x0446('0x17')](_0x3df13e);}return _0x20ccd9['status'](_0x3df13e)['end']();};}function respondWithResult(_0xce87f9,_0x9c429f){_0x9c429f=_0x9c429f||0xc8;return function(_0x3c7b90){if(_0x3c7b90){return _0xce87f9[_0x0446('0x18')](_0x9c429f)[_0x0446('0x19')](_0x3c7b90);}};}function respondWithFilteredResult(_0x2ba091,_0x2c7d7e){return function(_0x5ce192){if(_0x5ce192){var _0x21a06c=_0x5ce192[_0x0446('0x1a')],_0x5f3f2a=_0x2c7d7e[_0x0446('0x1b')],_0x199925=_0x2c7d7e[_0x0446('0x1b')]+_0x2c7d7e[_0x0446('0x1c')],_0x2b03c2;if(_0x199925>=_0x21a06c){_0x199925=_0x21a06c;_0x2b03c2=0xc8;}else{_0x2b03c2=0xce;}_0x2ba091[_0x0446('0x18')](_0x2b03c2);return _0x2ba091[_0x0446('0x1d')](_0x0446('0x1e'),_0x5f3f2a+'-'+_0x199925+'/'+_0x21a06c)[_0x0446('0x19')](_0x5ce192);}return null;};}function patchUpdates(_0x35ddcb){return function(_0x3c7f32){try{jsonpatch[_0x0446('0x1f')](_0x3c7f32,_0x35ddcb,!![]);}catch(_0x4bc43b){return BPromise[_0x0446('0x20')](_0x4bc43b);}return _0x3c7f32[_0x0446('0x21')]();};}function saveUpdates(_0x3a64d7,_0x922ca1){return function(_0x3290da){if(_0x3290da){return _0x3290da[_0x0446('0x22')](_0x3a64d7)[_0x0446('0x23')](function(_0x5ca117){return _0x5ca117;});}return null;};}function removeEntity(_0x411408,_0x33020c){return function(_0x10cc80){if(_0x10cc80){return _0x10cc80['destroy']()['then'](function(){var _0x295163=_0x10cc80['get']({'plain':!![]});var _0x1f3c30=_0x0446('0x24');return db['UserProfileResource']['destroy']({'where':{'type':_0x1f3c30,'resourceId':_0x295163['id']}})[_0x0446('0x23')](function(){return _0x10cc80;});})[_0x0446('0x23')](function(){_0x411408['status'](0xcc)[_0x0446('0x25')]();});}};}function handleEntityNotFound(_0x5f5d53,_0x356750){return function(_0x301e09){if(!_0x301e09){_0x5f5d53[_0x0446('0x17')](0x194);}return _0x301e09;};}function handleError(_0x51b9e3,_0x51e3e){_0x51e3e=_0x51e3e||0x1f4;return function(_0x23695d){logger[_0x0446('0x26')](_0x23695d['stack']);if(_0x23695d['name']){delete _0x23695d[_0x0446('0x27')];}_0x51b9e3[_0x0446('0x18')](_0x51e3e)[_0x0446('0x28')](_0x23695d);};}exports[_0x0446('0x29')]=function(_0xe1bca,_0x11ade4){var _0x3d6f06={},_0x10dd89={},_0x472d51={'count':0x0,'rows':[]};var _0x264b90=_[_0x0446('0x2a')](db[_0x0446('0x2b')][_0x0446('0x2c')],function(_0x585ad1){return{'name':_0x585ad1[_0x0446('0x2d')],'type':_0x585ad1[_0x0446('0x2e')][_0x0446('0x2f')]};});_0x10dd89[_0x0446('0x30')]=_[_0x0446('0x2a')](_0x264b90,_0x0446('0x27'));_0x10dd89[_0x0446('0x31')]=_[_0x0446('0x32')](_0xe1bca[_0x0446('0x31')]);_0x10dd89[_0x0446('0x33')]=_[_0x0446('0x34')](_0x10dd89[_0x0446('0x30')],_0x10dd89[_0x0446('0x31')]);_0x3d6f06['attributes']=_[_0x0446('0x34')](_0x10dd89[_0x0446('0x30')],qs[_0x0446('0x35')](_0xe1bca[_0x0446('0x31')]['fields']));_0x3d6f06[_0x0446('0x36')]=_0x3d6f06[_0x0446('0x36')][_0x0446('0x37')]?_0x3d6f06[_0x0446('0x36')]:_0x10dd89[_0x0446('0x30')];if(!_0xe1bca[_0x0446('0x31')][_0x0446('0x38')](_0x0446('0x39'))){_0x3d6f06[_0x0446('0x1c')]=qs[_0x0446('0x1c')](_0xe1bca['query'][_0x0446('0x1c')]);_0x3d6f06[_0x0446('0x1b')]=qs[_0x0446('0x1b')](_0xe1bca[_0x0446('0x31')][_0x0446('0x1b')]);}_0x3d6f06[_0x0446('0x3a')]=qs[_0x0446('0x3b')](_0xe1bca[_0x0446('0x31')][_0x0446('0x3b')]);_0x3d6f06[_0x0446('0x3c')]=qs['filters'](_[_0x0446('0x3d')](_0xe1bca[_0x0446('0x31')],_0x10dd89['filters']),_0x264b90);if(_0xe1bca[_0x0446('0x31')][_0x0446('0x3e')]){_0x3d6f06['where']=_[_0x0446('0x3f')](_0x3d6f06[_0x0446('0x3c')],{'$or':_[_0x0446('0x2a')](_0x264b90,function(_0x4be8e6){if(_0x4be8e6[_0x0446('0x2e')]!==_0x0446('0x40')){var _0x5566c7={};_0x5566c7[_0x4be8e6[_0x0446('0x27')]]={'$like':'%'+_0xe1bca['query'][_0x0446('0x3e')]+'%'};return _0x5566c7;}})});}_0x3d6f06=_['merge']({},_0x3d6f06,_0xe1bca[_0x0446('0x41')]);var _0x4237cd={'where':_0x3d6f06['where']};return db[_0x0446('0x2b')][_0x0446('0x1a')](_0x4237cd)[_0x0446('0x23')](function(_0x73a526){_0x472d51[_0x0446('0x1a')]=_0x73a526;if(_0xe1bca['query'][_0x0446('0x42')]){_0x3d6f06[_0x0446('0x43')]=[{'all':!![]}];}return db[_0x0446('0x2b')][_0x0446('0x44')](_0x3d6f06);})[_0x0446('0x23')](function(_0x36dbad){_0x472d51[_0x0446('0x45')]=_0x36dbad;return _0x472d51;})[_0x0446('0x23')](respondWithFilteredResult(_0x11ade4,_0x3d6f06))[_0x0446('0x46')](handleError(_0x11ade4,null));};exports[_0x0446('0x47')]=function(_0xb5c1db,_0x194935){var _0x3afbb5={'raw':!![],'where':{'id':_0xb5c1db[_0x0446('0x48')]['id']}},_0x4d288c={};_0x4d288c['model']=_['keys'](db['Tag'][_0x0446('0x2c')]);_0x4d288c[_0x0446('0x31')]=_[_0x0446('0x32')](_0xb5c1db[_0x0446('0x31')]);_0x4d288c['filters']=_['intersection'](_0x4d288c[_0x0446('0x30')],_0x4d288c['query']);_0x3afbb5[_0x0446('0x36')]=_[_0x0446('0x34')](_0x4d288c[_0x0446('0x30')],qs['fields'](_0xb5c1db[_0x0446('0x31')][_0x0446('0x35')]));_0x3afbb5['attributes']=_0x3afbb5[_0x0446('0x36')]['length']?_0x3afbb5[_0x0446('0x36')]:_0x4d288c[_0x0446('0x30')];if(_0xb5c1db[_0x0446('0x31')][_0x0446('0x42')]){_0x3afbb5[_0x0446('0x43')]=[{'all':!![]}];}_0x3afbb5=_['merge']({},_0x3afbb5,_0xb5c1db[_0x0446('0x41')]);return db['Tag']['find'](_0x3afbb5)[_0x0446('0x23')](handleEntityNotFound(_0x194935,null))[_0x0446('0x23')](respondWithResult(_0x194935,null))[_0x0446('0x46')](handleError(_0x194935,null));};exports['create']=function(_0xd97ad7,_0x374e43){return db['Tag'][_0x0446('0x49')](_0xd97ad7[_0x0446('0x4a')],{})[_0x0446('0x23')](function(_0x5bae29){var _0x4de197=_0xd97ad7['user'][_0x0446('0x4b')]({'plain':!![]});if(!_0x4de197)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4de197[_0x0446('0x4c')]===_0x0446('0x4d')){var _0x27967c=_0x5bae29[_0x0446('0x4b')]({'plain':!![]});var _0x4e5f7a=_0x0446('0x24');return db['UserProfileSection'][_0x0446('0x4e')]({'where':{'name':_0x4e5f7a,'userProfileId':_0x4de197[_0x0446('0x4f')]},'raw':!![]})[_0x0446('0x23')](function(_0x4b9cfd){if(_0x4b9cfd&&_0x4b9cfd[_0x0446('0x50')]===0x0){return db[_0x0446('0x51')][_0x0446('0x49')]({'name':_0x27967c[_0x0446('0x27')],'resourceId':_0x27967c['id'],'type':_0x4b9cfd[_0x0446('0x27')],'sectionId':_0x4b9cfd['id']},{})[_0x0446('0x23')](function(){return _0x5bae29;});}else{return _0x5bae29;}})[_0x0446('0x46')](function(_0x4bc9c9){logger[_0x0446('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4bc9c9);throw _0x4bc9c9;});}return _0x5bae29;})[_0x0446('0x23')](respondWithResult(_0x374e43,0xc9))[_0x0446('0x46')](handleError(_0x374e43,null));};exports[_0x0446('0x22')]=function(_0x192dd7,_0x579d6f){if(_0x192dd7[_0x0446('0x4a')]['id']){delete _0x192dd7[_0x0446('0x4a')]['id'];}return db[_0x0446('0x2b')][_0x0446('0x4e')]({'where':{'id':_0x192dd7['params']['id']}})[_0x0446('0x23')](handleEntityNotFound(_0x579d6f,null))['then'](saveUpdates(_0x192dd7[_0x0446('0x4a')],null))[_0x0446('0x23')](respondWithResult(_0x579d6f,null))['catch'](handleError(_0x579d6f,null));};exports[_0x0446('0x52')]=function(_0x2b2603,_0x4c804b){return db['Tag'][_0x0446('0x4e')]({'where':{'id':_0x2b2603[_0x0446('0x48')]['id']}})['then'](handleEntityNotFound(_0x4c804b,null))[_0x0446('0x23')](removeEntity(_0x4c804b,null))[_0x0446('0x46')](handleError(_0x4c804b,null));};