Files
gb28181/internal/core/metadata/metadataapi/metadata.go
T
2026-04-10 22:20:14 +08:00

62 lines
2.1 KiB
Go
Executable File

// Code generated by godddx, DO AVOID EDIT.
package metadataapi
import (
"github.com/gin-gonic/gin"
"github.com/gowvp/owl/internal/core/metadata"
"github.com/gowvp/owl/internal/core/metadata/store/metadatadb"
"github.com/ixugo/goddd/pkg/orm"
"github.com/ixugo/goddd/pkg/web"
"gorm.io/gorm"
)
// MetadataAPI 为 http 提供通用数据持久化的业务方法
type MetadataAPI struct {
metadataCore metadata.Core
}
func NewMetadataCore(db *gorm.DB) metadata.Core {
var store metadata.Storer
store = metadatadb.NewDB(db).AutoMigrate(orm.GetEnabledAutoMigrate())
return metadata.NewCore(store)
}
func NewMetadataAPI(core metadata.Core) MetadataAPI {
return MetadataAPI{metadataCore: core}
}
// RegisterMetadata 注册通用数据持久化路由
func RegisterMetadata(g gin.IRouter, api MetadataAPI, handler ...gin.HandlerFunc) {
group := g.Group("/metadatas", handler...)
group.GET("/:id", web.WrapH(api.getMetadata))
group.POST("/:id", web.WrapH(api.saveMetadata))
}
// >>> metadata >>>>>>>>>>>>>>>>>>>>
// findMetadatas 分页查询(保留代码,当前不提供)
// func (a MetadataAPI) findMetadatas(c *gin.Context, in *metadata.FindMetadataInput) (any, error) {
// items, total, err := a.metadataCore.FindMetadatas(c.Request.Context(), in)
// return gin.H{"items": items, "total": total}, err
// }
// getMetadata 按 ID 查询数据
func (a MetadataAPI) getMetadata(c *gin.Context, _ *struct{}) (*metadata.Metadata, error) {
metadataID := c.Param("id")
return a.metadataCore.GetMetadata(c.Request.Context(), metadataID)
}
// saveMetadata 幂等保存:已存在则更新,不存在则创建
func (a MetadataAPI) saveMetadata(c *gin.Context, in *metadata.SaveMetadataInput) (*metadata.Metadata, error) {
metadataID := c.Param("id")
in.CreatedBy = web.GetUsername(c)
in.LastUpdatedBy = in.CreatedBy
return a.metadataCore.SaveMetadata(c.Request.Context(), in, metadataID)
}
// delMetadata 删除数据(保留代码,当前不提供)
// func (a MetadataAPI) delMetadata(c *gin.Context, _ *struct{}) (*metadata.Metadata, error) {
// metadataID := c.Param("id")
// return a.metadataCore.DelMetadata(c.Request.Context(), metadataID)
// }