diff options
| author | Xe Iaso <me@xeiaso.net> | 2024-03-06 20:31:24 -0500 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2024-03-06 20:31:24 -0500 |
| commit | dc688e33f62f66ad5e6ec46fbccfa3ed6147a76e (patch) | |
| tree | 3f7aca3f546db6d0a23330b63ce77633efb4a92d /cmd/mimi/modules/scheduling | |
| parent | 8b9c4911c9f02ace367abcaeb8b53c0b6aa6b7dd (diff) | |
| download | x-dc688e33f62f66ad5e6ec46fbccfa3ed6147a76e.tar.xz x-dc688e33f62f66ad5e6ec46fbccfa3ed6147a76e.zip | |
cmd/mimi: various protobuf fixes
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'cmd/mimi/modules/scheduling')
| -rw-r--r-- | cmd/mimi/modules/scheduling/scheduling.valid.go | 45 | ||||
| -rw-r--r-- | cmd/mimi/modules/scheduling/scheduling_validate.go | 55 |
2 files changed, 45 insertions, 55 deletions
diff --git a/cmd/mimi/modules/scheduling/scheduling.valid.go b/cmd/mimi/modules/scheduling/scheduling.valid.go new file mode 100644 index 0000000..ec78ffd --- /dev/null +++ b/cmd/mimi/modules/scheduling/scheduling.valid.go @@ -0,0 +1,45 @@ +package scheduling + +import ( + "errors" + "fmt" + "time" +) + +func (cm *ConversationMember) Valid() error { + errs := []error{} + if cm.Email == "" { + errs = append(errs, fmt.Errorf("email is required")) + } + if cm.Name == "" { + errs = append(errs, fmt.Errorf("name is required")) + } + if len(errs) > 0 { + return fmt.Errorf("invalid ConversationMember: %w", errors.Join(errs...)) + } + return nil +} + +func (pr *ParseReq) Valid() error { + errs := []error{} + switch pr.Month { + case "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December": + default: + errs = append(errs, fmt.Errorf("month is invalid: %q", pr.Month)) + } + for _, cm := range pr.ConversationMembers { + if err := cm.Valid(); err != nil { + errs = append(errs, err) + } + } + if len(pr.Message) == 0 { + errs = append(errs, fmt.Errorf("message is required")) + } + if _, err := time.Parse(time.DateOnly, pr.Date); err != nil { + errs = append(errs, fmt.Errorf("date is invalid: %w", err)) + } + if len(errs) > 0 { + return fmt.Errorf("invalid ParseReq: %w", errors.Join(errs...)) + } + return nil +} diff --git a/cmd/mimi/modules/scheduling/scheduling_validate.go b/cmd/mimi/modules/scheduling/scheduling_validate.go deleted file mode 100644 index 95eba2c..0000000 --- a/cmd/mimi/modules/scheduling/scheduling_validate.go +++ /dev/null @@ -1,55 +0,0 @@ -package scheduling - -import ( - "errors" - "fmt" - "time" -) - -func (cm *ConversationMember) Valid() error { - var errs []error - - switch { - case cm.Name != "": - errs = append(errs, errors.New("scheduling: ConversationMember must have a name")) - case cm.Email != "": - errs = append(errs, errors.New("scheduling: ConversationMember must have an email address")) - } - - if len(errs) != 0 { - return errors.Join(errs...) - } - - return nil -} - -func (pr *ParseReq) Valid() error { - var errs []error - - switch { - case pr.Month == "": - errs = append(errs, errors.New("scheduling: ParseReq Month must be set")) - case len(pr.ConversationMembers) == 0: - errs = append(errs, errors.New("scheduling: must have ConversationMembers set")) - case pr.Message == "": - errs = append(errs, errors.New("scheduling: ParseReq must have a message to parse")) - case pr.Date == "": - errs = append(errs, errors.New("scheduling: ParseReq must have the message date")) - } - - for _, cm := range pr.ConversationMembers { - if err := cm.Valid(); err != nil { - errs = append(errs, err) - } - } - - if _, err := time.Parse(time.DateOnly, pr.Date); err != nil { - errs = append(errs, fmt.Errorf("scheduling: date %q is invalid: %w", pr.Date, err)) - } - - if len(errs) != 0 { - return errors.Join(errs...) - } - - return nil -} |
