🏗️ Connected media module layers into main server
This commit is contained in:
parent
bd2b9f02b1
commit
aeba4bbb8a
2
go.mod
2
go.mod
|
@ -8,3 +8,5 @@ require (
|
|||
)
|
||||
|
||||
require golang.org/x/net v0.15.0
|
||||
|
||||
require github.com/caarlos0/env/v9 v9.0.0
|
||||
|
|
2
go.sum
2
go.sum
|
@ -1,3 +1,5 @@
|
|||
github.com/caarlos0/env/v9 v9.0.0 h1:SI6JNsOA+y5gj9njpgybykATIylrRMklbs5ch6wO6pc=
|
||||
github.com/caarlos0/env/v9 v9.0.0/go.mod h1:ye5mlCVMYh6tZ+vCgrs/B95sj88cg5Tlnc0XIzgZ020=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
|
||||
"github.com/caarlos0/env/v9"
|
||||
|
||||
"source.toby3d.me/toby3d/pub/internal/domain"
|
||||
mediahttpdelivery "source.toby3d.me/toby3d/pub/internal/media/delivery/http"
|
||||
mediamemoryrepo "source.toby3d.me/toby3d/pub/internal/media/repository/memory"
|
||||
mediaucase "source.toby3d.me/toby3d/pub/internal/media/usecase"
|
||||
"source.toby3d.me/toby3d/pub/internal/urlutil"
|
||||
)
|
||||
|
||||
var (
|
||||
config = new(domain.Config)
|
||||
logger = log.New(os.Stdout, "Micropub ", log.LstdFlags)
|
||||
)
|
||||
|
||||
func init() {
|
||||
if err := env.ParseWithOptions(config, env.Options{}); err != nil {
|
||||
logger.Fatal("cannot parse environment variables into config:", err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
mediaRepo := mediamemoryrepo.NewMemoryMediaRepository()
|
||||
mediaUseCase := mediaucase.NewMediaUseCase(mediaRepo)
|
||||
mediaHandler := mediahttpdelivery.NewHandler(mediaUseCase, *config)
|
||||
|
||||
server := http.Server{
|
||||
Addr: config.HTTP.Bind,
|
||||
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
head, _ := urlutil.ShiftPath(r.RequestURI)
|
||||
|
||||
switch head {
|
||||
default:
|
||||
http.NotFound(w, r)
|
||||
case "media":
|
||||
mediaHandler.ServeHTTP(w, r)
|
||||
}
|
||||
}),
|
||||
}
|
||||
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
logger.Fatal("cannot listen and serve:", err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue