24 lines
626 B
Go
24 lines
626 B
Go
package model
|
|
|
|
import (
|
|
"net/mail"
|
|
"strings"
|
|
|
|
"git.sendico.io/tech/sxchnge/bff/pkg/merrors"
|
|
)
|
|
|
|
func (i *Invitation) Validate() error {
|
|
if i == nil {
|
|
return merrors.InvalidArgument("invitation is required", "invitation")
|
|
}
|
|
if strings.TrimSpace(i.Content.Email) == "" {
|
|
return merrors.InvalidArgument("invitation email must not be empty", "description.email")
|
|
}
|
|
trimmedEmail := strings.TrimSpace(i.Content.Email)
|
|
parsed, err := mail.ParseAddress(trimmedEmail)
|
|
if err != nil || parsed.Address != trimmedEmail {
|
|
return merrors.InvalidArgument("invitation email is malformed", "description.email")
|
|
}
|
|
return nil
|
|
}
|