add server
This commit is contained in:
		
							parent
							
								
									00f28e3f7b
								
							
						
					
					
						commit
						2c7aedd5c2
					
				@ -2,9 +2,20 @@ package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"cake_crm/internal/models/storage/storage_file"
 | 
			
		||||
	"cake_crm/internal/services/server_web"
 | 
			
		||||
	"context"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	ctx, cancel := context.WithCancel(context.Background())
 | 
			
		||||
	defer cancel()
 | 
			
		||||
 | 
			
		||||
	storage := storage_file.NewStorageFile("resources/db.json")
 | 
			
		||||
	_ = 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
 | 
			
		||||
 | 
			
		||||
go 1.22
 | 
			
		||||
 | 
			
		||||
require github.com/go-pkgz/routegroup v1.1.1 // indirect
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							@ -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=
 | 
			
		||||
							
								
								
									
										8
									
								
								internal/services/server_web/interface.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								internal/services/server_web/interface.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
package server_web
 | 
			
		||||
 | 
			
		||||
import "context"
 | 
			
		||||
 | 
			
		||||
type IServer interface {
 | 
			
		||||
	Run(ctx context.Context) error
 | 
			
		||||
	Stop(ctx context.Context) error
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								internal/services/server_web/server.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								internal/services/server_web/server.go
									
									
									
									
									
										Normal file
									
								
							@ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user