aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/router.go27
-rw-r--r--src/server/server.go26
2 files changed, 45 insertions, 8 deletions
diff --git a/src/server/router.go b/src/server/router.go
new file mode 100644
index 0000000..248a1d3
--- /dev/null
+++ b/src/server/router.go
@@ -0,0 +1,27 @@
+package server
+
+import (
+ "net/http"
+
+ "github.com/go-chi/chi/v5"
+ "github.com/go-chi/chi/v5/middleware"
+ "gitlab.com/alexkavon/newsstand/src/conf"
+)
+
+type HandlerFunc func(s *Server) http.HandlerFunc
+
+type Route struct {
+ Name string
+ Method string
+ Pattern string
+ AuthRequired bool
+ HandlerFunc HandlerFunc
+}
+
+type Routes []Route
+
+func NewRouter(config *conf.Conf) *chi.Mux {
+ r := chi.NewRouter()
+ r.Use(middleware.Logger)
+ return r
+}
diff --git a/src/server/server.go b/src/server/server.go
index a265b28..21cbe71 100644
--- a/src/server/server.go
+++ b/src/server/server.go
@@ -1,17 +1,27 @@
package server
import (
+ "database/sql"
"net/http"
"github.com/go-chi/chi/v5"
- "github.com/go-chi/chi/v5/middleware"
+ "gitlab.com/alexkavon/newsstand/src/conf"
)
-func Start() {
- r := chi.NewRouter()
- r.Use(middleware.Logger)
- r.Get("/", func(w http.ResponseWriter, r *http.Request) {
- w.Write([]byte("Yello There!"))
- })
- http.ListenAndServe(":8080", r)
+type Server struct {
+ Router *chi.Mux
+ Db *sql.DB
+ Config *conf.Conf
+}
+
+func NewServer(config *conf.Conf, router *chi.Mux, db *sql.DB) *Server {
+ return &Server{
+ Router: router,
+ Db: db,
+ Config: config,
+ }
+}
+
+func (s *Server) Serve() {
+ http.ListenAndServe(":"+s.Config.Server.Port, s.Router)
}