mirror of
https://github.com/khairul169/vaulterm.git
synced 2025-04-29 00:59:40 +07:00
40 lines
876 B
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
|
|
}
|