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 }