diff --git a/comics.go b/comics.go index 162c7b4..da84ce2 100644 --- a/comics.go +++ b/comics.go @@ -22,6 +22,16 @@ var db *sql.DB = nil var mediaPath *string = nil var templatesPath *string = nil +const dbSquema string = ` +CREATE TABLE IF NOT EXISTS comic ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + datetime DATETIME DEFAULT CURRENT_TIMESTAMP, + title CHAR(50), + image CHAR(200), + description TEXT, + tags TEXT +);` + type Comic struct { ID int DateTime string @@ -55,18 +65,23 @@ func (e * Err) Error() string { return e.msg } -var NoSuchComicErr Err = Err{msg: "no such comic Found"} +var NoSuchComicErr Err = Err{msg: "no such comic found"} + +func (e * Err) With(i string) Err { + return Err{msg:fmt.Sprintf("%s with %s", e.msg, i)} +} func (c *Comic) readRow(db * sql.Rows) error { - return db.Scan(&c.DateTime, &c.Title, &c.Image, + return db.Scan(&c.ID, &c.DateTime, &c.Title, &c.Image, &c.Description, &c.Tags) } func getComic(id int) (*Comic, error) { c := new(Comic) + nferr := NoSuchComicErr.With(fmt.Sprintf("id \"%d\"", id)) if id < 0 { - return c, &NoSuchComicErr + return c, &nferr } comics, err := allComics() @@ -74,24 +89,16 @@ func getComic(id int) (*Comic, error) { return c, err } - if len(comics) <= id || id < 0 { - return c, &NoSuchComicErr + log.Println(comics) + + if len(comics) <= id { + return c, &nferr } *c = comics[id] return c, err } -const dbSquema string = ` -CREATE TABLE IF NOT EXISTS comic ( - id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, - datetime DATETIME DEFAULT CURRENT_TIMESTAMP, - title CHAR(50), - image CHAR(200), - description TEXT, - tags TEXT -);` - func readRows(rows *sql.Rows) ([]Comic, error) { comics := []Comic{} for rows.Next() { @@ -189,7 +196,7 @@ func comicView(w http.ResponseWriter, r * http.Request) { } context.Next = i - if i < (len(comics) - 1) { + if i < (len(comics)) { context.Next = i + 1 }