From a4a7db2dd76ae57bd6fe6c780eed9767ff0f5321 Mon Sep 17 00:00:00 2001 From: serr Date: Sat, 5 Apr 2025 20:04:28 +0300 Subject: [PATCH] mvc upgrade --- mvc/controllers/main_page.go | 2 +- mvc/models/app.go | 8 ++++---- mvc/models/main_page.go | 7 ++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/mvc/controllers/main_page.go b/mvc/controllers/main_page.go index 1e78e3c..6f4b566 100644 --- a/mvc/controllers/main_page.go +++ b/mvc/controllers/main_page.go @@ -13,7 +13,7 @@ func MainPageHandler(a *models.App) http.HandlerFunc { // Страничка рендерится только если ее нет в кэше pageData, ok := a.Cache.Get(models.MainPageTmplName) if !ok { - pageData, err = a.RenderMainPage() + pageData, err = models.RenderMainPage(a.Templates, a.Version) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return diff --git a/mvc/models/app.go b/mvc/models/app.go index b4a2fcf..7b5515d 100644 --- a/mvc/models/app.go +++ b/mvc/models/app.go @@ -14,16 +14,16 @@ type App struct { Config *Config // Конфиг Templates *template.Template // Шаблоны страниц Cache *Cache // Кэш (отрендеренные странички) - StartTime int64 // Время запуска + Version int64 // Время запуска } // Инициализирует приложение func AppInit(configPath string) (*App, error) { a := &App{ - StartTime: time.Now().Unix(), - Config: ConfigInit(), - Cache: CacheInit(), + Version: time.Now().Unix(), + Config: ConfigInit(), + Cache: CacheInit(), } // Загрузка конфига diff --git a/mvc/models/main_page.go b/mvc/models/main_page.go index 63ee2d7..b603ae6 100644 --- a/mvc/models/main_page.go +++ b/mvc/models/main_page.go @@ -2,6 +2,7 @@ package models import ( "bytes" + "html/template" "time" ) @@ -10,15 +11,15 @@ const ( MainPageTmplName = "main_page.gohtml" ) -func (a *App) RenderMainPage() ([]byte, error) { +func RenderMainPage(templates *template.Template, version int64) ([]byte, error) { var pageData bytes.Buffer context := map[string]any{ - "version": a.StartTime, + "version": version, "renderingTimestamp": time.Now().Unix(), } - if err := a.Templates.ExecuteTemplate(&pageData, MainPageTmplName, context); err != nil { + if err := templates.ExecuteTemplate(&pageData, MainPageTmplName, context); err != nil { return nil, err }