package database

import (
	"database/sql"
	"encoding/json"
	"log"
	"os"

	"github.com/go-sql-driver/mysql"
)

func readConfigFromFile(filename string) mysql.Config {
	bytes, err := os.ReadFile(filename)
	if err != nil {
		log.Fatal(err)
	}

	var config mysql.Config
	err = json.Unmarshal(bytes, &config)
	if err != nil {
		log.Fatal(err)
	}

	return config
}

func GetDatabaseFromConfig(filename string) *sql.DB {
	config := readConfigFromFile(filename)

	db, err := sql.Open("mysql", config.FormatDSN())

	if err != nil {
		log.Fatal(err)
	}
	if err = db.Ping(); err != nil {
		log.Fatal(err)
	}

	return db
}
