73 lines
1.7 KiB
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
|
|
}
|