server/pkg/modules/user/user-handler.go

42 lines
1.0 KiB
Go
Raw Normal View History

2019-11-11 15:00:04 +00:00
package user
import (
"fmt"
"reflect"
"github.com/valyala/fasthttp"
cda "git.loafle.net/commons/di-go/annotation"
cdr "git.loafle.net/commons/di-go/registry"
// For annotation
_ "git.loafle.net/totopia/server/pkg/loafer/web/annotation"
)
var UserHandlerType = reflect.TypeOf((*UserHandler)(nil))
func init() {
cdr.RegisterType(UserHandlerType)
}
type UserHandler struct {
cda.TypeAnnotation `annotation:"@web:RestHandler(\"entry\": \"/users\")"`
_List cda.MethodAnnotation `annotation:"@web:RequestMapping(\"method\": \"GET\", \"params\": [])"`
_Detail cda.MethodAnnotation `annotation:"@web:RequestMapping(\"method\": \"GET\", \"entry\": \"/:id\", \"params\"=[\"userId\"])"`
UserService *UserService `annotation:"@Inject()"`
}
func (us *UserHandler) List(ctx *fasthttp.RequestCtx) error {
fmt.Fprintf(ctx, "hello, %s!\n", ctx.UserValue("name"))
return nil
}
func (us *UserHandler) Detail(ctx *fasthttp.RequestCtx, userId string) error {
fmt.Fprintf(ctx, "hello, %s!\n", ctx.UserValue("name"))
return nil
}