mirror of
https://github.com/foomo/keel.git
synced 2025-10-16 12:35:34 +00:00
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package service
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/foomo/keel/interfaces"
|
|
"github.com/foomo/keel/markdown"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
const (
|
|
DefaultHTTPReadmeName = "readme"
|
|
DefaultHTTPReadmeAddr = "localhost:9001"
|
|
DefaultHTTPReadmePath = "/readme"
|
|
)
|
|
|
|
func NewHTTPReadme(l *zap.Logger, name, addr, path string, readmers *[]interfaces.Readmer) *HTTP {
|
|
handler := http.NewServeMux()
|
|
handler.HandleFunc(path, func(w http.ResponseWriter, r *http.Request) {
|
|
switch r.Method {
|
|
case http.MethodGet:
|
|
w.Header().Add("Content-Type", "text/markdown")
|
|
w.WriteHeader(http.StatusOK)
|
|
md := &markdown.Markdown{}
|
|
for _, readmer := range *readmers {
|
|
md.Print(readmer.Readme())
|
|
}
|
|
_, _ = w.Write([]byte(md.String()))
|
|
default:
|
|
http.Error(w, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed)
|
|
}
|
|
})
|
|
return NewHTTP(l, name, addr, handler)
|
|
}
|
|
|
|
func NewDefaultHTTPReadme(l *zap.Logger, readmers *[]interfaces.Readmer) *HTTP {
|
|
return NewHTTPReadme(
|
|
l,
|
|
DefaultHTTPReadmeName,
|
|
DefaultHTTPReadmeAddr,
|
|
DefaultHTTPReadmePath,
|
|
readmers,
|
|
)
|
|
}
|