nf/ctx.go

50 lines
817 B
Go
Raw Normal View History

2024-01-10 20:26:19 +08:00
package nf
import (
"errors"
"net/http"
)
type Ctx struct {
app *App
Response http.ResponseWriter
Request *http.Request
Path string
Method string
Params map[string]string
StatusCode int
}
func newCtx(a *App, w http.ResponseWriter, req *http.Request) *Ctx {
return &Ctx{
app: a,
Response: w,
Request: req,
Path: req.URL.Path,
Method: req.Method,
}
}
func (c *Ctx) Param(key string) string {
value, _ := c.Params[key]
return value
}
func (c *Ctx) Status(status int) *Ctx {
if c.StatusCode != 0 {
c.app.logger.Warn()
}
c.StatusCode = status
return c
}
func (c *Ctx) SendStatus(status int) error {
panic("impl this")
}
func (c *Ctx) SendString(value string) error {
_, err := c.Response.Write([]byte(value))
_ = err
return errors.New(value)
}