Merge RspamdSymbol into SpamTestDetail in OpenAPI spec
Add params field to SpamTestDetail, update RspamdResult.symbols to reference SpamTestDetail instead of the now-removed RspamdSymbol schema, and update Go code accordingly.
This commit is contained in:
parent
3c192f17fd
commit
5c104f3c99
3 changed files with 8 additions and 23 deletions
|
|
@ -926,6 +926,10 @@ components:
|
||||||
format: float
|
format: float
|
||||||
description: Score contribution of this test
|
description: Score contribution of this test
|
||||||
example: -1.9
|
example: -1.9
|
||||||
|
params:
|
||||||
|
type: string
|
||||||
|
description: Symbol parameters or options
|
||||||
|
example: "0.02"
|
||||||
description:
|
description:
|
||||||
type: string
|
type: string
|
||||||
description: Human-readable description of what this test checks
|
description: Human-readable description of what this test checks
|
||||||
|
|
@ -975,7 +979,7 @@ components:
|
||||||
symbols:
|
symbols:
|
||||||
type: object
|
type: object
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
$ref: '#/components/schemas/RspamdSymbol'
|
$ref: '#/components/schemas/SpamTestDetail'
|
||||||
description: Map of triggered rspamd symbols to their details
|
description: Map of triggered rspamd symbols to their details
|
||||||
example:
|
example:
|
||||||
BAYES_HAM:
|
BAYES_HAM:
|
||||||
|
|
@ -986,25 +990,6 @@ components:
|
||||||
type: string
|
type: string
|
||||||
description: Full rspamd report (raw X-Spamd-Result header)
|
description: Full rspamd report (raw X-Spamd-Result header)
|
||||||
|
|
||||||
RspamdSymbol:
|
|
||||||
type: object
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- score
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
description: Symbol name
|
|
||||||
example: "BAYES_HAM"
|
|
||||||
score:
|
|
||||||
type: number
|
|
||||||
format: float
|
|
||||||
description: Score contribution of this symbol
|
|
||||||
example: -1.9
|
|
||||||
params:
|
|
||||||
type: string
|
|
||||||
description: Symbol parameters or options
|
|
||||||
example: "0.02"
|
|
||||||
|
|
||||||
DNSResults:
|
DNSResults:
|
||||||
type: object
|
type: object
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ func (a *RspamdAnalyzer) AnalyzeRspamd(email *EmailMessage) *api.RspamdResult {
|
||||||
}
|
}
|
||||||
|
|
||||||
result := &api.RspamdResult{
|
result := &api.RspamdResult{
|
||||||
Symbols: make(map[string]api.RspamdSymbol),
|
Symbols: make(map[string]api.SpamTestDetail),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse X-Spamd-Result header (primary source for score, threshold, and symbols)
|
// Parse X-Spamd-Result header (primary source for score, threshold, and symbols)
|
||||||
|
|
@ -129,7 +129,7 @@ func (a *RspamdAnalyzer) parseSpamdResult(header string, result *api.RspamdResul
|
||||||
if len(matches) > 2 {
|
if len(matches) > 2 {
|
||||||
name := matches[1]
|
name := matches[1]
|
||||||
score, _ := strconv.ParseFloat(matches[2], 64)
|
score, _ := strconv.ParseFloat(matches[2], 64)
|
||||||
sym := api.RspamdSymbol{
|
sym := api.SpamTestDetail{
|
||||||
Name: name,
|
Name: name,
|
||||||
Score: float32(score),
|
Score: float32(score),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ func TestParseSpamdResult(t *testing.T) {
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
result := &api.RspamdResult{
|
result := &api.RspamdResult{
|
||||||
Symbols: make(map[string]api.RspamdSymbol),
|
Symbols: make(map[string]api.SpamTestDetail),
|
||||||
}
|
}
|
||||||
analyzer.parseSpamdResult(tt.header, result)
|
analyzer.parseSpamdResult(tt.header, result)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue