package app import ( "crowsnest/internal/model/database" "database/sql" "net/http" ) type App struct { articles *database.ArticleRepository } func NewApp(db *sql.DB) *App { return &App{ articles: &database.ArticleRepository{DB: db}, } } func (app *App) Routes() http.Handler { mux := http.NewServeMux() // dynamic routes mux.Handle("GET /", http.HandlerFunc(app.Index)) mux.Handle("GET /page/{id}", http.HandlerFunc(app.Index)) mux.Handle("POST /up/search", http.HandlerFunc(app.UpSearch)) mux.Handle("GET /article/{id}", http.HandlerFunc(app.Article)) // serve files from the "static" directory mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./assets/static")))) return mux }