Core implementation written with Junie.
This commit is contained in:
42
api/server.go
Normal file
42
api/server.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
DB *sql.DB
|
||||
Router *http.ServeMux
|
||||
Logger *log.Logger
|
||||
}
|
||||
|
||||
func NewServer(db *sql.DB, logger *log.Logger) *Server {
|
||||
s := &Server{
|
||||
DB: db,
|
||||
Router: http.NewServeMux(),
|
||||
Logger: logger,
|
||||
}
|
||||
|
||||
s.registerRoutes()
|
||||
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *Server) registerRoutes() {
|
||||
s.Router.HandleFunc("POST /v1/login/password", s.handlePasswordLogin)
|
||||
s.Router.HandleFunc("POST /v1/login/token", s.handleTokenLogin)
|
||||
s.Router.HandleFunc("GET /v1/database/credentials", s.handleDatabaseCredentials)
|
||||
}
|
||||
|
||||
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
s.Router.ServeHTTP(w, r)
|
||||
}
|
||||
|
||||
func (s *Server) Start(addr string) error {
|
||||
s.Logger.Printf("Starting server on %s", addr)
|
||||
return http.ListenAndServe(addr, s)
|
||||
}
|
||||
Reference in New Issue
Block a user