aboutsummaryrefslogtreecommitdiff
path: root/proto/mi
diff options
context:
space:
mode:
Diffstat (limited to 'proto/mi')
-rw-r--r--proto/mi/mi.slog.go33
-rw-r--r--proto/mi/mi.valid.go30
2 files changed, 63 insertions, 0 deletions
diff --git a/proto/mi/mi.slog.go b/proto/mi/mi.slog.go
new file mode 100644
index 0000000..85db2e6
--- /dev/null
+++ b/proto/mi/mi.slog.go
@@ -0,0 +1,33 @@
+package mi
+
+import "log/slog"
+
+func (m *Member) LogValue() slog.Value {
+ return slog.GroupValue(
+ slog.Int("id", int(m.GetId())),
+ slog.String("name", m.GetName()),
+ slog.String("avatar_url", m.GetAvatarUrl()),
+ )
+}
+
+func (s *Switch) LogValue() slog.Value {
+ return slog.GroupValue(
+ slog.String("id", s.GetId()),
+ slog.Int("member_id", int(s.GetMemberId())),
+ slog.String("started_at", s.GetStartedAt()),
+ slog.String("ended_at", s.GetEndedAt()),
+ )
+}
+
+func (sr *SwitchReq) LogValue() slog.Value {
+ return slog.GroupValue(
+ slog.String("member_name", sr.GetMemberName()),
+ )
+}
+
+func (sr *SwitchResp) LogValue() slog.Value {
+ return slog.GroupValue(
+ slog.Any("old", sr.GetOld()),
+ slog.Any("current", sr.GetCurrent()),
+ )
+}
diff --git a/proto/mi/mi.valid.go b/proto/mi/mi.valid.go
new file mode 100644
index 0000000..396062e
--- /dev/null
+++ b/proto/mi/mi.valid.go
@@ -0,0 +1,30 @@
+package mi
+
+import (
+ "errors"
+)
+
+var (
+ ErrNoMemberName = errors.New("mi: no member name defined")
+ ErrNoSuchMemberInSystem = errors.New("mi: no such member in system")
+ ErrNoSwitchID = errors.New("mi: no switch ID defined")
+)
+
+func (sr *SwitchReq) Valid() error {
+ switch sr.GetMemberName() {
+ case "":
+ return ErrNoMemberName
+ case "Cadey", "Nicole", "Jessie", "Sephie", "Ashe", "Mai":
+ return nil
+ default:
+ return ErrNoSuchMemberInSystem
+ }
+}
+
+func (gsr *GetSwitchReq) Valid() error {
+ if gsr.GetId() == "" {
+ return ErrNoSwitchID
+ }
+
+ return nil
+}