40 lines
810 B
Go
40 lines
810 B
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
lua "github.com/yuin/gopher-lua"
|
|
)
|
|
|
|
func start_server(address string, port string, L *lua.LState) *http.Server {
|
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
|
path := r.URL.Path
|
|
logger.Debug("Request received: ", path)
|
|
|
|
if _, ok := routes[path]; !ok {
|
|
w.WriteHeader(http.StatusNotFound)
|
|
return
|
|
}
|
|
|
|
response := responses[path]
|
|
logger.Trace("API Response: ", response)
|
|
w.Write([]byte(response))
|
|
})
|
|
|
|
listening := address + ":" + port
|
|
server := &http.Server{
|
|
Addr: listening,
|
|
Handler: nil,
|
|
}
|
|
|
|
go func() {
|
|
// TODO: Add an error message for this
|
|
if err := server.ListenAndServe(); err != http.ErrServerClosed {
|
|
logger.Fatalf("Server Error: %v", err)
|
|
}
|
|
}()
|
|
|
|
logger.Info("Listening on ", listening)
|
|
return server
|
|
}
|