package main import ( "crowsnest/internal/app" "crowsnest/internal/crawler" "crowsnest/internal/middleware" "crowsnest/internal/model" "crowsnest/internal/model/database" "log" "net/http" _ "github.com/lib/pq" ) func main() { db, err := database.DbConnection() if err != nil { log.Fatal("failed to connect to database due to", err.Error()) } // run web crawlers articles := &database.ArticleModel{DB: db} crawler := crawler.CrawlerFacade{} crawler.Init() crawler.SubscribeToSpiegelFeed(func(a *model.Article) { articles.Insert(a) }) crawler.SubscribeToZeitFeed(func(a *model.Article) { articles.Insert(a) }) // define app webapp := app.NewApp(db) // create middle stack := middleware.CreateStack( middleware.Logging, ) // start web server server := http.Server{ Addr: ":8080", Handler: stack(webapp.Routes()), } log.Println("server started, listening on :8080") server.ListenAndServe() }