package main import ( "database/sql" "fmt" "log" "gitea.michaelthomson.dev/mthomson/habits/internal/migrate" "gitea.michaelthomson.dev/mthomson/habits/internal/models" repositories "gitea.michaelthomson.dev/mthomson/habits/internal/repositories/todo" ) func main() { db, err := sql.Open("sqlite3", "./habits.db") if err != nil { log.Fatal("Failed to open db pool") } defer db.Close() // run migrations migrate.Migrate(db); repo := repositories.NewSqliteTodoRepository(db) // create todo newTodo := &models.Todo{Name: "clean dishes", Done: false} err = repo.Create(newTodo) if err != nil { log.Fatal(err) } fmt.Printf("id of created todo: %d\n", newTodo.Id) // update todo newTodo.Done = true err = repo.Update(newTodo) if err != nil { log.Fatal(err) } fmt.Printf("todo is now done: %t\n", newTodo.Done) // delete todo err = repo.Delete(newTodo.Id) if err != nil { log.Fatal(err) } // get todo _, err = repo.GetById(newTodo.Id) if err != nil { log.Fatal(err) } }