forked from baron/baron-sso
62 lines
1.9 KiB
Go
62 lines
1.9 KiB
Go
package repository
|
|
|
|
import (
|
|
"baron-sso-backend/internal/domain"
|
|
"context"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type RelyingPartyRepository interface {
|
|
Create(ctx context.Context, rp *domain.RelyingParty) error
|
|
Update(ctx context.Context, rp *domain.RelyingParty) error
|
|
Delete(ctx context.Context, clientID string) error
|
|
FindByID(ctx context.Context, clientID string) (*domain.RelyingParty, error)
|
|
ListByTenantID(ctx context.Context, tenantID string) ([]domain.RelyingParty, error)
|
|
ListAll(ctx context.Context) ([]domain.RelyingParty, error)
|
|
}
|
|
|
|
func (r *relyingPartyRepository) ListAll(ctx context.Context) ([]domain.RelyingParty, error) {
|
|
var rps []domain.RelyingParty
|
|
if err := r.db.WithContext(ctx).Find(&rps).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return rps, nil
|
|
}
|
|
|
|
type relyingPartyRepository struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewRelyingPartyRepository(db *gorm.DB) RelyingPartyRepository {
|
|
return &relyingPartyRepository{db: db}
|
|
}
|
|
|
|
func (r *relyingPartyRepository) Create(ctx context.Context, rp *domain.RelyingParty) error {
|
|
return r.db.WithContext(ctx).Create(rp).Error
|
|
}
|
|
|
|
func (r *relyingPartyRepository) Update(ctx context.Context, rp *domain.RelyingParty) error {
|
|
return r.db.WithContext(ctx).Save(rp).Error
|
|
}
|
|
|
|
func (r *relyingPartyRepository) Delete(ctx context.Context, clientID string) error {
|
|
return r.db.WithContext(ctx).Delete(&domain.RelyingParty{}, "client_id = ?", clientID).Error
|
|
}
|
|
|
|
func (r *relyingPartyRepository) FindByID(ctx context.Context, clientID string) (*domain.RelyingParty, error) {
|
|
var rp domain.RelyingParty
|
|
if err := r.db.WithContext(ctx).First(&rp, "client_id = ?", clientID).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &rp, nil
|
|
}
|
|
|
|
func (r *relyingPartyRepository) ListByTenantID(ctx context.Context, tenantID string) ([]domain.RelyingParty, error) {
|
|
var rps []domain.RelyingParty
|
|
if err := r.db.WithContext(ctx).Where("tenant_id = ?", tenantID).Find(&rps).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return rps, nil
|
|
}
|