Files
Hyperia/server/db/db.go
2025-09-22 13:05:06 -05:00

67 lines
1.2 KiB
Go

package db
import (
"encoding/json"
"errors"
"fmt"
"log"
"os"
"github.com/alexedwards/argon2id"
)
var DB map[string]interface{}
type GetService struct{}
var Get = GetService{}
func (g GetService) User(id string) (map[string]interface{}, error) {
raw, ok := DB[id]
if !ok {
return nil, errors.New("user not found")
}
userData, ok := raw.(map[string]interface{})
log.Println(userData)
if !ok {
return nil, errors.New("user data is not in expected format")
}
return userData, nil
}
func InitDB() error {
file, err := os.Open("../db/users.json")
if err != nil {
fmt.Println("Error opening file:", err)
return errors.New("Failed to read db")
}
defer file.Close()
var data interface{}
err = json.NewDecoder(file).Decode(&data)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return errors.New("Failed to decode db")
}
result, ok := data.(map[string]interface{})
if !ok {
fmt.Println("Data is not a JSON object (map)")
return errors.New("Db is in the wrong format")
}
DB = result
// Use default recommended parameters
hash, err := argon2id.CreateHash("hunter2", argon2id.DefaultParams)
if err != nil {
log.Fatal(err)
}
fmt.Println("Argon2 Hash:")
fmt.Println(hash)
return nil
}