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}