Timestamp struct used in models.go seems incoherent with the used date format
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 35/100
Línea de trabajo
Lee getstream-go/models.go y getstream/rfc3339.go, empezando por los métodos Timestamp MarshalJSON y UnmarshalJSON. Compara su entrada esperada con el formato de timestamp mostrado en el issue y verifica el comportamiento con un payload de evento representativo. Se considera completado cuando las fechas de los eventos puedan deserializarse de forma coherente con el formato documentado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi guys, I’m implementing a webhook handler that listens to GetStream Call events. To ease events payload unmarshaling, I’m trying to use the events structs in getstream-go/models.go. But it seems that the date type Timestamp is not coherent with the date format sent by Getstream in the events payloads.
type Timestamp struct {
Time *time.Time
}
func (t Timestamp) MarshalJSON() ([]byte, error) {
return json.Marshal(t.Time)
}
func (t *Timestamp) UnmarshalJSON(data []byte) error {
strData := string(data)
if strData == "null" {
return nil
}
ns, err := strconv.ParseInt(strData, 10, 64)
if err != nil {
return fmt.Errorf("failed to parse timestamp: %w", err)
}
utcT := time.Unix(0, ns).UTC()
t.Time = &utcT
return nil
}
With this implementation from getstream/rfc3339.go, the date format should be something like « 1739803521 » but the GetStream events payload contains the dates in that format: « 2025-02-13T16:45:22.746736895Z ».
So the UnmarshalJSON method can’t be used right away.
Is it the expected behavior?
- Lenguaje dominante
- Go
- Estrellas
- 8
- Forks
- 3
- Merge medio
- 29 min
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de GetStream/getstream-go
-
Daily integration run is redAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
GetStream/getstream-go#172 · 12 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
GetStream/getstream-go#25 ·
Los mantenedores suelen responder en 1 día
Todos los issues de GetStream/getstream-go
Issues similares
-
book-layout.spec fails when the similar-books rail holds other projects' booksPosiblemente ocupada @praetorianer777 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
praetorianer777/GoTome#373 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
-
/shutdown/ready can fail to return an HTTP response when readiness takes longer than the server write timeoutPosiblemente ocupada @floriankoch la tomó hoy. Abiertotriage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
envoyproxy/gateway#10562 ·
Los mantenedores suelen responder en 1 día
-
Adding an LDAP group reports every search failure as "LDAP Group DN is not found"Posiblemente ocupada @Daksha1611 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día