31 lines
567 B
Go
31 lines
567 B
Go
package tenant
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
type MemberSyncer struct {
|
|
pool *Pool
|
|
}
|
|
|
|
func NewMemberSyncer(pool *Pool) *MemberSyncer {
|
|
return &MemberSyncer{pool: pool}
|
|
}
|
|
|
|
func (s *MemberSyncer) SyncMember(ctx context.Context, tenantID, userID, email, name, tier, status string, expiresAt *time.Time) error {
|
|
db, err := s.pool.Get(tenantID)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
q := NewQueries(db)
|
|
return q.UpsertMember(ctx, &Member{
|
|
UserID: userID,
|
|
Email: email,
|
|
Name: name,
|
|
Tier: tier,
|
|
Status: status,
|
|
ExpiresAt: expiresAt,
|
|
})
|
|
}
|