implement message updates

This commit is contained in:
2025-03-27 14:41:02 -04:00
parent b86ee0dac4
commit a7466e5c77
2 changed files with 40 additions and 1 deletions

View File

@@ -41,11 +41,21 @@ func dbGetMessage(id string) (*Message, error) {
if err != nil {
return nil, fmt.Errorf("failed to parse timestamp: %v", err)
}
editedStr, ok := message["Edited"].(string)
var edited time.Time
if ok && editedStr != "" {
var err error
edited, err = time.Parse(time.RFC3339, editedStr)
if err != nil {
return nil, fmt.Errorf("failed to parse edited timestamp: %v", err)
}
}
return &Message{
ID: message["ID"].(string),
UserID: int64(message["UserID"].(float64)),
Body: message["Body"].(string),
Timestamp: timestamp,
Edited: edited,
}, nil
}
}
@@ -67,11 +77,21 @@ func dbGetAllMessages() ([]*Message, error) {
if err != nil {
return nil, fmt.Errorf("failed to parse timestamp: %v", err)
}
editedStr, ok := message["Edited"].(string)
var edited time.Time
if ok && editedStr != "" {
var err error
edited, err = time.Parse(time.RFC3339, editedStr)
if err != nil {
return nil, fmt.Errorf("failed to parse edited timestamp: %v", err)
}
}
result = append(result, &Message{
ID: message["ID"].(string),
UserID: int64(message["UserID"].(float64)),
Body: message["Body"].(string),
Timestamp: timestamp,
Edited: edited,
})
}
if len(result) == 0 {
@@ -111,11 +131,19 @@ func dbAddMessage(message *Message) error {
return fmt.Errorf("messages data is in an unexpected format")
}
var edited interface{}
if message.Edited.IsZero() {
edited = nil // Set to nil if Edited is the zero value
} else {
edited = message.Edited.Format(time.RFC3339)
}
dbMessage := map[string]interface{}{
"ID": message.ID,
"UserID": message.UserID, // JSON numbers are float64
"Body": message.Body,
"Timestamp": message.Timestamp,
"Timestamp": message.Timestamp.Format(time.RFC3339),
"Edited": edited,
}
messages = append(messages, dbMessage)