Files
up_go/api/FileDate.go
T
2026-03-19 14:07:10 +07:00

48 lines
1.5 KiB
Go

package api
import (
"bufio"
"encoding/json"
"net/http"
"os"
"path/filepath"
)
// handleFiledate обрабатывает HTTP-запрос для получения даты файла (версии)
func FileDate(w http.ResponseWriter, r *http.Request) {
var MOUNT_POINT = os.Getenv("MOUNT_POINT")
// Получаем параметр "file" из строки запроса
filename := r.URL.Query().Get("file")
if filename == "" {
http.Error(w, `{"error":"Missing file parameter"}`, http.StatusBadRequest)
return
}
// Формируем путь к файлу версии: <mount_point>/<filename>.version
versionPath := filepath.Join(MOUNT_POINT, filename+".version")
// Пытаемся прочитать первую строку из файла версии
dateStr := ""
f, err := os.Open(versionPath)
if err == nil {
defer f.Close()
scanner := bufio.NewScanner(f)
if scanner.Scan() {
dateStr = scanner.Text() // считываем строку без символа новой строки
}
// Ошибки сканера игнорируем (как в C)
}
// Если файл не существует или другая ошибка — оставляем dateStr пустой
// Формируем JSON-ответ
response := map[string]interface{}{
"status": "success",
"date": dateStr,
"filename": filename,
}
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(response)
}