Enhance member gallery generation to support JSON format without image creation
This commit updates the member gallery generation functionality to allow returning a list of members in JSON format without creating images. The `generateMemberGallery` method in the MemberService is modified to accept a new parameter, `createImage`, which determines whether images should be generated. This change improves the flexibility of the API for different use cases.
This commit is contained in:
@@ -131,10 +131,14 @@ const generateMemberGallery = async (req, res) => {
|
||||
const { authcode: userToken } = req.headers;
|
||||
const size = parseInt(req.query.size) || 200; // Default: 200x200
|
||||
const format = req.query.format || 'image'; // 'image' or 'json'
|
||||
const result = await MemberService.generateMemberGallery(userToken, clubId, size);
|
||||
|
||||
// Bei format=json wird kein Bild erstellt, nur die Mitgliederliste zurückgegeben
|
||||
const createImage = format !== 'json';
|
||||
const result = await MemberService.generateMemberGallery(userToken, clubId, size, createImage);
|
||||
|
||||
if (result.status === 200) {
|
||||
if (format === 'json') {
|
||||
// Return member information for interactive gallery
|
||||
// Return member information for interactive gallery (ohne Bild zu erstellen)
|
||||
return res.status(200).json({
|
||||
members: result.galleryEntries.map(entry => ({
|
||||
memberId: entry.memberId,
|
||||
|
||||
@@ -1086,7 +1086,7 @@ class MemberService {
|
||||
}
|
||||
}
|
||||
|
||||
async generateMemberGallery(userToken, clubId, size = 200) {
|
||||
async generateMemberGallery(userToken, clubId, size = 200, createImage = true) {
|
||||
try {
|
||||
await checkAccess(userToken, clubId);
|
||||
|
||||
@@ -1153,6 +1153,15 @@ class MemberService {
|
||||
error: 'Keine aktiven Mitglieder mit Bildern gefunden'
|
||||
};
|
||||
}
|
||||
|
||||
// Wenn kein Bild erstellt werden soll (z.B. bei format=json), nur die Liste zurückgeben
|
||||
if (!createImage) {
|
||||
return {
|
||||
status: 200,
|
||||
galleryEntries
|
||||
};
|
||||
}
|
||||
|
||||
// Maximale Breite für die Galerie (Dialog-Breite 900px - 32px Padding = 868px)
|
||||
const maxGalleryWidth = 868;
|
||||
// Berechne maximale Anzahl Spalten, die in die Breite passen
|
||||
|
||||
Reference in New Issue
Block a user