all repos — go-lift @ 092e7440440b8459d82fb90c05c005f9f38e3c51

Lightweight workout tracker prototype..

src/database/data.go (view raw)

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