diff --git a/go.mod b/go.mod index b96aff1..1d90d61 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,5 @@ module github.com/sharkpick/blog go 1.18 + +require github.com/sharkpick/authentication v0.0.0-20220710222145-6cb8ef88eda3 // indirect diff --git a/go.sum b/go.sum index 91694bf..08fb7c4 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,4 @@ github.com/mattn/go-sqlite3 v1.14.9 h1:10HX2Td0ocZpYEjhilsuo6WWtUqttj2Kb0KtD86/KYA= github.com/mattn/go-sqlite3 v1.14.9/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/sharkpick/authentication v0.0.0-20220710222145-6cb8ef88eda3 h1:czQNe6fidSIEZfd05uwGfL/mKI729Y5A4sOm7REUjuM= +github.com/sharkpick/authentication v0.0.0-20220710222145-6cb8ef88eda3/go.mod h1:DyPxd3V2kLWWfA91tvLNpSf5UjQXxojU2TkROtJxbjY= diff --git a/schema.go b/schema.go new file mode 100644 index 0000000..6b7c1a2 --- /dev/null +++ b/schema.go @@ -0,0 +1,28 @@ +package blog + +import ( + "database/sql" + "fmt" + + "github.com/sharkpick/authentication" +) + +func GenerateBlogTable(db *sql.DB) error { + sql_string := `CREATE TABLE IF NOT EXISTS "` + BlogEntriesTable + `"( + "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "title" TEXT, + "body" TEXT, + "timestamp" TEXT NOT NULL, + "updated" TEXT, + "userid" integer NOT NULL, type int, + FOREIGN KEY(userid) REFERENCES "` + authentication.UsersTable + `"(id));` + prepared, err := db.Prepare(sql_string) + if err != nil { + return fmt.Errorf("GenerateBlogTable %w: %s", ErrUnableToPrepare, err) + } + _, err = prepared.Exec() + if err != nil { + return fmt.Errorf("GenerateBlogTable: %w: %s", ErrUnableToExecute, err) + } + return nil +}