1
0
Fork 0

Compare commits

...

3 Commits

3 changed files with 23 additions and 24 deletions

View File

@ -128,31 +128,31 @@ func (d *SQLiteDatabase) Entries(page, pageSize int64) (entries []*guestbook.Ent
for rows.Next() {
var entry guestbook.Entry
var entry_created string
var reply_created sql.NullString
var reply_message sql.NullString
var entry_created int64
var reply_created int64
var reply_message string
if err = rows.Scan(
&entry.ID, &entry_created, &entry.Name,
&entry.Message, &entry.Website,
&entry.Message, &entry.Website, &entry.HideWebsite,
&reply_created, &reply_message); err != nil {
return
}
entry.Created, err = time.Parse(guestbook.DateFormat, entry_created)
entry.Created = time.Unix(entry_created, 0)
if err != nil {
return
}
if reply_message.Valid /* reply_created is also valid if reply is */ {
date, err := time.Parse(guestbook.DateFormat, reply_created.String)
if reply_message != "" {
if err != nil {
return nil, err
}
entry.Reply = &guestbook.Reply{
ID: entry.ID,
Created: date,
Message: reply_message.String}
ID: entry.ID,
// Created: date,
Created: time.Unix(reply_created, 0),
Message: reply_message}
}
entries = append(entries, &entry)
@ -189,7 +189,7 @@ func (d *SQLiteDatabase) NewEntry(entry *guestbook.Entry) error {
}
defer tx.Rollback()
r, err := tx.Stmt(stmtNewEntry).Exec(entry.Created.Format(guestbook.DateFormat), entry.Name, entry.Message,
r, err := tx.Stmt(stmtNewEntry).Exec(entry.Created.UTC().Unix(), entry.Name, entry.Message,
entry.Website, entry.HideWebsite)
if err != nil {
return err
@ -244,7 +244,7 @@ func (d *SQLiteDatabase) NewReply(reply *guestbook.Reply) error {
}
defer tx.Rollback()
_, err = tx.Stmt(stmtNewReply).Exec(reply.ID, reply.Created.Format(guestbook.DateFormat), reply.Message)
_, err = tx.Stmt(stmtNewReply).Exec(reply.ID, reply.Created.UTC().Unix(), reply.Message)
if err != nil {
return err
}

View File

@ -3,13 +3,10 @@ SELECT
`entry`.`created`,
`entry`.`name`,
`entry`.`message`,
CASE
WHEN `entry`.`hide_website` IS FALSE
THEN `entry`.`website`
ELSE ''
END AS `website`,
`reply`.`created` AS `reply_created`,
`reply`.`message` AS `reply_message`
`entry`.`website`,
`entry`.`hide_website`,
COALESCE(`reply`.`created`, 0) AS `reply_created`,
COALESCE(`reply`.`message`, '') AS `reply_message`
FROM `entry`
LEFT JOIN `reply`
ON `entry`.`entry_id` = `reply`.`entry_id`

View File

@ -1,19 +1,21 @@
-- SQLite3
CREATE TABLE IF NOT EXISTS `entry` (
`entry_id` INTEGER PRIMARY KEY NOT NULL,
`created` TEXT NOT NULL,
`entry_id` INTEGER NOT NULL,
`created` INTEGER NOT NULL,
`name` TEXT NOT NULL,
`message` TEXT NOT NULL,
`website` TEXT NOT NULL,
`hide_website` INTEGER NOT NULL DEFAULT TRUE);
`hide_website` INTEGER NOT NULL DEFAULT TRUE,
PRIMARY KEY (`entry_id`) );
CREATE INDEX IF NOT EXISTS `entry_created_idx`
ON `entry` (`created`);
CREATE TABLE IF NOT EXISTS `reply` (
`entry_id` INTEGER PRIMARY KEY NOT NULL,
`created` TEXT NOT NULL,
`entry_id` INTEGER NOT NULL,
`created` INTEGER NOT NULL,
`message` TEXT NOT NULL,
PRIMARY KEY (`entry_id`),
FOREIGN KEY (`entry_id`)
REFERENCES `entry` (`entry_id`)
ON DELETE CASCADE