🏗️ Connect and use webfinger module
This commit is contained in:
parent
d4a7d8061d
commit
c359d05761
|
@ -32,6 +32,8 @@ import (
|
||||||
themefsrepo "source.toby3d.me/toby3d/home/internal/theme/repository/fs"
|
themefsrepo "source.toby3d.me/toby3d/home/internal/theme/repository/fs"
|
||||||
themeucase "source.toby3d.me/toby3d/home/internal/theme/usecase"
|
themeucase "source.toby3d.me/toby3d/home/internal/theme/usecase"
|
||||||
"source.toby3d.me/toby3d/home/internal/urlutil"
|
"source.toby3d.me/toby3d/home/internal/urlutil"
|
||||||
|
webfingerhttpdelivery "source.toby3d.me/toby3d/home/internal/webfinger/delivery/http"
|
||||||
|
webfingerucase "source.toby3d.me/toby3d/home/internal/webfinger/usecase"
|
||||||
)
|
)
|
||||||
|
|
||||||
type App struct {
|
type App struct {
|
||||||
|
@ -58,7 +60,21 @@ func NewApp(logger *log.Logger, config *domain.Config) (*App, error) {
|
||||||
entries := pagefsrepo.NewFileSystemPageRepository(contentDir)
|
entries := pagefsrepo.NewFileSystemPageRepository(contentDir)
|
||||||
entrier := pageucase.NewEntryUseCase(entries, resources)
|
entrier := pageucase.NewEntryUseCase(entries, resources)
|
||||||
serverer := servercase.NewServerUseCase(sites)
|
serverer := servercase.NewServerUseCase(sites)
|
||||||
|
webfingerer := webfingerucase.NewWebFingerUseCase(sites)
|
||||||
|
webfingerHandler := webfingerhttpdelivery.NewHandler(webfingerer)
|
||||||
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
head, tail := urlutil.ShiftPath(r.URL.Path)
|
||||||
|
|
||||||
|
switch head {
|
||||||
|
case ".well-known":
|
||||||
|
switch {
|
||||||
|
case strings.HasPrefix(tail, "/webfinger"):
|
||||||
|
webfingerHandler.ServeHTTP(w, r)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// NOTE(toby3d): any static file is public and unprotected by
|
// NOTE(toby3d): any static file is public and unprotected by
|
||||||
// design, so it's safe to search it first before deep down to
|
// design, so it's safe to search it first before deep down to
|
||||||
// any page or it's resource which might be protected by
|
// any page or it's resource which might be protected by
|
||||||
|
@ -83,8 +99,7 @@ func NewApp(logger *log.Logger, config *domain.Config) (*App, error) {
|
||||||
if s.IsMultiLingual() {
|
if s.IsMultiLingual() {
|
||||||
// NOTE(toby3d): $HOME_CONTENT_DIR contains at least two
|
// NOTE(toby3d): $HOME_CONTENT_DIR contains at least two
|
||||||
// index.md with different language codes.
|
// index.md with different language codes.
|
||||||
head, tail := urlutil.ShiftPath(r.URL.Path)
|
if head, tail = urlutil.ShiftPath(r.URL.Path); head == "" {
|
||||||
if head == "" {
|
|
||||||
// NOTE(toby3d): client request just '/', try to
|
// NOTE(toby3d): client request just '/', try to
|
||||||
// understand which language subdirectory is
|
// understand which language subdirectory is
|
||||||
// need to redirect.
|
// need to redirect.
|
||||||
|
|
Loading…
Reference in New Issue