summaryrefslogtreecommitdiff
path: root/app/domain
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-05-24 00:08:00 -0600
committermo khan <mo@mokhan.ca>2025-05-24 00:08:00 -0600
commita8e47145f93f07740d751be37d450599b26b2fc8 (patch)
tree3d8fdd7f7fcbda853cf1f42b4a5d96df57c3d71d /app/domain
parent1ab4de8ec28d4fdd46cd9b3e246eea4a85ca6b6c (diff)
feat: create middleware to check if user has permission
Diffstat (limited to 'app/domain')
-rw-r--r--app/domain/entity.go3
-rw-r--r--app/domain/identifiable.go7
-rw-r--r--app/domain/sparkle.go4
-rw-r--r--app/domain/user.go4
4 files changed, 16 insertions, 2 deletions
diff --git a/app/domain/entity.go b/app/domain/entity.go
index fb1cab8..0377c51 100644
--- a/app/domain/entity.go
+++ b/app/domain/entity.go
@@ -1,7 +1,6 @@
package domain
type Entity interface {
- GetID() ID
- SetID(id ID) error
+ Identifiable
Validate() error
}
diff --git a/app/domain/identifiable.go b/app/domain/identifiable.go
new file mode 100644
index 0000000..8fbc1e4
--- /dev/null
+++ b/app/domain/identifiable.go
@@ -0,0 +1,7 @@
+package domain
+
+type Identifiable interface {
+ GetID() ID
+ SetID(id ID) error
+ ToGID() string
+}
diff --git a/app/domain/sparkle.go b/app/domain/sparkle.go
index 68aed67..d4f70b2 100644
--- a/app/domain/sparkle.go
+++ b/app/domain/sparkle.go
@@ -49,6 +49,10 @@ func (s *Sparkle) SetID(id ID) error {
return nil
}
+func (s *Sparkle) ToGID() string {
+ return "gid://sparkle/Sparkle/" + s.ID.String()
+}
+
func (s *Sparkle) Validate() error {
if s.Sparklee == "" {
return SparkleeIsRequired
diff --git a/app/domain/user.go b/app/domain/user.go
index aae17f6..02ddd26 100644
--- a/app/domain/user.go
+++ b/app/domain/user.go
@@ -32,3 +32,7 @@ func (self *User) Sparkle(sparklee string, reason string) *Sparkle {
Reason: reason,
}
}
+
+func (self *User) ToGID() string {
+ return "gid://sparkle/User/" + self.ID.String()
+}