fix: 503 при сбое GetScan вместо ложного 404 scan not found

- Store.GetScan возвращает (job, ok, error); Postgres отдаёт err при ошибке БД/JSON

- API: getScanOrWriteError → 503 scan storage temporarily unavailable

- Web UI: понятное сообщение для HTTP 503 при опросе скана

Made-with: Cursor
This commit is contained in:
PTah
2026-04-13 15:38:04 +10:00
parent 6ad59c9990
commit 0086302605
5 changed files with 74 additions and 45 deletions
+4 -3
View File
@@ -61,7 +61,8 @@ type ScanUpdate struct {
type Store interface {
CreateScan(CreateScanRequest) (ScanJob, error)
GetScan(id string) (ScanJob, bool)
// GetScan: при found==false и err==nil записи нет; err!=nil — сбой хранилища (например БД).
GetScan(id string) (ScanJob, bool, error)
ListScans(limit int) []ScanJob
UpdateScan(id string, update ScanUpdate) (ScanJob, bool)
SaveHostResult(scanID string, host HostResult) error
@@ -195,11 +196,11 @@ func (s *MemoryStore) CreateScan(req CreateScanRequest) (ScanJob, error) {
return job, nil
}
func (s *MemoryStore) GetScan(id string) (ScanJob, bool) {
func (s *MemoryStore) GetScan(id string) (ScanJob, bool, error) {
s.mu.RLock()
job, ok := s.jobs[id]
s.mu.RUnlock()
return job, ok
return job, ok, nil
}
func (s *MemoryStore) ListScans(limit int) []ScanJob {