Create models and modify the handler to take a struct
This commit is contained in:
parent
7e0df51d88
commit
30976a55e8
@ -1,6 +1,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"myapp/internal/models"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
@ -46,7 +47,20 @@ func (app *application) PaymentSucceeded(w http.ResponseWriter, r *http.Request)
|
||||
|
||||
// ChargeOnce displays the page to buy one widget
|
||||
func (app *application) ChargeOnce(w http.ResponseWriter, r *http.Request) {
|
||||
if err := app.renderTemplate(w, r, "buy-once", nil, "stripe-js"); err != nil {
|
||||
widget := models.Widget{
|
||||
ID: 1,
|
||||
Name: "Custom Widget",
|
||||
Description: "Paris 2024",
|
||||
InventoryLevel: 10,
|
||||
Price: 1000,
|
||||
}
|
||||
|
||||
data := make(map[string]interface{})
|
||||
data["widget"] = widget
|
||||
|
||||
if err := app.renderTemplate(w, r, "buy-once", &templateData{
|
||||
Data: data,
|
||||
}, "stripe-js"); err != nil {
|
||||
app.errorLog.Println(err)
|
||||
}
|
||||
}
|
||||
|
34
internal/models/models.go
Normal file
34
internal/models/models.go
Normal file
@ -0,0 +1,34 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"time"
|
||||
)
|
||||
|
||||
// DBModel is the type for database connection values
|
||||
type DBModel struct {
|
||||
DB *sql.DB
|
||||
}
|
||||
|
||||
// Models is the wrapper for all models
|
||||
type Models struct {
|
||||
DB DBModel
|
||||
}
|
||||
|
||||
// NewModels returns a model type with database connection pool
|
||||
func NewModels(db *sql.DB) Models {
|
||||
return Models{
|
||||
DB: DBModel{DB: db},
|
||||
}
|
||||
}
|
||||
|
||||
// Widget is the type for all widgets
|
||||
type Widget struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
InventoryLevel int `json:"inventory_level"`
|
||||
Price int `json:"price"`
|
||||
CreatedAt time.Time `json:"-"`
|
||||
UpdatedAt time.Time `json:"-"`
|
||||
}
|
Loading…
Reference in New Issue
Block a user