74 lines
2.2 KiB
Go
74 lines
2.2 KiB
Go
package activity
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.guxuan/haibei/internal/config"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.guxuan/haibei/internal/mods/activity/api"
|
|
"github.guxuan/haibei/internal/mods/activity/schema"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Activity struct {
|
|
DB *gorm.DB
|
|
ActivityAPI *api.Activity
|
|
QuestionnaireAPI *api.Questionnaire
|
|
ActivityDetailAPI *api.ActivityDetail
|
|
QeustionDetailAPI *api.QeustionDetail
|
|
}
|
|
|
|
func (a *Activity) AutoMigrate(ctx context.Context) error {
|
|
return a.DB.AutoMigrate(new(schema.Activity), new(schema.Questionnaire), new(schema.ActivityDetail), new(schema.QeustionDetail), new(schema.House), new(schema.HouseArticle))
|
|
}
|
|
|
|
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)
|
|
}
|
|
questionnaire := v1.Group("questionnaires")
|
|
{
|
|
questionnaire.GET("", a.QuestionnaireAPI.Query)
|
|
questionnaire.GET(":id", a.QuestionnaireAPI.Get)
|
|
questionnaire.POST("", a.QuestionnaireAPI.Create)
|
|
questionnaire.PUT(":id", a.QuestionnaireAPI.Update)
|
|
questionnaire.DELETE(":id", a.QuestionnaireAPI.Delete)
|
|
}
|
|
activityDetail := v1.Group("activity-details")
|
|
{
|
|
activityDetail.GET("", a.ActivityDetailAPI.Query)
|
|
activityDetail.GET(":id", a.ActivityDetailAPI.Get)
|
|
activityDetail.POST("", a.ActivityDetailAPI.Create)
|
|
activityDetail.PUT(":id", a.ActivityDetailAPI.Update)
|
|
activityDetail.DELETE(":id", a.ActivityDetailAPI.Delete)
|
|
}
|
|
qeustionDetail := v1.Group("qeustion-details")
|
|
{
|
|
qeustionDetail.GET("", a.QeustionDetailAPI.Query)
|
|
qeustionDetail.GET(":id", a.QeustionDetailAPI.Get)
|
|
qeustionDetail.POST("", a.QeustionDetailAPI.Create)
|
|
qeustionDetail.PUT(":id", a.QeustionDetailAPI.Update)
|
|
qeustionDetail.DELETE(":id", a.QeustionDetailAPI.Delete)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (a *Activity) Release(ctx context.Context) error {
|
|
return nil
|
|
}
|