calapi/cmd/warmup.go
2023-02-24 22:17:45 +01:00

74 lines
1.8 KiB
Go

package cmd
import (
"fmt"
"github.com/Unkn0wnCat/calapi/internal/database"
"github.com/Unkn0wnCat/calapi/internal/db_model"
"log"
"time"
"github.com/spf13/cobra"
)
// warmupCmd represents the warmup command
var warmupCmd = &cobra.Command{
Use: "warmup",
Short: "Fills the database with random trash data - used for testing.",
RunE: func(cmd *cobra.Command, args []string) error {
err := database.Initialize()
if err != nil {
return err
}
defer database.Shutdown()
now := time.Now()
eventBox := db_model.BoxForEvent(database.ObjectBox)
calendarBox := db_model.BoxForCalendar(database.ObjectBox)
calendar1 := db_model.Calendar{
Name: "Caledar 1",
Description: "This is a calendar used for testing database functionality. It contains daily events for a year starting " + now.String(),
DateCreated: now,
}
calendar2 := db_model.Calendar{
Name: "Caledar 2",
Description: "This is a calendar used for testing database functionality.",
DateCreated: now,
}
day := time.Date(now.Year(), now.Month(), now.Day(), 12, 30, 00, 00, now.Location())
for i := 0; i <= 365; i++ {
event := db_model.Event{
Title: fmt.Sprintf("Daily Test %03d", i),
Description: fmt.Sprintf("This is a test event. %03d/365", i),
Calendar: &calendar1,
LocationLat: 0,
LocationLon: 0,
LocationName: "",
LocationAddr: "",
Start: day,
End: day.Add(time.Hour),
DateCreated: now,
}
id, err := eventBox.Put(&event)
if err != nil {
return err
}
log.Printf("successfully inserted event %d", id)
day = day.Add(time.Hour * 24)
}
id, err := calendarBox.Put(&calendar2)
log.Printf("successfully inserted calendar %d", id)
return nil
},
}
func init() {
rootCmd.AddCommand(warmupCmd)
}