42 lines
749 B
Go
42 lines
749 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"time"
|
||
|
|
||
|
"git.xeserv.us/xena/route/internal/database"
|
||
|
)
|
||
|
|
||
|
type ctxKey int
|
||
|
|
||
|
const (
|
||
|
startTimeKey ctxKey = iota
|
||
|
tokenKey
|
||
|
)
|
||
|
|
||
|
func withStartTime(ctx context.Context) context.Context {
|
||
|
return context.WithValue(ctx, startTimeKey, time.Now())
|
||
|
}
|
||
|
|
||
|
func getStartTime(ctx context.Context) (time.Time, bool) {
|
||
|
t, ok := ctx.Value(startTimeKey).(time.Time)
|
||
|
if !ok {
|
||
|
return time.Time{}, false
|
||
|
}
|
||
|
|
||
|
return t, true
|
||
|
}
|
||
|
|
||
|
func withAuthToken(ctx context.Context, token database.Token) context.Context {
|
||
|
return context.WithValue(ctx, tokenKey, token)
|
||
|
}
|
||
|
|
||
|
func getAuthToken(ctx context.Context) (database.Token, bool) {
|
||
|
t, ok := ctx.Value(tokenKey).(database.Token)
|
||
|
if !ok {
|
||
|
return database.Token{}, false
|
||
|
}
|
||
|
|
||
|
return t, true
|
||
|
}
|