Change RBL test to return map of ips

This commit is contained in:
nemunaire 2025-10-21 14:42:18 +07:00
commit 954a9d705e
4 changed files with 113 additions and 72 deletions

View file

@ -190,21 +190,29 @@ func (r *ReportGenerator) GenerateReport(testID uuid.UUID, results *AnalysisResu
}
}
// Add blacklist checks
// Add blacklist checks as a map of IP -> array of BlacklistCheck
if results.RBL != nil && len(results.RBL.Checks) > 0 {
blacklistChecks := make([]api.BlacklistCheck, 0, len(results.RBL.Checks))
for _, check := range results.RBL.Checks {
blCheck := api.BlacklistCheck{
Ip: check.IP,
Rbl: check.RBL,
Listed: check.Listed,
blacklistMap := make(map[string][]api.BlacklistCheck)
// Convert internal RBL checks to API format
for ip, rblChecks := range results.RBL.Checks {
apiChecks := make([]api.BlacklistCheck, 0, len(rblChecks))
for _, check := range rblChecks {
blCheck := api.BlacklistCheck{
Rbl: check.RBL,
Listed: check.Listed,
}
if check.Response != "" {
blCheck.Response = &check.Response
}
apiChecks = append(apiChecks, blCheck)
}
if check.Response != "" {
blCheck.Response = &check.Response
}
blacklistChecks = append(blacklistChecks, blCheck)
blacklistMap[ip] = apiChecks
}
if len(blacklistMap) > 0 {
report.Blacklists = &blacklistMap
}
report.Blacklists = &blacklistChecks
}
// Add raw headers