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 } // Формируем путь к файлу версии: /.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) }