jouney continue

This commit is contained in:
Trần Duy Linh 2023-12-05 23:57:15 +07:00
parent 3869d24200
commit 0885214afc
3 changed files with 63 additions and 13 deletions

View File

@ -0,0 +1 @@
package controler

View File

@ -7,6 +7,7 @@ import (
"fmt"
"github.com/gorilla/mux"
"linhdevtran99/rest-api/models"
"linhdevtran99/rest-api/rest-api/routes"
"linhdevtran99/rest-api/rest-api/services"
"linhdevtran99/rest-api/utils"
"log"
@ -31,7 +32,7 @@ type ApiError struct {
type apiFunc func(http.ResponseWriter, *http.Request) error
// makeHTTPHandlerFn fn
func makeHTTPHandlerFn(fn apiFunc) http.HandlerFunc {
func MakeHTTPHandlerFn(fn apiFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if err := fn(w, r); err != nil {
if err := WriteJSON(w, http.StatusInternalServerError, ApiError{Error: err.Error()}); err != nil {
@ -58,22 +59,19 @@ func startMuxServer(s *APIServer, router *mux.Router) {
func (s *APIServer) Run() {
router := mux.NewRouter()
router.HandleFunc("/account/register", makeHTTPHandlerFn(s.registerNewAccount))
router.HandleFunc("/account", makeHTTPHandlerFn(s.handleAccount))
router.HandleFunc("/test", makeHTTPHandlerFn(s.testCheckUserAndPass))
//authRouter := router.PathPrefix("/").Subrouter()
routes.AuthRouterSetup(router)
//authRouter.HandleFunc("/account", MakeHTTPHandlerFn(s.AuthRoute))
//router.HandleFunc("/account/register", MakeHTTPHandlerFn(s.RegisterNewAccount))
//router.HandleFunc("/account/register", MakeHTTPHandlerFn(s.AuthRoute))
startMuxServer(s, router)
}
func (s *APIServer) registerNewAccount(w http.ResponseWriter, r *http.Request) error {
if r.Method == http.MethodGet {
fmt.Println("API Route Healthy")
}
return nil
}
func (s *APIServer) testCheckUserAndPass(w http.ResponseWriter, r *http.Request) error {
func (s *APIServer) AuthRoute(w http.ResponseWriter, r *http.Request) error {
w.Header().Set("Content-Type", "application/json")
client := utils.MongoDB

51
rest-api/routes/auth.go Normal file
View File

@ -0,0 +1,51 @@
package routes
import (
"encoding/json"
"fmt"
"github.com/gorilla/mux"
"net/http"
)
type AuthRouter struct{}
func WriteJSON(w http.ResponseWriter, status int, v any) error {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(status)
return json.NewEncoder(w).Encode(v)
}
type ApiError struct {
Error string
}
type apiFunc func(http.ResponseWriter, *http.Request) error
func MakeHTTPHandlerFn(fn apiFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if err := fn(w, r); err != nil {
if err := WriteJSON(w, http.StatusInternalServerError, ApiError{Error: err.Error()}); err != nil {
fmt.Print(err)
}
}
}
}
func RegisterNewAccount(w http.ResponseWriter, r *http.Request) error {
if r.Method == http.MethodGet {
fmt.Println("API Route Healthy")
}
if r.Method == http.MethodPost {
fmt.Println("method Post")
}
return nil
}
func AuthRouterSetup(router *mux.Router) {
authRouter := router.PathPrefix("/account").Subrouter()
authRouter.Handle("/register", MakeHTTPHandlerFn(RegisterNewAccount)).Methods("GET")
linh := authRouter.Handle("/register", MakeHTTPHandlerFn(RegisterNewAccount)).GetError()
fmt.Println(linh)
}