modified: web/components/base/input.templ modified: web/components/base/input_templ.go modified: web/components/base/range.templ modified: web/components/base/range_templ.go modified: web/components/base/select.templ modified: web/components/base/select_templ.go modified: web/components/base/textarea.templ modified: web/components/base/textarea_templ.go modified: web/components/icons.templ modified: web/components/icons_templ.go modified: web/components/issue.templ modified: web/components/issue_templ.go modified: web/components/layout.templ modified: web/components/layout_templ.go new file: web/components/sidebar.templ new file: web/components/sidebar_templ.go new file: web/components/status.templ new file: web/components/status_templ.go modified: web/handler/issues.go new file: web/handler/task.go modified: web/input.css deleted: web/package-lock.json deleted: web/package.json modified: web/routes/layout.templ modified: web/routes/layout_templ.go modified: web/server/routes.go modified: web/server/server.go modified: web/web.go
33 lines
589 B
Go
33 lines
589 B
Go
package server
|
|
|
|
import (
|
|
"embed"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/LazyBachelor/LazyPM/internal/service"
|
|
)
|
|
|
|
type Server struct {
|
|
Address string
|
|
Assets embed.FS
|
|
Services *service.Services
|
|
}
|
|
|
|
// NewServer creates and configures a new HTTP server instance.
|
|
func NewServer(props Server) *http.Server {
|
|
if props.Address == "" {
|
|
props.Address = ":8080"
|
|
}
|
|
|
|
handler := props.RegisterRoutes(props.Assets)
|
|
|
|
return &http.Server{
|
|
Addr: props.Address,
|
|
Handler: handler,
|
|
IdleTimeout: time.Minute,
|
|
ReadTimeout: time.Second * 10,
|
|
WriteTimeout: time.Second * 10,
|
|
}
|
|
}
|