create fake database until real DB is implemented

This commit is contained in:
2024-12-30 16:31:48 -05:00
parent cad40565b0
commit d1e77ad4e2
5 changed files with 145 additions and 7 deletions

View File

@@ -1,21 +1,71 @@
package api
import "errors"
import (
"errors"
"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 {
if u.ID == id {
return u, nil
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) {
for _, a := range messages {
if a.ID == id {
return a, nil
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: int64(message["Timestamp"].(float64)),
}, 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: int64(message["Timestamp"].(float64)),
})
}
if len(result) == 0 {
return nil, errors.New("no messages found")
}
return result, nil
}

View File

@@ -43,7 +43,12 @@ func GetMessage(w http.ResponseWriter, r *http.Request) {
}
func ListMessages(w http.ResponseWriter, r *http.Request) {
if err := render.RenderList(w, r, NewMessageListResponse(messages)); err != nil {
dbMessages, err := dbGetAllMessages()
if err != nil {
render.Render(w, r, ErrRender(err))
return
}
if err := render.RenderList(w, r, NewMessageListResponse(dbMessages)); err != nil {
render.Render(w, r, ErrRender(err))
return
}