diff options
Diffstat (limited to 'proto/mi')
| -rw-r--r-- | proto/mi/mi.slog.go | 33 | ||||
| -rw-r--r-- | proto/mi/mi.valid.go | 30 |
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 +} |
