43 lines
694 B
Go
43 lines
694 B
Go
package http
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
|
|
"example.com/m/internal/handlers"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type Server struct {
|
|
address string
|
|
|
|
engine *gin.Engine
|
|
|
|
linksHandler *handlers.LinksHandler
|
|
}
|
|
|
|
func NewServer(address string, lh *handlers.LinksHandler) *Server {
|
|
engine := gin.New()
|
|
|
|
engine.Use(gin.Recovery())
|
|
|
|
return &Server{
|
|
address: address,
|
|
engine: engine,
|
|
linksHandler: lh,
|
|
}
|
|
}
|
|
|
|
func (s *Server) Start() error {
|
|
s.routes()
|
|
|
|
if err := s.engine.Run(s.address); err != nil && err != http.ErrServerClosed {
|
|
log.Fatalf("error occured while starting the server: %v", err)
|
|
return err
|
|
}
|
|
|
|
fmt.Println("server started: &v", s.address)
|
|
return nil
|
|
}
|