add server
This commit is contained in:
parent
00f28e3f7b
commit
2c7aedd5c2
|
@ -2,9 +2,20 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"cake_crm/internal/models/storage/storage_file"
|
"cake_crm/internal/models/storage/storage_file"
|
||||||
|
"cake_crm/internal/services/server_web"
|
||||||
|
"context"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
|
|
||||||
storage := storage_file.NewStorageFile("resources/db.json")
|
storage := storage_file.NewStorageFile("resources/db.json")
|
||||||
_ = storage
|
_ = storage
|
||||||
|
|
||||||
|
server := server_web.NewServer(storage, 8080)
|
||||||
|
err := server.Run(ctx)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -1,3 +1,5 @@
|
||||||
module cake_crm
|
module cake_crm
|
||||||
|
|
||||||
go 1.22
|
go 1.22
|
||||||
|
|
||||||
|
require github.com/go-pkgz/routegroup v1.1.1 // indirect
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
github.com/go-pkgz/routegroup v1.1.1 h1:Dm5IBiEmUbQT+3rliBimhX0SifnZp/uRF/WOu3XPmms=
|
||||||
|
github.com/go-pkgz/routegroup v1.1.1/go.mod h1:kDDPDRLRiRY1vnENrZJw1jQAzQX7fvsbsHGRQFNQfKc=
|
|
@ -0,0 +1,8 @@
|
||||||
|
package server_web
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
type IServer interface {
|
||||||
|
Run(ctx context.Context) error
|
||||||
|
Stop(ctx context.Context) error
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
package server_web
|
||||||
|
|
||||||
|
import (
|
||||||
|
"cake_crm/internal/models/storage"
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"github.com/go-pkgz/routegroup"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
type server struct {
|
||||||
|
storage storage.IStorage
|
||||||
|
port int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewServer(
|
||||||
|
storage storage.IStorage,
|
||||||
|
port int,
|
||||||
|
) IServer {
|
||||||
|
return &server{
|
||||||
|
storage: storage,
|
||||||
|
port: port,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *server) Run(ctx context.Context) error {
|
||||||
|
router := routegroup.New(http.NewServeMux())
|
||||||
|
router.HandleFunc("GET /products", s.getAllProductsHandler)
|
||||||
|
router.HandleFunc("GET /products/:id", s.getProductById)
|
||||||
|
router.HandleFunc("GET /category/:id/breadcrumbs", s.getBreadcrumbsByCategoryId)
|
||||||
|
return http.ListenAndServe(fmt.Sprintf(":%d", s.port), router)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *server) Stop(ctx context.Context) error {
|
||||||
|
//TODO implement me
|
||||||
|
panic("implement me")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *server) getAllProductsHandler(w http.ResponseWriter, r *http.Request) {}
|
||||||
|
|
||||||
|
func (s *server) getProductById(w http.ResponseWriter, r *http.Request) {}
|
||||||
|
|
||||||
|
func (s *server) getBreadcrumbsByCategoryId(w http.ResponseWriter, r *http.Request) {}
|
Loading…
Reference in New Issue