Coalesce nil additional emails to empty array

The MCP Profile schema declares additional_email_addresses as a
required, non-nullable array, but NewProfile passed the mail.Addrs
value through unchanged. A profile with no extra emails has a nil
slice, which marshals to JSON null and fails tool output validation
with "type: null, want array".

Default the nil slice to an empty mail.Addrs so the marshalled output
always honors the strict array schema.

Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Sacha Al Himdani
2026-06-16 12:44:41 +02:00
parent 8094e7cfd0
commit de26b889ff

View File

@@ -14,15 +14,23 @@
package types
import "go.probo.inc/probo/pkg/coredata"
import (
"go.probo.inc/probo/pkg/coredata"
"go.probo.inc/probo/pkg/mail"
)
func NewProfile(p *coredata.MembershipProfile) *Profile {
additionalEmailAddresses := p.AdditionalEmailAddresses
if additionalEmailAddresses == nil {
additionalEmailAddresses = mail.Addrs{}
}
return &Profile{
ID: p.ID,
OrganizationID: p.OrganizationID,
FullName: p.FullName,
EmailAddress: p.EmailAddress,
AdditionalEmailAddresses: p.AdditionalEmailAddresses,
AdditionalEmailAddresses: additionalEmailAddresses,
Kind: p.Kind,
Source: p.Source,
State: p.State,