feat(cards): Generate placeholders for cards without a pair

This commit is contained in:
2024-12-03 19:20:28 +01:00
parent b179541532
commit f880e9f10c
4 changed files with 51 additions and 11 deletions

View File

@@ -47,8 +47,7 @@ func GenerateCard(c *fiber.Ctx) error {
}
genConfig := &models.CardTemplateOptions{
Cards: cardRequest.Cards,
CardsSwapped: invertCardArrayItems(cardRequest.Cards),
CardSegments: splitCardSegments(cardRequest.Cards),
EventName: "Event name",
CardSubtitle: "Card subtitle",
BarcodeFormat: "ean13",
@@ -74,10 +73,38 @@ func GenerateCard(c *fiber.Ctx) error {
return c.Send(pdf)
}
func invertCardArrayItems(cards []models.Card) []models.Card {
func invertCardArrayItemPairs(cards []models.Card) []models.Card {
inverted := make([]models.Card, 0)
for i := len(cards) - 1; i >= 0; i-- {
for i := 0; i < len(cards); i += 2 {
if i+1 < len(cards) {
inverted = append(inverted, cards[i+1])
}
inverted = append(inverted, cards[i])
}
return inverted
}
func splitCardSegments(cards []models.Card) []models.CardTemplateSegment {
cardSegments := make([]models.CardTemplateSegment, 0)
const currentCards = 0
for i := 0; i < len(cards); i += 10 {
segmentLength := 10
if len(cards)-i < 10 {
segmentLength = len(cards) - i
}
segment := cards[i : i+segmentLength]
if segmentLength%2 != 0 {
segment = append(segment, models.Card{
ID: 0,
Enabled: false,
Runner: models.Runner{},
Code: "",
})
}
cardSegments = append(cardSegments, models.CardTemplateSegment{
Cards: segment,
CardsSwapped: invertCardArrayItemPairs(segment),
})
}
return cardSegments
}