| package handler |
|
|
| import ( |
| "github.com/Wei-Shaw/sub2api/internal/handler/dto" |
| "github.com/Wei-Shaw/sub2api/internal/pkg/response" |
| "github.com/Wei-Shaw/sub2api/internal/service" |
|
|
| "github.com/gin-gonic/gin" |
| ) |
|
|
| |
| type SettingHandler struct { |
| settingService *service.SettingService |
| version string |
| } |
|
|
| |
| func NewSettingHandler(settingService *service.SettingService, version string) *SettingHandler { |
| return &SettingHandler{ |
| settingService: settingService, |
| version: version, |
| } |
| } |
|
|
| |
| |
| func (h *SettingHandler) GetPublicSettings(c *gin.Context) { |
| settings, err := h.settingService.GetPublicSettings(c.Request.Context()) |
| if err != nil { |
| response.ErrorFrom(c, err) |
| return |
| } |
|
|
| response.Success(c, dto.PublicSettings{ |
| RegistrationEnabled: settings.RegistrationEnabled, |
| EmailVerifyEnabled: settings.EmailVerifyEnabled, |
| RegistrationEmailSuffixWhitelist: settings.RegistrationEmailSuffixWhitelist, |
| PromoCodeEnabled: settings.PromoCodeEnabled, |
| PasswordResetEnabled: settings.PasswordResetEnabled, |
| InvitationCodeEnabled: settings.InvitationCodeEnabled, |
| TotpEnabled: settings.TotpEnabled, |
| TurnstileEnabled: settings.TurnstileEnabled, |
| TurnstileSiteKey: settings.TurnstileSiteKey, |
| SiteName: settings.SiteName, |
| SiteLogo: settings.SiteLogo, |
| SiteSubtitle: settings.SiteSubtitle, |
| APIBaseURL: settings.APIBaseURL, |
| ContactInfo: settings.ContactInfo, |
| DocURL: settings.DocURL, |
| HomeContent: settings.HomeContent, |
| HideCcsImportButton: settings.HideCcsImportButton, |
| PurchaseSubscriptionEnabled: settings.PurchaseSubscriptionEnabled, |
| PurchaseSubscriptionURL: settings.PurchaseSubscriptionURL, |
| CustomMenuItems: dto.ParseUserVisibleMenuItems(settings.CustomMenuItems), |
| LinuxDoOAuthEnabled: settings.LinuxDoOAuthEnabled, |
| SoraClientEnabled: settings.SoraClientEnabled, |
| BackendModeEnabled: settings.BackendModeEnabled, |
| Version: h.version, |
| }) |
| } |
|
|