First query setup

multiple endpoint setup
This commit is contained in:
darius 2024-02-15 10:04:05 +01:00
parent e1c3c5c8ee
commit 13358f66b6
5 changed files with 56 additions and 7 deletions

View File

@ -1,8 +1,6 @@
package handler package handler
import ( import "net/http"
"net/http"
)
func CatchAllHandler(w http.ResponseWriter, r *http.Request) { func CatchAllHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusGone) w.WriteHeader(http.StatusGone)

View File

@ -1 +1,25 @@
package handler package handler
import (
"context"
"net/http"
"portfolio-backend/database/query"
)
func CreateUser(w http.ResponseWriter, r *http.Request) {
_, err := w.Write([]byte("test2"))
if err != nil {
InternalServerErrorHandler(w, r)
}
}
func GetUser(w http.ResponseWriter, r *http.Request) {
user, err := query.GetUser(context.Background())
if err != nil {
return
}
_, err = w.Write([]byte(r.PathValue(user.Name)))
if err != nil {
InternalServerErrorHandler(w, r)
}
}

View File

@ -10,6 +10,8 @@ import (
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
) )
var DBclient *ent.Client
func DB() { func DB() {
err := godotenv.Load() err := godotenv.Load()
@ -26,4 +28,6 @@ func DB() {
if err := client.Schema.Create(context.Background()); err != nil { if err := client.Schema.Create(context.Background()); err != nil {
log.Fatalf("failed creating schema resources: %v", err) log.Fatalf("failed creating schema resources: %v", err)
} }
DBclient = client
} }

View File

@ -0,0 +1,24 @@
package query
import (
"context"
"fmt"
"log"
"portfolio-backend/database"
"portfolio-backend/database/ent"
"portfolio-backend/database/ent/user"
)
func GetUser(ctx context.Context) (*ent.User, error) {
u, err := database.DBclient.User.
Query().
Where(user.Name("a8m")).
// `Only` fails if no user found,
// or more than 1 user returned.
Only(ctx)
if err != nil {
return nil, fmt.Errorf("failed querying user: %w", err)
}
log.Println("user returned: ", u)
return u, nil
}

View File

@ -2,9 +2,8 @@ package main
import ( import (
"net/http" "net/http"
"portfolio-backend/database"
"portfolio-backend/api/handler" "portfolio-backend/api/handler"
"portfolio-backend/database"
) )
func main() { func main() {
@ -18,8 +17,8 @@ func main() {
// Register the routes and handlers // Register the routes and handlers
mux.HandleFunc("/", handler.CatchAllHandler) mux.HandleFunc("/", handler.CatchAllHandler)
mux.HandleFunc("/test", handler.TestHandler) mux.HandleFunc("POST /user}", handler.CreateUser)
mux.HandleFunc("/test2", handler.Test2Handler) mux.HandleFunc("GET /user/{id}", handler.GetUser)
// Run the server // Run the server
http.ListenAndServe(":4002", mux) http.ListenAndServe(":4002", mux)