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
|
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 {
|
func NewProfile(p *coredata.MembershipProfile) *Profile {
|
||||||
|
additionalEmailAddresses := p.AdditionalEmailAddresses
|
||||||
|
if additionalEmailAddresses == nil {
|
||||||
|
additionalEmailAddresses = mail.Addrs{}
|
||||||
|
}
|
||||||
|
|
||||||
return &Profile{
|
return &Profile{
|
||||||
ID: p.ID,
|
ID: p.ID,
|
||||||
OrganizationID: p.OrganizationID,
|
OrganizationID: p.OrganizationID,
|
||||||
FullName: p.FullName,
|
FullName: p.FullName,
|
||||||
EmailAddress: p.EmailAddress,
|
EmailAddress: p.EmailAddress,
|
||||||
AdditionalEmailAddresses: p.AdditionalEmailAddresses,
|
AdditionalEmailAddresses: additionalEmailAddresses,
|
||||||
Kind: p.Kind,
|
Kind: p.Kind,
|
||||||
Source: p.Source,
|
Source: p.Source,
|
||||||
State: p.State,
|
State: p.State,
|
||||||
|
|||||||
Reference in New Issue
Block a user