friend/main.go

40 lines
1.0 KiB
Go
Raw Permalink Normal View History

2022-11-11 07:07:50 +00:00
package main
import (
"log"
"net/http"
"github.com/go-chi/chi/v5"
)
func main() {
2022-11-12 05:06:12 +00:00
// this will be configurable in the future obviously
username := "dma"
domain := "hello.yetaga.in"
wf, err := NewWebfinger(username, domain)
2022-11-11 07:07:50 +00:00
if err != nil {
log.Fatalln(err)
}
2022-11-12 05:06:12 +00:00
pp, err := NewProfileProvider(username, domain)
2022-11-11 07:07:50 +00:00
if err != nil {
log.Fatalln(err)
}
2022-11-12 05:06:12 +00:00
st := &InMemoryStreams{}
2022-11-11 07:07:50 +00:00
r := chi.NewRouter()
r.Get("/.well-known/webfinger", WebFingerHandler(wf))
2022-11-12 05:06:12 +00:00
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
2022-11-11 07:07:50 +00:00
log.Println("listening on http://0.0.0.0:8008")
err = http.ListenAndServe(":8008", r)
if err != nil {
log.Fatalln(err)
}
}