Built motion from commit (unavailable).|2.5.20
[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 _0xaa46=['userProfileId','autoAssociation','error','find','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','get','Tags','UserProfileResource','sendStatus','stack','send','index','rawAttributes','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','name','options','Tag','includeAll','include','rows','catch','show','params','keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection'];(function(_0x56c04f,_0x25c86d){var _0x2d1911=function(_0x35b9cd){while(--_0x35b9cd){_0x56c04f['push'](_0x56c04f['shift']());}};_0x2d1911(++_0x25c86d);}(_0xaa46,0x1f0));var _0x6aa4=function(_0x363816,_0xc20c5a){_0x363816=_0x363816-0x0;var _0x368201=_0xaa46[_0x363816];return _0x368201;};'use strict';var pdf=require(_0x6aa4('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6aa4('0x1'));var zipdir=require(_0x6aa4('0x2'));var jsonpatch=require(_0x6aa4('0x3'));var rp=require(_0x6aa4('0x4'));var moment=require(_0x6aa4('0x5'));var BPromise=require(_0x6aa4('0x6'));var Mustache=require(_0x6aa4('0x7'));var util=require('util');var path=require(_0x6aa4('0x8'));var sox=require(_0x6aa4('0x9'));var csv=require(_0x6aa4('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6aa4('0xb'));var squel=require(_0x6aa4('0xc'));var crypto=require('crypto');var jsforce=require(_0x6aa4('0xd'));var deskjs=require(_0x6aa4('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6aa4('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x6aa4('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6aa4('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6aa4('0x12'))(_0x6aa4('0x13'));var utils=require(_0x6aa4('0x14'));var config=require(_0x6aa4('0x15'));var licenseUtil=require(_0x6aa4('0x16'));var db=require(_0x6aa4('0x17'))['db'];function respondWithStatusCode(_0x25af87,_0x3e8713){_0x3e8713=_0x3e8713||0xcc;return function(_0x55288d){if(_0x55288d){return _0x25af87['sendStatus'](_0x3e8713);}return _0x25af87[_0x6aa4('0x18')](_0x3e8713)[_0x6aa4('0x19')]();};}function respondWithResult(_0x11d7c2,_0x3ad70f){_0x3ad70f=_0x3ad70f||0xc8;return function(_0xebe19a){if(_0xebe19a){return _0x11d7c2[_0x6aa4('0x18')](_0x3ad70f)[_0x6aa4('0x1a')](_0xebe19a);}};}function respondWithFilteredResult(_0x533538,_0x585bf0){return function(_0x13321b){if(_0x13321b){var _0x31e612=_0x13321b[_0x6aa4('0x1b')],_0x2458bb=_0x585bf0[_0x6aa4('0x1c')],_0xfcba0c=_0x585bf0[_0x6aa4('0x1c')]+_0x585bf0[_0x6aa4('0x1d')],_0x21dd71;if(_0xfcba0c>=_0x31e612){_0xfcba0c=_0x31e612;_0x21dd71=0xc8;}else{_0x21dd71=0xce;}_0x533538['status'](_0x21dd71);return _0x533538[_0x6aa4('0x1e')](_0x6aa4('0x1f'),_0x2458bb+'-'+_0xfcba0c+'/'+_0x31e612)[_0x6aa4('0x1a')](_0x13321b);}return null;};}function patchUpdates(_0x15b98d){return function(_0x422b96){try{jsonpatch['apply'](_0x422b96,_0x15b98d,!![]);}catch(_0x47c8c1){return BPromise[_0x6aa4('0x20')](_0x47c8c1);}return _0x422b96[_0x6aa4('0x21')]();};}function saveUpdates(_0x5d3484,_0x53d5cd){return function(_0x29fece){if(_0x29fece){return _0x29fece[_0x6aa4('0x22')](_0x5d3484)[_0x6aa4('0x23')](function(_0x7a623){return _0x7a623;});}return null;};}function removeEntity(_0xca5807,_0x43dc48){return function(_0x3b9f86){if(_0x3b9f86){return _0x3b9f86[_0x6aa4('0x24')]()[_0x6aa4('0x23')](function(){var _0x46c9d6=_0x3b9f86[_0x6aa4('0x25')]({'plain':!![]});var _0x439d74=_0x6aa4('0x26');return db[_0x6aa4('0x27')][_0x6aa4('0x24')]({'where':{'type':_0x439d74,'resourceId':_0x46c9d6['id']}})['then'](function(){return _0x3b9f86;});})[_0x6aa4('0x23')](function(){_0xca5807[_0x6aa4('0x18')](0xcc)[_0x6aa4('0x19')]();});}};}function handleEntityNotFound(_0x19341e,_0x324208){return function(_0x3b8a34){if(!_0x3b8a34){_0x19341e[_0x6aa4('0x28')](0x194);}return _0x3b8a34;};}function handleError(_0x13ccaf,_0x49377c){_0x49377c=_0x49377c||0x1f4;return function(_0x1008d1){logger['error'](_0x1008d1[_0x6aa4('0x29')]);if(_0x1008d1['name']){delete _0x1008d1['name'];}_0x13ccaf[_0x6aa4('0x18')](_0x49377c)[_0x6aa4('0x2a')](_0x1008d1);};}exports[_0x6aa4('0x2b')]=function(_0x470342,_0x571b3e){var _0x2ad99d={},_0x2427a0={},_0x30491e={'count':0x0,'rows':[]};var _0x1722a4=_['map'](db['Tag'][_0x6aa4('0x2c')],function(_0x5df5cb){return{'name':_0x5df5cb['fieldName'],'type':_0x5df5cb[_0x6aa4('0x2d')][_0x6aa4('0x2e')]};});_0x2427a0[_0x6aa4('0x2f')]=_[_0x6aa4('0x30')](_0x1722a4,'name');_0x2427a0['query']=_['keys'](_0x470342[_0x6aa4('0x31')]);_0x2427a0[_0x6aa4('0x32')]=_[_0x6aa4('0x33')](_0x2427a0['model'],_0x2427a0['query']);_0x2ad99d[_0x6aa4('0x34')]=_['intersection'](_0x2427a0[_0x6aa4('0x2f')],qs[_0x6aa4('0x35')](_0x470342[_0x6aa4('0x31')][_0x6aa4('0x35')]));_0x2ad99d['attributes']=_0x2ad99d[_0x6aa4('0x34')][_0x6aa4('0x36')]?_0x2ad99d[_0x6aa4('0x34')]:_0x2427a0[_0x6aa4('0x2f')];if(!_0x470342[_0x6aa4('0x31')][_0x6aa4('0x37')]('nolimit')){_0x2ad99d['limit']=qs['limit'](_0x470342[_0x6aa4('0x31')]['limit']);_0x2ad99d[_0x6aa4('0x1c')]=qs[_0x6aa4('0x1c')](_0x470342[_0x6aa4('0x31')][_0x6aa4('0x1c')]);}_0x2ad99d[_0x6aa4('0x38')]=qs[_0x6aa4('0x39')](_0x470342[_0x6aa4('0x31')][_0x6aa4('0x39')]);_0x2ad99d[_0x6aa4('0x3a')]=qs[_0x6aa4('0x32')](_[_0x6aa4('0x3b')](_0x470342[_0x6aa4('0x31')],_0x2427a0[_0x6aa4('0x32')]),_0x1722a4);if(_0x470342[_0x6aa4('0x31')][_0x6aa4('0x3c')]){_0x2ad99d[_0x6aa4('0x3a')]=_[_0x6aa4('0x3d')](_0x2ad99d['where'],{'$or':_['map'](_0x1722a4,function(_0x3e3faf){if(_0x3e3faf['type']!=='VIRTUAL'){var _0x412125={};_0x412125[_0x3e3faf[_0x6aa4('0x3e')]]={'$like':'%'+_0x470342['query'][_0x6aa4('0x3c')]+'%'};return _0x412125;}})});}_0x2ad99d=_['merge']({},_0x2ad99d,_0x470342[_0x6aa4('0x3f')]);var _0xdb5106={'where':_0x2ad99d[_0x6aa4('0x3a')]};return db[_0x6aa4('0x40')][_0x6aa4('0x1b')](_0xdb5106)['then'](function(_0x485caf){_0x30491e[_0x6aa4('0x1b')]=_0x485caf;if(_0x470342[_0x6aa4('0x31')][_0x6aa4('0x41')]){_0x2ad99d[_0x6aa4('0x42')]=[{'all':!![]}];}return db[_0x6aa4('0x40')]['findAll'](_0x2ad99d);})[_0x6aa4('0x23')](function(_0x514974){_0x30491e[_0x6aa4('0x43')]=_0x514974;return _0x30491e;})[_0x6aa4('0x23')](respondWithFilteredResult(_0x571b3e,_0x2ad99d))[_0x6aa4('0x44')](handleError(_0x571b3e,null));};exports[_0x6aa4('0x45')]=function(_0x179922,_0x427e7c){var _0x22f2c5={'raw':!![],'where':{'id':_0x179922[_0x6aa4('0x46')]['id']}},_0x2f80b4={};_0x2f80b4[_0x6aa4('0x2f')]=_['keys'](db[_0x6aa4('0x40')][_0x6aa4('0x2c')]);_0x2f80b4[_0x6aa4('0x31')]=_[_0x6aa4('0x47')](_0x179922[_0x6aa4('0x31')]);_0x2f80b4[_0x6aa4('0x32')]=_['intersection'](_0x2f80b4['model'],_0x2f80b4[_0x6aa4('0x31')]);_0x22f2c5[_0x6aa4('0x34')]=_[_0x6aa4('0x33')](_0x2f80b4[_0x6aa4('0x2f')],qs[_0x6aa4('0x35')](_0x179922[_0x6aa4('0x31')][_0x6aa4('0x35')]));_0x22f2c5[_0x6aa4('0x34')]=_0x22f2c5[_0x6aa4('0x34')]['length']?_0x22f2c5[_0x6aa4('0x34')]:_0x2f80b4['model'];if(_0x179922[_0x6aa4('0x31')]['includeAll']){_0x22f2c5[_0x6aa4('0x42')]=[{'all':!![]}];}_0x22f2c5=_[_0x6aa4('0x3d')]({},_0x22f2c5,_0x179922['options']);return db[_0x6aa4('0x40')]['find'](_0x22f2c5)[_0x6aa4('0x23')](handleEntityNotFound(_0x427e7c,null))['then'](respondWithResult(_0x427e7c,null))[_0x6aa4('0x44')](handleError(_0x427e7c,null));};exports['create']=function(_0x39304c,_0x4aabeb){return db['Tag'][_0x6aa4('0x48')](_0x39304c[_0x6aa4('0x49')],{})['then'](function(_0x1615ec){var _0x13138f=_0x39304c[_0x6aa4('0x4a')][_0x6aa4('0x25')]({'plain':!![]});if(!_0x13138f)throw new Error(_0x6aa4('0x4b'));if(_0x13138f[_0x6aa4('0x4c')]===_0x6aa4('0x4a')){var _0x2f6990=_0x1615ec[_0x6aa4('0x25')]({'plain':!![]});var _0x5c6b21=_0x6aa4('0x26');return db[_0x6aa4('0x4d')]['find']({'where':{'name':_0x5c6b21,'userProfileId':_0x13138f[_0x6aa4('0x4e')]},'raw':!![]})[_0x6aa4('0x23')](function(_0x15235b){if(_0x15235b&&_0x15235b[_0x6aa4('0x4f')]===0x0){return db[_0x6aa4('0x27')]['create']({'name':_0x2f6990[_0x6aa4('0x3e')],'resourceId':_0x2f6990['id'],'type':_0x15235b[_0x6aa4('0x3e')],'sectionId':_0x15235b['id']},{})['then'](function(){return _0x1615ec;});}else{return _0x1615ec;}})['catch'](function(_0x305da3){logger[_0x6aa4('0x50')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x305da3);throw _0x305da3;});}return _0x1615ec;})[_0x6aa4('0x23')](respondWithResult(_0x4aabeb,0xc9))[_0x6aa4('0x44')](handleError(_0x4aabeb,null));};exports[_0x6aa4('0x22')]=function(_0x2db8eb,_0x46eb2e){if(_0x2db8eb[_0x6aa4('0x49')]['id']){delete _0x2db8eb['body']['id'];}return db[_0x6aa4('0x40')][_0x6aa4('0x51')]({'where':{'id':_0x2db8eb[_0x6aa4('0x46')]['id']}})[_0x6aa4('0x23')](handleEntityNotFound(_0x46eb2e,null))[_0x6aa4('0x23')](saveUpdates(_0x2db8eb['body'],null))[_0x6aa4('0x23')](respondWithResult(_0x46eb2e,null))[_0x6aa4('0x44')](handleError(_0x46eb2e,null));};exports[_0x6aa4('0x24')]=function(_0x325fcb,_0x462d37){return db[_0x6aa4('0x40')][_0x6aa4('0x51')]({'where':{'id':_0x325fcb['params']['id']}})['then'](handleEntityNotFound(_0x462d37,null))['then'](removeEntity(_0x462d37,null))[_0x6aa4('0x44')](handleError(_0x462d37,null));};