linstrom/web/debug/server.go
mstar 671d18d2ba
Some checks are pending
/ test (push) Waiting to run
Add note info stuff to debug server. Also docs
2025-04-08 16:33:47 +02:00

46 lines
1.2 KiB
Go

// Package webdebug provides a http server for local debugging.
// The server is explicitly for localhost only as it offers
// a lot more control and access than the public one.
// Additionally, there is no guarantee for functional authentication
// and authorisation of requests.
// Using it can be considered a security risk.
//
// There is no guarantee for API stability. It might change drastically
// across versions or even commits and doesn't need announcements
package webdebug
import (
"context"
"net/http"
)
const DebugAddr = "127.0.0.1:3305"
type Server struct {
server *http.Server
}
func New() *Server {
handler := http.NewServeMux()
handler.HandleFunc("GET /non-deleted", getNonDeletedUsers)
handler.HandleFunc("POST /local-user", createLocalUser)
handler.HandleFunc("GET /delete", deleteUser)
handler.HandleFunc("POST /post-as", postAs)
handler.HandleFunc("GET /notes-for", notesFrom)
web := http.Server{
Addr: DebugAddr,
Handler: handler,
}
return &Server{&web}
}
func (s *Server) Start() error {
if err := s.server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
return err
}
return nil
}
func (s *Server) Stop() error {
return s.server.Shutdown(context.Background())
}