add: context

This commit is contained in:
Young Xu 2023-03-12 21:44:19 +08:00
parent df0109ac61
commit 0dd59eb0e9
Signed by: xuthus5
GPG Key ID: A23CF9620CBB55F9
2 changed files with 54 additions and 0 deletions

26
core/context.go Normal file
View File

@ -0,0 +1,26 @@
package core
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http/httptest"
)
type Context struct {
*gin.Context
}
// SetBinaryFile 设置请求为文件下载
func (c *Context) SetBinaryFile(filename string, data []byte) {
c.Writer.Header().Set("Content-Type", "application/octet-stream")
c.Writer.Header().Set("Content-Transfer-Encoding", "binary")
c.Writer.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", filename))
_, _ = c.Writer.Write(data)
}
// NewMockContext 新建一个模拟 core.Context
func NewMockContext() *Context {
r := httptest.NewRecorder()
g, _ := gin.CreateTestContext(r)
return &Context{Context: g}
}

28
go.mod
View File

@ -1,3 +1,31 @@
module gitter.top/coco/coco
go 1.19
require github.com/gin-gonic/gin v1.9.0
require (
github.com/bytedance/sonic v1.8.0 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.11.2 // indirect
github.com/goccy/go-json v0.10.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.0.9 // indirect
github.com/leodido/go-urn v1.2.1 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.0.6 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.9 // indirect
golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect
golang.org/x/crypto v0.5.0 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)