Add Currency and DisplayName to card handlers

This commit is contained in:
qowevisa 2024-11-24 00:27:02 +02:00
parent 4fc2b5f5bd
commit 4db167085a

View File

@ -1,12 +1,22 @@
package handlers package handlers
import ( import (
"fmt"
"strconv"
"git.qowevisa.me/Qowevisa/fin-check-api/db" "git.qowevisa.me/Qowevisa/fin-check-api/db"
"git.qowevisa.me/Qowevisa/fin-check-api/types" "git.qowevisa.me/Qowevisa/fin-check-api/types"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"gorm.io/gorm"
) )
var cardTransform func(inp *db.Card) types.DbCard = func(inp *db.Card) types.DbCard { var cardTransform func(inp *db.Card) types.DbCard = func(inp *db.Card) types.DbCard {
var curr types.DbCurrency
if inp.Currency != nil {
curr = currencyTransform(inp.Currency)
} else {
curr = types.DbCurrency{}
}
return types.DbCard{ return types.DbCard{
ID: inp.ID, ID: inp.ID,
Name: inp.Name, Name: inp.Name,
@ -15,6 +25,8 @@ var cardTransform func(inp *db.Card) types.DbCard = func(inp *db.Card) types.DbC
CreditLine: inp.CreditLine, CreditLine: inp.CreditLine,
LastDigits: inp.LastDigits, LastDigits: inp.LastDigits,
CurrencyID: inp.CurrencyID, CurrencyID: inp.CurrencyID,
Currency: curr,
DisplayName: fmt.Sprintf("%s •%s", inp.Name, inp.LastDigits),
} }
} }
@ -51,9 +63,20 @@ func CardGetAll(c *gin.Context) {
c.JSON(500, types.ErrorResponse{Message: err.Error()}) c.JSON(500, types.ErrorResponse{Message: err.Error()})
return return
} }
preloadCurrencies := c.DefaultQuery("preload_currencies", "false")
shouldPreloadCurrencies := false
if val, err := strconv.ParseBool(preloadCurrencies); err == nil {
shouldPreloadCurrencies = val
}
dbc := db.Connect() dbc := db.Connect()
var entities []*db.Card var entities []*db.Card
if err := dbc.Find(&entities, db.Card{UserID: userID}).Error; err != nil { var tx *gorm.DB
if shouldPreloadCurrencies {
tx = dbc.Preload("Currency")
} else {
tx = dbc
}
if err := tx.Find(&entities, db.Card{UserID: userID}).Error; err != nil {
c.JSON(500, types.ErrorResponse{Message: err.Error()}) c.JSON(500, types.ErrorResponse{Message: err.Error()})
return return
} }