summaryrefslogtreecommitdiff
path: root/nexus/repositories/session/session.go
diff options
context:
space:
mode:
Diffstat (limited to 'nexus/repositories/session/session.go')
-rw-r--r--nexus/repositories/session/session.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/nexus/repositories/session/session.go b/nexus/repositories/session/session.go
new file mode 100644
index 0000000..1c26391
--- /dev/null
+++ b/nexus/repositories/session/session.go
@@ -0,0 +1,38 @@
+package session
+
+import (
+ "nexus/database"
+ "nexus/models"
+
+ "github.com/google/uuid"
+)
+
+func FindByAuthToken(token string) (*models.Session, error) {
+ var session models.Session
+ result := database.DB.Where("auth_token = ?", token).First(&session)
+ return &session, result.Error
+}
+
+func FindByRefreshToken(token string) (*models.Session, error) {
+ var session models.Session
+ result := database.DB.Where("refresh_token = ?", token).First(&session)
+ return &session, result.Error
+}
+
+func FindByAccountID(accountID uuid.UUID) ([]models.Session, error) {
+ var sessions []models.Session
+ result := database.DB.Where("account_id = ?", accountID).Find(&sessions)
+ return sessions, result.Error
+}
+
+func Create(session *models.Session) error {
+ return database.DB.Create(session).Error
+}
+
+func Delete(id uuid.UUID) error {
+ return database.DB.Delete(&models.Session{}, id).Error
+}
+
+func DeleteAllForAccount(accountID uuid.UUID) error {
+ return database.DB.Where("account_id = ?", accountID).Delete(&models.Session{}).Error
+}