aboutsummaryrefslogtreecommitdiff
path: root/cmd/mimi/modules/scheduling
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2024-03-06 20:31:24 -0500
committerXe Iaso <me@xeiaso.net>2024-03-06 20:31:24 -0500
commitdc688e33f62f66ad5e6ec46fbccfa3ed6147a76e (patch)
tree3f7aca3f546db6d0a23330b63ce77633efb4a92d /cmd/mimi/modules/scheduling
parent8b9c4911c9f02ace367abcaeb8b53c0b6aa6b7dd (diff)
downloadx-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.go45
-rw-r--r--cmd/mimi/modules/scheduling/scheduling_validate.go55
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
-}