Compare commits
3 Commits
c658b798aa
...
761b7626c9
Author | SHA1 | Date |
---|---|---|
Alexander Andreev | 761b7626c9 | |
Alexander Andreev | 6cfe0a7d8b | |
Alexander Andreev | 613f0c1616 |
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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`
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue