Abstract db handling into repositories

This commit is contained in:
2025-01-05 22:22:00 +01:00
parent 2eadad9135
commit 4e48e87f6c
5 changed files with 303 additions and 105 deletions

View File

@@ -8,13 +8,12 @@ import(
"net/http"
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt/v5"
"gorm.io/gorm"
"example.com/gin/test/models"
"example.com/gin/test/repositories"
)
type AuthValidator struct {
DB *gorm.DB
}
func (av *AuthValidator) RequireRoomAdmin(c *gin.Context) {
@@ -30,8 +29,12 @@ func (av *AuthValidator) RequireRoomAdmin(c *gin.Context) {
return
}
var rooms []models.Room
av.DB.Model(&user).Association("OwnedRooms").Find(&rooms)
rooms, err := repositories.Users.GetOwnedRooms(user.(models.User))
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{ "message": "Could not querie owend rooms"})
return
}
for _, room := range rooms {
if room.ID == uint(roomId) {
@@ -77,10 +80,9 @@ func (av *AuthValidator) RequireAuth(c *gin.Context) {
}
//Find user
var user models.User
result := av.DB.First(&user, claims["sub"])
user, err := repositories.Users.GetById(claims["sub"])
if result.Error != nil {
if err != nil {
c.AbortWithStatus(http.StatusUnauthorized)
return
}
@@ -124,10 +126,9 @@ func (av *AuthValidator) OptionalAuth(c *gin.Context) {
}
//Find user
var user models.User
result := av.DB.First(&user, claims["sub"])
user, err := repositories.Users.GetById(claims["sub"])
if result.Error != nil {
if err != nil {
return
}