initial commit
This commit is contained in:
commit
85d50ee958
26 files changed
+2146
No files matched your search
@@ -0,0 +1,47 @@
|
||||
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)
|
||||
}
|
||||
Reference in new issue
Block a user