feat(cards): Generate placeholders for cards without a pair
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user