implement message updates
This commit is contained in:
30
api/db.go
30
api/db.go
@@ -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)
|
||||
|
Reference in New Issue
Block a user