all repos — go-lift @ main

Lightweight workout tracker prototype..

src/database/data.go (view raw)

 1package database
 2
 3import (
 4	"log"
 5)
 6
 7var defaultUserList = []User{{Name: "Admin"}}
 8
 9// CheckInitialData ensures that all necessary initial data is in the database
10func (db *Database) CheckInitialData() (err error) {
11	err = db.ensureExerciseData()
12	if err != nil {
13		return
14	}
15
16	err = db.ensureUserData()
17	if err != nil {
18		return
19	}
20
21	log.Println("Initial data verification complete")
22	return
23}
24
25// ensureExerciseData checks if exercise data exists and adds it if not
26func (db *Database) ensureExerciseData() error {
27	// Check if exercise data already exists
28	var count int64
29	if err := db.Model(&Exercise{}).Count(&count).Error; err != nil {
30		return err
31	}
32
33	// If no exercise data, insert the initial data
34	if count == 0 {
35		log.Println("Adding initial exercise data")
36		db.UpdateExercises()
37	}
38
39	return nil
40}
41
42// ensureUserData checks if user data exists and adds it if not
43func (db *Database) ensureUserData() error {
44	// Check if user data already exists
45	var count int64
46	if err := db.Model(&User{}).Count(&count).Error; err != nil {
47		return err
48	}
49
50	// If no user data, insert the initial data
51	if count == 0 {
52		log.Println("Adding initial user data")
53		for _, user := range defaultUserList {
54			if err := db.Create(&user).Error; err != nil {
55				return err
56			}
57		}
58	}
59
60	return nil
61}