Refactor memberController and memberService to include memberFormHandedOver field and improve parameter handling

Updated memberController to handle the showAll parameter more effectively and added memberFormHandedOver to the setClubMember method in memberService. Enhanced Member model to include memberFormHandedOver field with appropriate defaults. Updated MembersView to reflect changes in the UI, allowing for better member data management and visibility.
This commit is contained in:
Torsten Schulz (local)
2025-11-03 12:36:13 +01:00
parent 84ff4e126e
commit 76ee9ee742
4 changed files with 25 additions and 16 deletions

View File

@@ -4,10 +4,8 @@ import { devLog } from '../utils/logger.js';
const getClubMembers = async(req, res) => {
try {
const { authcode: userToken } = req.headers;
const { id: clubId, showAll } = req.params;
if (showAll === null) {
showAll = false;
}
const { id: clubId } = req.params;
const showAll = req.params.showAll ?? 'false';
res.status(200).json(await MemberService.getClubMembers(userToken, clubId, showAll));
} catch(error) {
res.status(500).json({ error: 'systemerror' });
@@ -27,12 +25,12 @@ const getWaitingApprovals = async(req, res) => {
const setClubMembers = async (req, res) => {
try {
const { id: memberId, firstname: firstName, lastname: lastName, street, city, birthdate, phone, email, active,
testMembership, picsInInternetAllowed, gender, ttr, qttr } = req.body;
const { id: memberId, firstname: firstName, lastname: lastName, street, city, birthdate, phone, email, active,
testMembership, picsInInternetAllowed, gender, ttr, qttr, memberFormHandedOver } = req.body;
const { id: clubId } = req.params;
const { authcode: userToken } = req.headers;
const addResult = await MemberService.setClubMember(userToken, clubId, memberId, firstName, lastName, street, city, birthdate,
phone, email, active, testMembership, picsInInternetAllowed, gender, ttr, qttr);
phone, email, active, testMembership, picsInInternetAllowed, gender, ttr, qttr, memberFormHandedOver);
res.status(addResult.status || 500).json(addResult.response);
} catch (error) {
console.error('[setClubMembers] - Error:', error);

View File

@@ -138,6 +138,13 @@ const Member = sequelize.define('Member', {
allowNull: true,
defaultValue: null
},
memberFormHandedOver: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: false,
field: 'member_form_handed_over',
comment: 'Mitgliedsformular ausgehändigt'
},
myTischtennisPlayerId: {
type: DataTypes.STRING,
allowNull: true,
@@ -157,13 +164,7 @@ const Member = sequelize.define('Member', {
member.save();
},
}
},
{
underscored: true,
tableName: 'log',
timestamps: true
}
);
});
Member.belongsTo(Club, { as: 'club' });
Club.hasMany(Member, { as: 'members' });

View File

@@ -48,7 +48,7 @@ class MemberService {
}
async setClubMember(userToken, clubId, memberId, firstName, lastName, street, city, birthdate, phone, email, active = true, testMembership = false,
picsInInternetAllowed = false, gender = 'unknown', ttr = null, qttr = null) {
picsInInternetAllowed = false, gender = 'unknown', ttr = null, qttr = null, memberFormHandedOver = false) {
try {
await checkAccess(userToken, clubId);
let member = null;
@@ -69,6 +69,7 @@ class MemberService {
if (gender) member.gender = gender;
if (ttr !== undefined) member.ttr = ttr;
if (qttr !== undefined) member.qttr = qttr;
member.memberFormHandedOver = !!memberFormHandedOver;
await member.save();
} else {
await Member.create({
@@ -86,6 +87,7 @@ class MemberService {
gender: gender || 'unknown',
ttr: ttr,
qttr: qttr,
memberFormHandedOver: !!memberFormHandedOver,
});
}
return {