package http import ( "fmt" "github.com/gin-gonic/gin" "github.com/google/uuid" ) func getUUID(c *gin.Context, name string) (uuid.UUID, error) { value, succ := c.GetPostForm(name) if !succ { return uuid.UUID{}, fmt.Errorf("not set") } id, err := uuid.Parse(value) if err != nil { return uuid.UUID{}, fmt.Errorf("not a valid uuid: %w", err) } return id, nil } func getNullUUIDFromParam(c *gin.Context, name string) (uuid.NullUUID, error) { value := c.Param(name) if value == "" { return uuid.NullUUID{}, nil } id, err := uuid.Parse(value) if err != nil { return uuid.NullUUID{}, fmt.Errorf("not a valid uuid: %w", err) } return uuid.NullUUID{ UUID: id, Valid: true, }, nil } func getNullUUIDFromForm(c *gin.Context, name string) (uuid.NullUUID, error) { value, succ := c.GetPostForm(name) if !succ || value == "" { return uuid.NullUUID{}, nil } id, err := uuid.Parse(value) if err != nil { return uuid.NullUUID{}, fmt.Errorf("not a valid uuid: %w", err) } return uuid.NullUUID{ UUID: id, Valid: true, }, nil }