srv.go 787 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package server
  2. import (
  3. "fmt"
  4. "net/http"
  5. "git.linuxit.ro/turos.robert/mynotes/lib/inout"
  6. )
  7. func NewServer(filename string) *Server {
  8. srv := Server{}
  9. err := inout.FileToObj(filename, &srv)
  10. if err != nil {
  11. srv.Err = err
  12. }
  13. return &srv
  14. }
  15. func Ceva(s *Server) http.HandlerFunc {
  16. return func(w http.ResponseWriter, r *http.Request) {
  17. //s.Err = fmt.Errorf("bla")
  18. s_json := inout.ObjToJson(s)
  19. w.Write([]byte(s_json))
  20. }
  21. }
  22. func (s *Server) Run() {
  23. // adding endpoints to the server
  24. http.HandleFunc("/", Wildcard)
  25. http.Handle("/ceva", Ceva(s))
  26. //running server
  27. fmt.Printf("Server running at http://%s:%s/\n", s.Host, s.Port)
  28. err := http.ListenAndServe(fmt.Sprintf("%s:%s", s.Host, s.Port), nil)
  29. if err != nil {
  30. fmt.Printf("Error starting server: %+v\n", err)
  31. }
  32. }