Skip to content

Commit a9ce47d

Browse files
committed
feat: add normalized publiccode.yml to validation response
Reply with a normalized canonical equivalent publiccode.yml when validation succeeds so clients don't need to deal with deprecated fields, aliases or renames on their side. Fix #42.
1 parent 7ec5032 commit a9ce47d

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

internal/handlers/validate.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ func NewPubliccodeymlValidatorHandler() *PubliccodeymlValidatorHandler {
2929
}
3030

3131
func (vh *PubliccodeymlValidatorHandler) Query(ctx *fiber.Ctx) error {
32+
var normalized *string
33+
3234
valid := true
3335
parser := vh.parser
3436

@@ -51,7 +53,7 @@ func (vh *PubliccodeymlValidatorHandler) Query(ctx *fiber.Ctx) error {
5153

5254
reader := bytes.NewReader(ctx.Body())
5355

54-
_, err := parser.ParseStream(reader)
56+
parsed, err := parser.ParseStream(reader)
5557
if err != nil {
5658
var validationResults publiccodeParser.ValidationResults
5759
if errors.As(err, &validationResults) {
@@ -66,5 +68,13 @@ func (vh *PubliccodeymlValidatorHandler) Query(ctx *fiber.Ctx) error {
6668
}
6769
}
6870

69-
return ctx.JSON(fiber.Map{"valid": valid, "results": results})
71+
if valid && parsed != nil {
72+
yaml, err := parsed.ToYAML()
73+
if err == nil {
74+
s := string(yaml)
75+
normalized = &s
76+
}
77+
}
78+
79+
return ctx.JSON(fiber.Map{"valid": valid, "results": results, "normalized": normalized})
7080
}

0 commit comments

Comments
 (0)