26 lines
777 B
Go
26 lines
777 B
Go
package events
|
|
|
|
// v0.32.0: TicketValidatorAdapter bridges the context-aware store.TicketStore
|
|
// to the middleware.TicketValidator interface (which has no context parameter).
|
|
// Replaces the in-memory TicketStore that lived in this file previously.
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"chat-switchboard/store"
|
|
)
|
|
|
|
// TicketValidatorAdapter satisfies middleware.TicketValidator using a
|
|
// store.TicketStore backend (PG or SQLite).
|
|
type TicketValidatorAdapter struct {
|
|
Store store.TicketStore
|
|
}
|
|
|
|
// Validate atomically consumes a ticket. Satisfies middleware.TicketValidator.
|
|
func (a *TicketValidatorAdapter) Validate(ticketID string) (string, bool) {
|
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
|
defer cancel()
|
|
return a.Store.Validate(ctx, ticketID)
|
|
}
|