|
- package nodeinfo
-
- import (
- "encoding/json"
- "github.com/writeas/go-webfinger"
- "log"
- "net/http"
- )
-
- // NodeInfoPath defines the default path of the nodeinfo handler.
- const NodeInfoPath = "/.well-known/nodeinfo"
-
- type discoverInfo struct {
- Links []webfinger.Link `json:"links"`
- }
-
- func (s *Service) NodeInfoDiscover(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Content-Type", "application/json; charset=UTF-8")
-
- i := discoverInfo{
- Links: []webfinger.Link{
- {
- Rel: profile,
- HRef: s.InfoURL,
- },
- },
- }
-
- body, err := json.Marshal(i)
- if err != nil {
- log.Printf("Unable to marshal nodeinfo discovery: %v", err)
- w.WriteHeader(http.StatusInternalServerError)
- return
- }
-
- w.WriteHeader(http.StatusOK)
-
- _, err = w.Write(body)
- if err != nil {
- log.Printf("Unable to write body: %v", err)
- return
- }
- }
-
- func (s *Service) NodeInfo(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Content-Type", "application/json; profile="+profile+"#")
-
- i := s.BuildInfo()
-
- body, err := json.Marshal(i)
- if err != nil {
- log.Printf("Unable to marshal nodeinfo: %v", err)
- w.WriteHeader(http.StatusInternalServerError)
- return
- }
-
- w.WriteHeader(http.StatusOK)
-
- _, err = w.Write(body)
- if err != nil {
- log.Printf("Unable to write body: %v", err)
- return
- }
- }
|