48 lines
676 B
Go
48 lines
676 B
Go
package data
|
|
|
|
import (
|
|
"encoding/json"
|
|
"log"
|
|
"os"
|
|
"recipe-manager/models"
|
|
)
|
|
|
|
func readFile() *models.Recipe {
|
|
file, err := os.Open("data/data.json")
|
|
|
|
if err != nil {
|
|
log.Fatalf("Error when open file: %s", err)
|
|
return nil
|
|
}
|
|
|
|
defer file.Close()
|
|
|
|
var data *models.Recipe
|
|
|
|
err = json.NewDecoder(file).Decode(&data)
|
|
|
|
if err != nil {
|
|
log.Fatalf("Error when decode file: %s", err)
|
|
return nil
|
|
}
|
|
|
|
return data
|
|
}
|
|
|
|
type Data struct {
|
|
recipe *models.Recipe
|
|
}
|
|
|
|
func NewData() *Data {
|
|
return &Data{
|
|
recipe: readFile(),
|
|
}
|
|
}
|
|
|
|
func (d *Data) GetRecipe() models.Recipe {
|
|
return *d.recipe
|
|
}
|
|
|
|
func (d *Data) GetRecipe01() []models.Recipe01 {
|
|
return d.recipe.Recipe01
|
|
}
|