From 1d66f95397aeb16139156c0f01f006ae4200260e Mon Sep 17 00:00:00 2001 From: rogeecn Date: Sat, 22 Mar 2025 19:42:43 +0800 Subject: [PATCH] feat: update module --- app/http/.gitkeep | 0 app/http/.help.md | 0 app/http/{ => admin}/medias.go | 4 +-- app/http/admin/provider.gen.go | 48 ++++++++++++++++++++++++++++++ app/http/admin/routes.gen.go | 52 +++++++++++++++++++++++++++++++++ app/http/{ => admin}/uploads.go | 6 ++-- app/http/posts.go | 14 +++++---- app/http/provider.gen.go | 23 +++------------ app/http/provider.manual.go | 14 +++++++++ app/http/routes.gen.go | 28 ++++++------------ app/models/provider.gen.go | 15 ++++++++++ 11 files changed, 156 insertions(+), 48 deletions(-) delete mode 100644 app/http/.gitkeep delete mode 100644 app/http/.help.md rename app/http/{ => admin}/medias.go (86%) create mode 100755 app/http/admin/provider.gen.go create mode 100644 app/http/admin/routes.gen.go rename app/http/{ => admin}/uploads.go (95%) create mode 100755 app/http/provider.manual.go diff --git a/app/http/.gitkeep b/app/http/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/app/http/.help.md b/app/http/.help.md deleted file mode 100644 index e69de29..0000000 diff --git a/app/http/medias.go b/app/http/admin/medias.go similarity index 86% rename from app/http/medias.go rename to app/http/admin/medias.go index e19487e..cc66d26 100644 --- a/app/http/medias.go +++ b/app/http/admin/medias.go @@ -1,4 +1,4 @@ -package http +package admin import ( "quyun/app/models" @@ -11,7 +11,7 @@ import ( type medias struct{} // List medias -// @Router /v1/medias [get] +// @Router /v1/admin/medias [get] // @Bind pagination query func (ctl *medias) List(ctx fiber.Ctx, pagination *requests.Pagination) (*requests.Pager, error) { return models.Medias.List(ctx.Context(), pagination) diff --git a/app/http/admin/provider.gen.go b/app/http/admin/provider.gen.go new file mode 100755 index 0000000..68dd8f5 --- /dev/null +++ b/app/http/admin/provider.gen.go @@ -0,0 +1,48 @@ +package admin + +import ( + "quyun/providers/app" + + "go.ipao.vip/atom" + "go.ipao.vip/atom/container" + "go.ipao.vip/atom/contracts" + "go.ipao.vip/atom/opt" +) + +func Provide(opts ...opt.Option) error { + if err := container.Container.Provide(func() (*medias, error) { + obj := &medias{} + + return obj, nil + }); err != nil { + return err + } + if err := container.Container.Provide(func( + medias *medias, + uploads *uploads, + ) (contracts.HttpRoute, error) { + obj := &Routes{ + medias: medias, + uploads: uploads, + } + if err := obj.Prepare(); err != nil { + return nil, err + } + + return obj, nil + }, atom.GroupRoutes); err != nil { + return err + } + if err := container.Container.Provide(func( + app *app.Config, + ) (*uploads, error) { + obj := &uploads{ + app: app, + } + + return obj, nil + }); err != nil { + return err + } + return nil +} diff --git a/app/http/admin/routes.gen.go b/app/http/admin/routes.gen.go new file mode 100644 index 0000000..5dc9886 --- /dev/null +++ b/app/http/admin/routes.gen.go @@ -0,0 +1,52 @@ +// Code generated by the atomctl ; DO NOT EDIT. + +package admin + +import ( + "github.com/gofiber/fiber/v3" + log "github.com/sirupsen/logrus" + _ "go.ipao.vip/atom" + _ "go.ipao.vip/atom/contracts" + . "go.ipao.vip/atom/fen" + "mime/multipart" + "quyun/app/requests" +) + +// @provider contracts.HttpRoute atom.GroupRoutes +type Routes struct { + log *log.Entry `inject:"false"` + medias *medias + uploads *uploads +} + +func (r *Routes) Prepare() error { + r.log = log.WithField("module", "routes.admin") + return nil +} + +func (r *Routes) Name() string { + return "admin" +} + +func (r *Routes) Register(router fiber.Router) { + // 注册路由组: medias + router.Get("/v1/admin/medias", DataFunc1( + r.medias.List, + Query[requests.Pagination]("pagination"), + )) + + // 注册路由组: uploads + router.Post("/v1/admin/uploads/:md5/chunks/:idx", Func3( + r.uploads.Chunks, + PathParam[string]("md5"), + PathParam[string]("idx"), + File[multipart.FileHeader]("file"), + )) + + router.Post("/v1/admin/uploads/:md5/complete", Func2( + r.uploads.Complete, + PathParam[string]("md5"), + Body[UploadFileInfo]("body"), + )) + +} diff --git a/app/http/uploads.go b/app/http/admin/uploads.go similarity index 95% rename from app/http/uploads.go rename to app/http/admin/uploads.go index e87d9f5..dc099f6 100644 --- a/app/http/uploads.go +++ b/app/http/admin/uploads.go @@ -1,4 +1,4 @@ -package http +package admin import ( "errors" @@ -39,7 +39,7 @@ type UploadFileInfo struct { } // Upload chunks -// @Router /v1/uploads/:md5/chunks/:idx [post] +// @Router /v1/admin/uploads/:md5/chunks/:idx [post] // @Bind md5 path // @Bind idx path // @Bind file file @@ -63,7 +63,7 @@ func (up *uploads) Chunks(ctx fiber.Ctx, md5, idx string, file *multipart.FileHe } // Complete uploads -// @Router /v1/uploads/:md5/complete [post] +// @Router /v1/admin/uploads/:md5/complete [post] // @Bind md5 path // @Bind body body func (up *uploads) Complete(ctx fiber.Ctx, md5 string, body *UploadFileInfo) error { diff --git a/app/http/posts.go b/app/http/posts.go index 177e39b..61e2ef5 100644 --- a/app/http/posts.go +++ b/app/http/posts.go @@ -8,20 +8,24 @@ import ( "github.com/gofiber/fiber/v3" ) +type ListQuery struct { + Key *string `query:"key"` +} + // @provider type posts struct{} // List posts -// @Router /v1/medias [get] +// @Router /v1/posts [get] // @Bind pagination query -// @bind key query -func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, key *string) (*requests.Pager, error) { - cond := models.Posts.BuildConditionWithKey(key) +// @Bind query query +func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery) (*requests.Pager, error) { + cond := models.Posts.BuildConditionWithKey(query.Key) return models.Posts.List(ctx.Context(), pagination, cond) } // Show -// @Router /v1/medias/:id [get] +// @Router /v1/posts/:id [get] // @Bind id path func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*model.Posts, error) { return models.Posts.GetByID(ctx.Context(), id) diff --git a/app/http/provider.gen.go b/app/http/provider.gen.go index 29423dd..fd34a14 100755 --- a/app/http/provider.gen.go +++ b/app/http/provider.gen.go @@ -1,8 +1,6 @@ package http import ( - "quyun/providers/app" - "go.ipao.vip/atom" "go.ipao.vip/atom/container" "go.ipao.vip/atom/contracts" @@ -10,20 +8,18 @@ import ( ) func Provide(opts ...opt.Option) error { - if err := container.Container.Provide(func() (*medias, error) { - obj := &medias{} + if err := container.Container.Provide(func() (*posts, error) { + obj := &posts{} return obj, nil }); err != nil { return err } if err := container.Container.Provide(func( - medias *medias, - uploads *uploads, + posts *posts, ) (contracts.HttpRoute, error) { obj := &Routes{ - medias: medias, - uploads: uploads, + posts: posts, } if err := obj.Prepare(); err != nil { return nil, err @@ -33,16 +29,5 @@ func Provide(opts ...opt.Option) error { }, atom.GroupRoutes); err != nil { return err } - if err := container.Container.Provide(func( - app *app.Config, - ) (*uploads, error) { - obj := &uploads{ - app: app, - } - - return obj, nil - }); err != nil { - return err - } return nil } diff --git a/app/http/provider.manual.go b/app/http/provider.manual.go new file mode 100755 index 0000000..5f31ae1 --- /dev/null +++ b/app/http/provider.manual.go @@ -0,0 +1,14 @@ +package http + +import ( + "quyun/app/http/admin" + + "go.ipao.vip/atom/container" +) + +func Providers() []container.ProviderContainer { + return []container.ProviderContainer{ + {Provider: Provide}, + {Provider: admin.Provide}, + } +} diff --git a/app/http/routes.gen.go b/app/http/routes.gen.go index 8a13341..ef212be 100644 --- a/app/http/routes.gen.go +++ b/app/http/routes.gen.go @@ -8,15 +8,13 @@ import ( _ "go.ipao.vip/atom" _ "go.ipao.vip/atom/contracts" . "go.ipao.vip/atom/fen" - "mime/multipart" "quyun/app/requests" ) // @provider contracts.HttpRoute atom.GroupRoutes type Routes struct { - log *log.Entry `inject:"false"` - medias *medias - uploads *uploads + log *log.Entry `inject:"false"` + posts *posts } func (r *Routes) Prepare() error { @@ -29,24 +27,16 @@ func (r *Routes) Name() string { } func (r *Routes) Register(router fiber.Router) { - // 注册路由组: medias - router.Get("/v1/medias", DataFunc1( - r.medias.List, + // 注册路由组: posts + router.Get("/v1/posts", DataFunc2( + r.posts.List, Query[requests.Pagination]("pagination"), + Query[ListQuery]("query"), )) - // 注册路由组: uploads - router.Post("/v1/uploads/:md5/chunks/:idx", Func3( - r.uploads.Chunks, - PathParam[string]("md5"), - PathParam[string]("idx"), - File[multipart.FileHeader]("file"), - )) - - router.Post("/v1/uploads/:md5/complete", Func2( - r.uploads.Complete, - PathParam[string]("md5"), - Body[UploadFileInfo]("body"), + router.Get("/v1/posts/:id", DataFunc1( + r.posts.Show, + PathParam[int64]("id"), )) } diff --git a/app/models/provider.gen.go b/app/models/provider.gen.go index 267f8b3..4e7e7ed 100755 --- a/app/models/provider.gen.go +++ b/app/models/provider.gen.go @@ -24,11 +24,13 @@ func Provide(opts ...opt.Option) error { db *sql.DB, medias *mediasModel, posts *postsModel, + users *usersModel, ) (contracts.Initial, error) { obj := &models{ db: db, medias: medias, posts: posts, + users: users, } if err := obj.Prepare(); err != nil { return nil, err @@ -40,6 +42,19 @@ func Provide(opts ...opt.Option) error { } if err := container.Container.Provide(func() (*postsModel, error) { obj := &postsModel{} + if err := obj.Prepare(); err != nil { + return nil, err + } + + return obj, nil + }); err != nil { + return err + } + if err := container.Container.Provide(func() (*usersModel, error) { + obj := &usersModel{} + if err := obj.Prepare(); err != nil { + return nil, err + } return obj, nil }); err != nil {