65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
package activity
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gitlab.guxuan.icu/jinshan_community/internal/config"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gitlab.guxuan.icu/jinshan_community/internal/mods/activity/api"
|
|
"gitlab.guxuan.icu/jinshan_community/internal/mods/activity/schema"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Activity struct {
|
|
DB *gorm.DB
|
|
ActivityAPI *api.Activity
|
|
ActivityCategoryAPI *api.ActivityCategory
|
|
ReciprocityAPI *api.Reciprocity
|
|
}
|
|
|
|
func (a *Activity) AutoMigrate(ctx context.Context) error {
|
|
return a.DB.AutoMigrate(new(schema.Activity), new(schema.ActivityCategory), new(schema.Reciprocity))
|
|
}
|
|
|
|
func (a *Activity) Init(ctx context.Context) error {
|
|
if config.C.Storage.DB.AutoMigrate {
|
|
if err := a.AutoMigrate(ctx); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *Activity) RegisterV1Routers(ctx context.Context, v1 *gin.RouterGroup) error {
|
|
activity := v1.Group("activities")
|
|
{
|
|
activity.GET("", a.ActivityAPI.Query)
|
|
activity.GET(":id", a.ActivityAPI.Get)
|
|
activity.POST("", a.ActivityAPI.Create)
|
|
activity.PUT(":id", a.ActivityAPI.Update)
|
|
activity.DELETE(":id", a.ActivityAPI.Delete)
|
|
}
|
|
activityCategory := v1.Group("activity-categories")
|
|
{
|
|
activityCategory.GET("", a.ActivityCategoryAPI.Query)
|
|
activityCategory.GET(":id", a.ActivityCategoryAPI.Get)
|
|
activityCategory.POST("", a.ActivityCategoryAPI.Create)
|
|
activityCategory.PUT(":id", a.ActivityCategoryAPI.Update)
|
|
activityCategory.DELETE(":id", a.ActivityCategoryAPI.Delete)
|
|
}
|
|
reciprocity := v1.Group("reciprocities")
|
|
{
|
|
reciprocity.GET("", a.ReciprocityAPI.Query)
|
|
reciprocity.GET(":id", a.ReciprocityAPI.Get)
|
|
reciprocity.POST("", a.ReciprocityAPI.Create)
|
|
reciprocity.PUT(":id", a.ReciprocityAPI.Update)
|
|
reciprocity.DELETE(":id", a.ReciprocityAPI.Delete)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *Activity) Release(ctx context.Context) error {
|
|
return nil
|
|
}
|