30 lines
493 B
Go
30 lines
493 B
Go
package http
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
type Server struct {
|
|
RateLimiter RateLimiter
|
|
server *http.Server
|
|
}
|
|
|
|
func (s *Server) Run() error {
|
|
s.server = &http.Server{
|
|
Addr: ":8080",
|
|
ReadTimeout: 30 * time.Second,
|
|
WriteTimeout: 30 * time.Second,
|
|
Handler: s.BuildRoutes(),
|
|
}
|
|
|
|
fmt.Println("server listening on :8080")
|
|
return s.server.ListenAndServe()
|
|
}
|
|
|
|
func (s *Server) Shutdown(ctx context.Context) error {
|
|
return s.server.Shutdown(ctx)
|
|
}
|