refactor: rename api.Ctx to api.Context, extends context.Context with helper methods

This commit is contained in:
Adrien Marquès 2021-06-20 00:46:42 +02:00
parent fa1ecfd97f
commit ed404106f2
Signed by: xdrm-brackets
GPG Key ID: D75243CA236D825E
1 changed files with 15 additions and 9 deletions

View File

@ -3,14 +3,8 @@ package api
import ( import (
"context" "context"
"net/http" "net/http"
)
// custom context key type "git.xdrm.io/go/aicra/internal/ctx"
type ctxKey int
const (
ctxRequest ctxKey = iota
ctxAuth
) )
// Context is a simple wrapper around context.Context that adds helper methods // Context is a simple wrapper around context.Context that adds helper methods
@ -20,7 +14,7 @@ type Context struct{ context.Context }
// Request current request // Request current request
func (c Context) Request() *http.Request { func (c Context) Request() *http.Request {
var ( var (
raw = c.Value(ctxRequest) raw = c.Value(ctx.Request)
cast, ok = raw.(*http.Request) cast, ok = raw.(*http.Request)
) )
if !ok { if !ok {
@ -29,10 +23,22 @@ func (c Context) Request() *http.Request {
return cast return cast
} }
// ResponseWriter for this request
func (c Context) ResponseWriter() http.ResponseWriter {
var (
raw = c.Value(ctx.Response)
cast, ok = raw.(http.ResponseWriter)
)
if !ok {
return nil
}
return cast
}
// Auth associated with this request // Auth associated with this request
func (c Context) Auth() *Auth { func (c Context) Auth() *Auth {
var ( var (
raw = c.Value(ctxAuth) raw = c.Value(ctx.Auth)
cast, ok = raw.(*Auth) cast, ok = raw.(*Auth)
) )
if !ok { if !ok {