Files
chatservice_concept/api/db.go

73 lines
1.7 KiB
Go

package api
import (
"errors"
"time"
"git.dubyatp.xyz/chat-api-server/db"
)
func dbGetUser(id int64) (*User, error) {
data := db.ExecDB("users")
if data == nil {
return nil, errors.New("failed to load users database")
}
users := data["users"].([]interface{})
for _, u := range users {
user := u.(map[string]interface{})
if int64(user["ID"].(float64)) == id {
return &User{
ID: int64(user["ID"].(float64)),
Name: user["Name"].(string),
}, nil
}
}
return nil, errors.New("User not found")
}
func dbGetMessage(id string) (*Message, error) {
data := db.ExecDB("messages")
if data == nil {
return nil, errors.New("failed to load messages database")
}
messages := data["messages"].([]interface{})
for _, m := range messages {
message := m.(map[string]interface{})
if message["ID"].(string) == id {
return &Message{
ID: message["ID"].(string),
UserID: int64(message["UserID"].(float64)),
Body: message["Body"].(string),
Timestamp: time.Time(time.Now()),
}, nil
}
}
return nil, errors.New("Message not found")
}
func dbGetAllMessages() ([]*Message, error) {
data := db.ExecDB("messages")
//println(data)
if data == nil {
return nil, errors.New("failed to load messages database")
}
messages := data["messages"].([]interface{})
var result []*Message
for _, m := range messages {
message := m.(map[string]interface{})
result = append(result, &Message{
ID: message["ID"].(string),
UserID: int64(message["UserID"].(float64)),
Body: message["Body"].(string),
Timestamp: time.Time(time.Now()),
})
}
if len(result) == 0 {
return nil, errors.New("no messages found")
}
return result, nil
}