friend/main.go

40 lines
1.0 KiB
Go

package main
import (
"log"
"net/http"
"github.com/go-chi/chi/v5"
)
func main() {
// this will be configurable in the future obviously
username := "dma"
domain := "hello.yetaga.in"
wf, err := NewWebfinger(username, domain)
if err != nil {
log.Fatalln(err)
}
pp, err := NewProfileProvider(username, domain)
if err != nil {
log.Fatalln(err)
}
st := &InMemoryStreams{}
r := chi.NewRouter()
r.Get("/.well-known/webfinger", WebFingerHandler(wf))
r.Get("/users/{user}", UserExistsMiddleware(username, ProfileHandler(pp)))
r.Get("/users/{user}/inbox", UserExistsMiddleware(username, GetInboxHandler(st)))
r.Post("/users/{user}/inbox", UserExistsMiddleware(username, PostInboxHandler(st)))
r.Get("/users/{user}/outbox", UserExistsMiddleware(username, GetOutboxHandler(st)))
r.Post("/users/{user}/outbox", UserExistsMiddleware(username, PostOutboxHandler(st)))
r.Post("/inbox", PostInboxHandler(st)) // "shared" inbox
log.Println("listening on http://0.0.0.0:8008")
err = http.ListenAndServe(":8008", r)
if err != nil {
log.Fatalln(err)
}
}