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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user