97 lines
3.3 KiB
Go
97 lines
3.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/QuantumNous/new-api/common"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type docsConfigResponse struct {
|
|
BrandName string `json:"brandName"`
|
|
SiteName map[string]string `json:"siteName"`
|
|
LogoUrl string `json:"logoUrl"`
|
|
HomeUrl string `json:"homeUrl"`
|
|
GithubUrl string `json:"githubUrl"`
|
|
MetaKeywords []string `json:"metaKeywords"`
|
|
Business docsBusinessConfigResponse `json:"business"`
|
|
Raw map[string]string `json:"raw"`
|
|
}
|
|
|
|
type docsBusinessConfigResponse struct {
|
|
Phone string `json:"phone"`
|
|
PhoneHref string `json:"phoneHref"`
|
|
WorkTime map[string]string `json:"workTime"`
|
|
WechatQrUrl string `json:"wechatQrUrl"`
|
|
}
|
|
|
|
func docsOptionValue(key string) string {
|
|
return strings.TrimSpace(common.OptionMap[key])
|
|
}
|
|
|
|
func splitDocsKeywords(value string) []string {
|
|
if strings.TrimSpace(value) == "" {
|
|
return []string{}
|
|
}
|
|
parts := strings.Split(value, ",")
|
|
keywords := make([]string, 0, len(parts))
|
|
for _, part := range parts {
|
|
keyword := strings.TrimSpace(part)
|
|
if keyword != "" {
|
|
keywords = append(keywords, keyword)
|
|
}
|
|
}
|
|
return keywords
|
|
}
|
|
|
|
func GetDocsConfig(c *gin.Context) {
|
|
common.OptionMapRWMutex.RLock()
|
|
defer common.OptionMapRWMutex.RUnlock()
|
|
|
|
raw := map[string]string{
|
|
"DocsBrandName": docsOptionValue("DocsBrandName"),
|
|
"DocsSiteNameEn": docsOptionValue("DocsSiteNameEn"),
|
|
"DocsSiteNameZh": docsOptionValue("DocsSiteNameZh"),
|
|
"DocsSiteNameJa": docsOptionValue("DocsSiteNameJa"),
|
|
"DocsLogoUrl": docsOptionValue("DocsLogoUrl"),
|
|
"DocsHomeUrl": docsOptionValue("DocsHomeUrl"),
|
|
"DocsGithubUrl": docsOptionValue("DocsGithubUrl"),
|
|
"DocsMetaKeywords": docsOptionValue("DocsMetaKeywords"),
|
|
"DocsBusinessPhone": docsOptionValue("DocsBusinessPhone"),
|
|
"DocsBusinessPhoneHref": docsOptionValue("DocsBusinessPhoneHref"),
|
|
"DocsBusinessWorkTimeZh": docsOptionValue("DocsBusinessWorkTimeZh"),
|
|
"DocsBusinessWorkTimeEn": docsOptionValue("DocsBusinessWorkTimeEn"),
|
|
"DocsBusinessWorkTimeJa": docsOptionValue("DocsBusinessWorkTimeJa"),
|
|
"DocsBusinessWechatQrUrl": docsOptionValue("DocsBusinessWechatQrUrl"),
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"success": true,
|
|
"message": "",
|
|
"data": docsConfigResponse{
|
|
BrandName: docsOptionValue("DocsBrandName"),
|
|
SiteName: map[string]string{
|
|
"en": docsOptionValue("DocsSiteNameEn"),
|
|
"zh": docsOptionValue("DocsSiteNameZh"),
|
|
"ja": docsOptionValue("DocsSiteNameJa"),
|
|
},
|
|
LogoUrl: docsOptionValue("DocsLogoUrl"),
|
|
HomeUrl: docsOptionValue("DocsHomeUrl"),
|
|
GithubUrl: docsOptionValue("DocsGithubUrl"),
|
|
MetaKeywords: splitDocsKeywords(docsOptionValue("DocsMetaKeywords")),
|
|
Business: docsBusinessConfigResponse{
|
|
Phone: docsOptionValue("DocsBusinessPhone"),
|
|
PhoneHref: docsOptionValue("DocsBusinessPhoneHref"),
|
|
WorkTime: map[string]string{
|
|
"en": docsOptionValue("DocsBusinessWorkTimeEn"),
|
|
"zh": docsOptionValue("DocsBusinessWorkTimeZh"),
|
|
"ja": docsOptionValue("DocsBusinessWorkTimeJa"),
|
|
},
|
|
WechatQrUrl: docsOptionValue("DocsBusinessWechatQrUrl"),
|
|
},
|
|
Raw: raw,
|
|
},
|
|
})
|
|
}
|