refactor: switch to using slugify module

This commit is contained in:
Barış Soner Uşaklı
2020-10-11 21:49:37 -04:00
parent bddfcb5867
commit dc29f4dca2
28 changed files with 88 additions and 60 deletions

View File

@@ -2,7 +2,7 @@
const meta = require('../meta');
const plugins = require('../plugins');
const utils = require('../utils');
const slugify = require('../slugify');
const db = require('../database');
module.exports = function (Groups) {
@@ -27,7 +27,7 @@ module.exports = function (Groups) {
const isPrivate = data.hasOwnProperty('private') && data.private !== undefined ? parseInt(data.private, 10) === 1 : true;
let groupData = {
name: data.name,
slug: utils.slugify(data.name),
slug: slugify(data.name),
createtime: timestamp,
userTitle: data.userTitle || data.name,
userTitleEnabled: parseInt(data.userTitleEnabled, 10) === 1 ? 1 : 0,
@@ -88,7 +88,7 @@ module.exports = function (Groups) {
throw new Error('[[error:invalid-group-name]]');
}
if (name.includes('/') || !utils.slugify(name)) {
if (name.includes('/') || !slugify(name)) {
throw new Error('[[error:invalid-group-name]]');
}
};

View File

@@ -1,7 +1,7 @@
'use strict';
const plugins = require('../plugins');
const utils = require('../utils');
const slugify = require('../slugify');
const db = require('../database');
const batch = require('../batch');
@@ -27,7 +27,7 @@ module.exports = function (Groups) {
);
});
const sets = groupNames.map(groupName => groupName.toLowerCase() + ':' + groupName);
const fields = groupNames.map(groupName => utils.slugify(groupName));
const fields = groupNames.map(groupName => slugify(groupName));
await Promise.all([
db.deleteAll(keys),

View File

@@ -3,7 +3,7 @@
const user = require('../user');
const db = require('../database');
const plugins = require('../plugins');
const utils = require('../utils');
const slugify = require('../slugify');
const Groups = module.exports;
@@ -28,7 +28,7 @@ Groups.ephemeralGroups = ['guests', 'spiders'];
Groups.getEphemeralGroup = function (groupName) {
return {
name: groupName,
slug: utils.slugify(groupName),
slug: slugify(groupName),
description: '',
deleted: '0',
hidden: '0',
@@ -217,12 +217,12 @@ async function isFieldOn(groupName, field) {
Groups.exists = async function (name) {
if (Array.isArray(name)) {
const slugs = name.map(groupName => utils.slugify(groupName));
const slugs = name.map(groupName => slugify(groupName));
const isMembersOfRealGroups = await db.isSortedSetMembers('groups:createtime', name);
const isMembersOfEphemeralGroups = slugs.map(slug => Groups.ephemeralGroups.includes(slug));
return name.map((n, index) => isMembersOfRealGroups[index] || isMembersOfEphemeralGroups[index]);
}
const slug = utils.slugify(name);
const slug = slugify(name);
const isMemberOfRealGroups = await db.isSortedSetMember('groups:createtime', name);
const isMemberOfEphemeralGroups = Groups.ephemeralGroups.includes(slug);
return isMemberOfRealGroups || isMemberOfEphemeralGroups;

View File

@@ -4,7 +4,7 @@ const _ = require('lodash');
const db = require('../database');
const user = require('../user');
const utils = require('../utils');
const slugify = require('../slugify');
const plugins = require('../plugins');
const notifications = require('../notifications');
@@ -18,7 +18,7 @@ module.exports = function (Groups) {
bodyShort: '[[groups:request.notification_title, ' + username + ']]',
bodyLong: '[[groups:request.notification_text, ' + username + ', ' + groupName + ']]',
nid: 'group:' + groupName + ':uid:' + uid + ':request',
path: '/groups/' + utils.slugify(groupName),
path: '/groups/' + slugify(groupName),
from: uid,
}),
Groups.getOwners(groupName),
@@ -35,7 +35,7 @@ module.exports = function (Groups) {
type: 'group-invite',
bodyShort: '[[groups:membership.accept.notification_title, ' + groupName + ']]',
nid: 'group:' + groupName + ':uid:' + uid + ':invite-accepted',
path: '/groups/' + utils.slugify(groupName),
path: '/groups/' + slugify(groupName),
});
await notifications.push(notification, [uid]);
};
@@ -58,7 +58,7 @@ module.exports = function (Groups) {
bodyShort: '[[groups:invited.notification_title, ' + groupName + ']]',
bodyLong: '',
nid: 'group:' + groupName + ':uid:' + uid + ':invite',
path: '/groups/' + utils.slugify(groupName),
path: '/groups/' + slugify(groupName),
})));
await Promise.all(uids.map((uid, index) => notifications.push(notificationData[index], uid)));

View File

@@ -3,7 +3,7 @@
const winston = require('winston');
const plugins = require('../plugins');
const utils = require('../utils');
const slugify = require('../slugify');
const db = require('../database');
const user = require('../user');
const batch = require('../batch');
@@ -132,8 +132,8 @@ module.exports = function (Groups) {
if (Groups.isPrivilegeGroup(newName)) {
throw new Error('[[error:invalid-group-name]]');
}
const currentSlug = utils.slugify(currentName);
const newSlug = utils.slugify(newName);
const currentSlug = slugify(currentName);
const newSlug = slugify(newName);
if (currentName === newName || currentSlug === newSlug) {
return;
}
@@ -174,9 +174,9 @@ module.exports = function (Groups) {
await updateNavigationItems(oldName, newName);
await updateWidgets(oldName, newName);
await updateConfig(oldName, newName);
await db.setObject('group:' + oldName, { name: newName, slug: utils.slugify(newName) });
await db.setObject('group:' + oldName, { name: newName, slug: slugify(newName) });
await db.deleteObjectField('groupslug:groupname', group.slug);
await db.setObjectField('groupslug:groupname', utils.slugify(newName), newName);
await db.setObjectField('groupslug:groupname', slugify(newName), newName);
const allGroups = await db.getSortedSetRange('groups:createtime', 0, -1);
const keys = allGroups.map(group => 'group:' + group + ':members');