From 421a7232e7f0436705b9f2819cd51227ac6cd821 Mon Sep 17 00:00:00 2001 From: horus Date: Wed, 17 Apr 2019 12:00:48 +0200 Subject: v0.1 --- database.go | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) (limited to 'database.go') diff --git a/database.go b/database.go index 7d56018..fda19f9 100644 --- a/database.go +++ b/database.go @@ -1,35 +1,32 @@ package main -import ( -/* - "database/sql" - "fmt" - "strings" -*/ -) - func (app *App) createTables() error { + var err error + /** * Copied from schema.sql * TODO: Load this from the file itself. */ - query := ` + queries := []string{` CREATE TABLE IF NOT EXISTS platform ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) UNIQUE NOT NULL, url VARCHAR(255) UNIQUE NOT NULL ) CHARSET=utf8; - + `, + ` CREATE TABLE IF NOT EXISTS language ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) UNIQUE NOT NULL ) CHARSET=utf8; - + `, + ` CREATE TABLE IF NOT EXISTS update_period ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) UNIQUE NOT NULL ) CHARSET=utf8; - + `, + ` CREATE TABLE IF NOT EXISTS owner ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, @@ -37,7 +34,8 @@ CREATE TABLE IF NOT EXISTS owner ( platform INT NOT NULL, CONSTRAINT fk_owner_platform FOREIGN KEY (platform) REFERENCES platform(id) ) CHARSET=utf8; - + `, + ` CREATE TABLE IF NOT EXISTS entry ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, @@ -54,11 +52,13 @@ CREATE TABLE IF NOT EXISTS entry ( CONSTRAINT fk_entry_language FOREIGN KEY (language) REFERENCES language(id), CONSTRAINT fk_entry_period FOREIGN KEY (update_period) REFERENCES update_period(id) ) CHARSET=utf8; - ` + `} - _, err := app.DB.Exec(query) - if err != nil { - return err + for _, query := range queries { + _, err := app.DB.Exec(query) + if err != nil { + return err + } } /** @@ -141,7 +141,7 @@ func (app *App) SaveEntries(entries []Entry) error { ?, ?, ?, - ?, + ? ); ` stmt, err := app.DB.Prepare(query) @@ -157,6 +157,12 @@ func (app *App) SaveEntries(entries []Entry) error { if err != nil { continue } + + // Populates the owner struct with the correct id + e.Owner, err = app.GetOwnerID(e.Owner) + if err != nil { + continue + } _, err = stmt.Exec(e.Title, e.Synopsis, e.Owner.ID, e.Platform.ID, e.URL, e.Language.ID, e.Stars, e.UpdatePeriod.ID, app.Now) if err != nil { @@ -180,7 +186,7 @@ func (app *App) SaveOwner(owner Owner) error { NULL, ?, ?, - ?, + ? );` stmt, err := app.DB.Prepare(query) -- cgit v1.2.3