32 lines
850 B
Go
32 lines
850 B
Go
package render
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"evobgp/internal/store"
|
|
)
|
|
|
|
// PublishLatestTenantRevision sets each speaker's published_revision_id to the newest tenant revision (by created_at).
|
|
// Simplification for single-tenant / demo stacks; multi-module tenants may prefer explicit publish policies later.
|
|
func PublishLatestTenantRevision(ctx context.Context, st store.Backend) {
|
|
_ = ctx
|
|
tenants, err := st.ListTenantIDs()
|
|
if err != nil {
|
|
log.Printf("evobgp-render: list tenants: %v", err)
|
|
return
|
|
}
|
|
for _, tid := range tenants {
|
|
revs, _, _ := st.ListRevisions(tid, "", "", 1)
|
|
if len(revs) == 0 {
|
|
continue
|
|
}
|
|
rid := revs[0].ID
|
|
for _, sp := range st.ListSpeakersForTenant(tid) {
|
|
if err := st.PublishRevisionForSpeaker(sp.ID, rid); err != nil {
|
|
log.Printf("evobgp-render: publish speaker %s: %v", sp.ID, err)
|
|
}
|
|
}
|
|
}
|
|
}
|