feat: update module
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
package http
|
package admin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"quyun/app/models"
|
"quyun/app/models"
|
||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
type medias struct{}
|
type medias struct{}
|
||||||
|
|
||||||
// List medias
|
// List medias
|
||||||
// @Router /v1/medias [get]
|
// @Router /v1/admin/medias [get]
|
||||||
// @Bind pagination query
|
// @Bind pagination query
|
||||||
func (ctl *medias) List(ctx fiber.Ctx, pagination *requests.Pagination) (*requests.Pager, error) {
|
func (ctl *medias) List(ctx fiber.Ctx, pagination *requests.Pagination) (*requests.Pager, error) {
|
||||||
return models.Medias.List(ctx.Context(), pagination)
|
return models.Medias.List(ctx.Context(), pagination)
|
||||||
48
app/http/admin/provider.gen.go
Executable file
48
app/http/admin/provider.gen.go
Executable file
@@ -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
|
||||||
|
}
|
||||||
52
app/http/admin/routes.gen.go
Normal file
52
app/http/admin/routes.gen.go
Normal file
@@ -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"),
|
||||||
|
))
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package http
|
package admin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
@@ -39,7 +39,7 @@ type UploadFileInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Upload chunks
|
// Upload chunks
|
||||||
// @Router /v1/uploads/:md5/chunks/:idx [post]
|
// @Router /v1/admin/uploads/:md5/chunks/:idx [post]
|
||||||
// @Bind md5 path
|
// @Bind md5 path
|
||||||
// @Bind idx path
|
// @Bind idx path
|
||||||
// @Bind file file
|
// @Bind file file
|
||||||
@@ -63,7 +63,7 @@ func (up *uploads) Chunks(ctx fiber.Ctx, md5, idx string, file *multipart.FileHe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Complete uploads
|
// Complete uploads
|
||||||
// @Router /v1/uploads/:md5/complete [post]
|
// @Router /v1/admin/uploads/:md5/complete [post]
|
||||||
// @Bind md5 path
|
// @Bind md5 path
|
||||||
// @Bind body body
|
// @Bind body body
|
||||||
func (up *uploads) Complete(ctx fiber.Ctx, md5 string, body *UploadFileInfo) error {
|
func (up *uploads) Complete(ctx fiber.Ctx, md5 string, body *UploadFileInfo) error {
|
||||||
@@ -8,20 +8,24 @@ import (
|
|||||||
"github.com/gofiber/fiber/v3"
|
"github.com/gofiber/fiber/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type ListQuery struct {
|
||||||
|
Key *string `query:"key"`
|
||||||
|
}
|
||||||
|
|
||||||
// @provider
|
// @provider
|
||||||
type posts struct{}
|
type posts struct{}
|
||||||
|
|
||||||
// List posts
|
// List posts
|
||||||
// @Router /v1/medias [get]
|
// @Router /v1/posts [get]
|
||||||
// @Bind pagination query
|
// @Bind pagination query
|
||||||
// @bind key query
|
// @Bind query query
|
||||||
func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, key *string) (*requests.Pager, error) {
|
func (ctl *posts) List(ctx fiber.Ctx, pagination *requests.Pagination, query *ListQuery) (*requests.Pager, error) {
|
||||||
cond := models.Posts.BuildConditionWithKey(key)
|
cond := models.Posts.BuildConditionWithKey(query.Key)
|
||||||
return models.Posts.List(ctx.Context(), pagination, cond)
|
return models.Posts.List(ctx.Context(), pagination, cond)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show
|
// Show
|
||||||
// @Router /v1/medias/:id [get]
|
// @Router /v1/posts/:id [get]
|
||||||
// @Bind id path
|
// @Bind id path
|
||||||
func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*model.Posts, error) {
|
func (ctl *posts) Show(ctx fiber.Ctx, id int64) (*model.Posts, error) {
|
||||||
return models.Posts.GetByID(ctx.Context(), id)
|
return models.Posts.GetByID(ctx.Context(), id)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package http
|
package http
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"quyun/providers/app"
|
|
||||||
|
|
||||||
"go.ipao.vip/atom"
|
"go.ipao.vip/atom"
|
||||||
"go.ipao.vip/atom/container"
|
"go.ipao.vip/atom/container"
|
||||||
"go.ipao.vip/atom/contracts"
|
"go.ipao.vip/atom/contracts"
|
||||||
@@ -10,20 +8,18 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Provide(opts ...opt.Option) error {
|
func Provide(opts ...opt.Option) error {
|
||||||
if err := container.Container.Provide(func() (*medias, error) {
|
if err := container.Container.Provide(func() (*posts, error) {
|
||||||
obj := &medias{}
|
obj := &posts{}
|
||||||
|
|
||||||
return obj, nil
|
return obj, nil
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := container.Container.Provide(func(
|
if err := container.Container.Provide(func(
|
||||||
medias *medias,
|
posts *posts,
|
||||||
uploads *uploads,
|
|
||||||
) (contracts.HttpRoute, error) {
|
) (contracts.HttpRoute, error) {
|
||||||
obj := &Routes{
|
obj := &Routes{
|
||||||
medias: medias,
|
posts: posts,
|
||||||
uploads: uploads,
|
|
||||||
}
|
}
|
||||||
if err := obj.Prepare(); err != nil {
|
if err := obj.Prepare(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -33,16 +29,5 @@ func Provide(opts ...opt.Option) error {
|
|||||||
}, atom.GroupRoutes); err != nil {
|
}, atom.GroupRoutes); err != nil {
|
||||||
return err
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
14
app/http/provider.manual.go
Executable file
14
app/http/provider.manual.go
Executable file
@@ -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},
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,15 +8,13 @@ import (
|
|||||||
_ "go.ipao.vip/atom"
|
_ "go.ipao.vip/atom"
|
||||||
_ "go.ipao.vip/atom/contracts"
|
_ "go.ipao.vip/atom/contracts"
|
||||||
. "go.ipao.vip/atom/fen"
|
. "go.ipao.vip/atom/fen"
|
||||||
"mime/multipart"
|
|
||||||
"quyun/app/requests"
|
"quyun/app/requests"
|
||||||
)
|
)
|
||||||
|
|
||||||
// @provider contracts.HttpRoute atom.GroupRoutes
|
// @provider contracts.HttpRoute atom.GroupRoutes
|
||||||
type Routes struct {
|
type Routes struct {
|
||||||
log *log.Entry `inject:"false"`
|
log *log.Entry `inject:"false"`
|
||||||
medias *medias
|
posts *posts
|
||||||
uploads *uploads
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Routes) Prepare() error {
|
func (r *Routes) Prepare() error {
|
||||||
@@ -29,24 +27,16 @@ func (r *Routes) Name() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Routes) Register(router fiber.Router) {
|
func (r *Routes) Register(router fiber.Router) {
|
||||||
// 注册路由组: medias
|
// 注册路由组: posts
|
||||||
router.Get("/v1/medias", DataFunc1(
|
router.Get("/v1/posts", DataFunc2(
|
||||||
r.medias.List,
|
r.posts.List,
|
||||||
Query[requests.Pagination]("pagination"),
|
Query[requests.Pagination]("pagination"),
|
||||||
|
Query[ListQuery]("query"),
|
||||||
))
|
))
|
||||||
|
|
||||||
// 注册路由组: uploads
|
router.Get("/v1/posts/:id", DataFunc1(
|
||||||
router.Post("/v1/uploads/:md5/chunks/:idx", Func3(
|
r.posts.Show,
|
||||||
r.uploads.Chunks,
|
PathParam[int64]("id"),
|
||||||
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"),
|
|
||||||
))
|
))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,11 +24,13 @@ func Provide(opts ...opt.Option) error {
|
|||||||
db *sql.DB,
|
db *sql.DB,
|
||||||
medias *mediasModel,
|
medias *mediasModel,
|
||||||
posts *postsModel,
|
posts *postsModel,
|
||||||
|
users *usersModel,
|
||||||
) (contracts.Initial, error) {
|
) (contracts.Initial, error) {
|
||||||
obj := &models{
|
obj := &models{
|
||||||
db: db,
|
db: db,
|
||||||
medias: medias,
|
medias: medias,
|
||||||
posts: posts,
|
posts: posts,
|
||||||
|
users: users,
|
||||||
}
|
}
|
||||||
if err := obj.Prepare(); err != nil {
|
if err := obj.Prepare(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -40,6 +42,19 @@ func Provide(opts ...opt.Option) error {
|
|||||||
}
|
}
|
||||||
if err := container.Container.Provide(func() (*postsModel, error) {
|
if err := container.Container.Provide(func() (*postsModel, error) {
|
||||||
obj := &postsModel{}
|
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
|
return obj, nil
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user