Files
Hyperia/server/db/db.go
metacryst faf2041b7f signins
2025-09-30 17:44:39 -05:00

67 lines
1.3 KiB
Go

package db
import (
"encoding/json"
"errors"
"fmt"
"log"
"os"
"github.com/alexedwards/argon2id"
)
type User struct {
Email string `json:"email"`
Password string `json:"password"`
// Other fields as needed
}
var DB map[string]User
type GetService struct{}
var Get = GetService{}
func (g GetService) UserByEmail(email string) (map[string]interface{}, error) {
for key, value := range DB {
if value.Email == email {
log.Println("found")
return map[string]interface{}{
"key": key,
"email": value.Email,
"password": value.Password,
}, nil
}
fmt.Printf("Key: %s, Value: %v\n", key, value)
}
return nil, errors.New("user not found")
}
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 result map[string]User
err = json.NewDecoder(file).Decode(&result)
if err != nil {
fmt.Println("Error decoding JSON:", err)
return errors.New("failed to decode db")
}
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
}