vaulterm/server/app/teams/members/repository.go

40 lines
876 B
Go

package members
import (
"gorm.io/gorm"
"gorm.io/gorm/clause"
"rul.sh/vaulterm/server/db"
"rul.sh/vaulterm/server/lib"
"rul.sh/vaulterm/server/models"
)
type TeamMembers struct {
db *gorm.DB
User *lib.UserContext
}
func NewRepository(r *TeamMembers) *TeamMembers {
if r == nil {
r = &TeamMembers{}
}
r.db = db.Get()
return r
}
func (r *TeamMembers) Add(data *models.TeamMembers) error {
ret := r.db.Clauses(clause.OnConflict{DoNothing: true}).Create(data)
return ret.Error
}
func (r *TeamMembers) SetRole(data *models.TeamMembers) error {
ret := r.db.
Where("team_id = ? AND user_id = ?", data.TeamID, data.UserID).
Updates(&models.TeamMembers{Role: data.Role})
return ret.Error
}
func (r *TeamMembers) Remove(data *models.TeamMembers) error {
ret := r.db.Delete(&models.TeamMembers{TeamID: data.TeamID, UserID: data.UserID})
return ret.Error
}