Compare commits

2 Commits
tmp ... main

Author SHA1 Message Date
807c42061b merge tmp to main 2024-03-24 19:53:52 +00:00
be28d18723 lot of breaking changes, checking in before stepping away 2024-03-03 16:08:12 +00:00
5 changed files with 43 additions and 14 deletions

View File

@@ -41,9 +41,9 @@ type Box struct {
// joining tables and derivative data types // joining tables and derivative data types
type BoxItem struct { type BoxItem struct {
ID int ID int
BoxID int BoxID int
ItemID int ItemID int
} }
type BoxItemWithItemInfo struct { type BoxItemWithItemInfo struct {

View File

@@ -58,12 +58,12 @@ func GetSeedData() (items []Item, boxes []Box, boxitems []BoxItem) {
func CreateTables(client *sql.DB) (int64, error) { func CreateTables(client *sql.DB) (int64, error) {
script, err := os.ReadFile("/home/mikayla/go/go-htmx-tailwind-example/db/seed.sql") script, err := os.ReadFile("/home/mikayla/go/go-htmx-tailwind-example/db/seed.sql")
if err != nil { if err != nil {
panic(err) return -1, err
} }
result, err := client.Exec(string(script)) result, err := client.Exec(string(script))
if err != nil { if err != nil {
panic(err) return -1, err
} }
return result.RowsAffected() return result.RowsAffected()
@@ -86,6 +86,11 @@ func SeedDB() (int64, error) {
for i := range(items) { for i := range(items) {
_, err := PostItem(items[i]) _, err := PostItem(items[i])
if err != nil { if err != nil {
// ignore unique constraint violations and continue
if err.Error() == "UNIQUE constraint failed: items.Name" {
continue
}
return -1, err return -1, err
} }
insertCount++ insertCount++
@@ -94,6 +99,11 @@ func SeedDB() (int64, error) {
for i := range(boxes) { for i := range(boxes) {
_, err := PostBox(boxes[i]) _, err := PostBox(boxes[i])
if err != nil { if err != nil {
// ignore unique constraint violations and continue
if err.Error() == "UNIQUE constraint failed: boxes.Name" {
continue
}
return -1, err return -1, err
} }
insertCount++ insertCount++

View File

@@ -31,10 +31,14 @@ func main() {
//exit process immediately upon sigterm //exit process immediately upon sigterm
handleSigTerms() handleSigTerms()
db.SeedDB() i, err := db.SeedDB()
if err != nil {
panic(err)
}
fmt.Printf("seeded db with %d records\n", i)
//parse templates //parse templates
var err error
html, err = web.TemplateParseFSRecursive(templateFS, ".html", true, nil) html, err = web.TemplateParseFSRecursive(templateFS, ".html", true, nil)
if err != nil { if err != nil {
panic(err) panic(err)

View File

@@ -23,13 +23,13 @@ func Items(_html *template.Template) *ItemActions {
html = _html html = _html
return &ItemActions{ return &ItemActions{
Get: Get, Get: Get,
GetAll: GetAllItems, GetAll: GetAllItems,
Edit: EditItem, Edit: EditItem,
Delete: Delete, Delete: Delete,
Save: Put, Save: Put,
Post: Post, Post: Post,
Add: Add, Add: Add,
} }
} }

15
util/main.go Normal file
View File

@@ -0,0 +1,15 @@
package util
import (
"net/http"
"strconv"
"strings"
)
func GetIDFromPath(r *http.Request) (id int, err error) {
path := r.URL.Path
segments := strings.Split(path, "/")
last := segments[len(segments)-1]
id, err = strconv.Atoi(last)
return
}