Fixed members handling
This commit is contained in:
@@ -1,10 +1,14 @@
|
||||
import MemberService from "../services/memberService.js";
|
||||
|
||||
const getClubMembers = async(req, res) => {
|
||||
console.log('----->getClubMembers');
|
||||
try {
|
||||
const { authcode: userToken } = req.headers;
|
||||
const { id: clubId } = req.params;
|
||||
res.status(200).json(await MemberService.getClubMembers(userToken, clubId));
|
||||
const { id: clubId, showAll } = req.params;
|
||||
if (showAll === null) {
|
||||
showAll = false;
|
||||
}
|
||||
res.status(200).json(await MemberService.getClubMembers(userToken, clubId, showAll));
|
||||
} catch(error) {
|
||||
console.log('[getClubMembers] - Error: ', error);
|
||||
res.status(500).json({ error: 'systemerror' });
|
||||
@@ -12,6 +16,7 @@ const getClubMembers = async(req, res) => {
|
||||
}
|
||||
|
||||
const getWaitingApprovals = async(req, res) => {
|
||||
console.log('----->setClubMembers');
|
||||
try {
|
||||
console.log('[getWaitingApprovals] - Start');
|
||||
const { id: clubId } = req.params;
|
||||
@@ -29,11 +34,16 @@ const getWaitingApprovals = async(req, res) => {
|
||||
}
|
||||
|
||||
const setClubMembers = async (req, res) => {
|
||||
const { id: memberId, firstname: firstName, lastname: lastName, street, city, birthdate, phone, email, active } = 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);
|
||||
res.status(addResult.status || 500).json(addResult.response);
|
||||
try {
|
||||
const { id: memberId, firstname: firstName, lastname: lastName, street, city, birthdate, phone, email, active } = 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);
|
||||
res.status(addResult.status || 500).json(addResult.response);
|
||||
} catch (error) {
|
||||
console.error('[setClubMembers] - Error:', error);
|
||||
res.status(500).json({ error: 'Failed to upload image' });
|
||||
}
|
||||
}
|
||||
|
||||
const uploadMemberImage = async (req, res) => {
|
||||
|
||||
@@ -8,10 +8,10 @@ const router = express.Router();
|
||||
const storage = multer.memoryStorage();
|
||||
const upload = multer({ storage: storage });
|
||||
|
||||
router.post('/:clubId/image/:memberId', authenticate, upload.single('image'), uploadMemberImage);
|
||||
router.get('/:clubId/image/:memberId', authenticate, getMemberImage);
|
||||
router.get('/:id', authenticate, getClubMembers);
|
||||
router.post('/:id', authenticate, setClubMembers);
|
||||
router.post('/image/:clubId/:memberId', authenticate, upload.single('image'), uploadMemberImage);
|
||||
router.get('/image/:clubId/:memberId', authenticate, getMemberImage);
|
||||
router.get('/get/:id/:showAll', authenticate, getClubMembers);
|
||||
router.post('/set/:id', authenticate, setClubMembers);
|
||||
router.get('/notapproved/:id', authenticate, getWaitingApprovals);
|
||||
|
||||
export default router;
|
||||
|
||||
@@ -17,16 +17,22 @@ class MemberService {
|
||||
where: {
|
||||
clubId: clubId,
|
||||
approved: false,
|
||||
userId: user.id
|
||||
userId: user.id
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
getClubMembers(userToken, clubId) {
|
||||
getClubMembers(userToken, clubId, showAll) {
|
||||
console.log('[getClubMembers] - Check access');
|
||||
checkAccess(userToken, clubId);
|
||||
console.log('[getClubMembers] - Find members');
|
||||
return Member.findAll({ where: { clubId: clubId } })
|
||||
const where = {
|
||||
clubId: clubId
|
||||
};
|
||||
if (!showAll) {
|
||||
where.active = true;
|
||||
}
|
||||
return Member.findAll({ where })
|
||||
.then(members => {
|
||||
return members.map(member => {
|
||||
const imagePath = path.join('images', 'members', `${member.id}.jpg`);
|
||||
@@ -66,7 +72,7 @@ class MemberService {
|
||||
member.birthDate = birthdate;
|
||||
member.phone = phone;
|
||||
member.email = email;
|
||||
member.active = active; // Active status setzen
|
||||
member.active = active;
|
||||
await member.save();
|
||||
} else {
|
||||
await Member.create({
|
||||
@@ -78,15 +84,13 @@ class MemberService {
|
||||
phone: phone,
|
||||
email: email,
|
||||
clubId: clubId,
|
||||
active: active // Active status setzen
|
||||
active: active
|
||||
});
|
||||
}
|
||||
console.log('[setClubMembers] - load club members');
|
||||
const members = await this.getClubMembers(userToken, clubId);
|
||||
console.log('[setClubMembers] - return response');
|
||||
return {
|
||||
status: 200,
|
||||
response: members,
|
||||
response: { result: "success" },
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
|
||||
@@ -35,10 +35,15 @@ export const hasUserClubAccess = async(userId, clubId) => {
|
||||
}
|
||||
|
||||
export const checkAccess = async(userToken, clubId) => {
|
||||
const user = await getUserByToken(userToken);
|
||||
if (!await hasUserClubAccess(user.id, clubId)) {
|
||||
console.log('no club access');
|
||||
const err = new HttpError('noaccess', 403);
|
||||
throw err;
|
||||
try {
|
||||
const user = await getUserByToken(userToken);
|
||||
if (!await hasUserClubAccess(user.id, clubId)) {
|
||||
console.log('no club access');
|
||||
const err = new HttpError('noaccess', 403);
|
||||
throw err;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user