refactor(store): unify journal configuration storage
Keep the exported JournalConfiguration type as the single in-memory representation. Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
parent
5587e301bd
commit
c2c5cecd7d
3 changed files with 8 additions and 28 deletions
|
|
@ -212,10 +212,10 @@ func (storeInstance *Store) queryJournalFromFlux(flux string) (string, []any, er
|
|||
}
|
||||
|
||||
func (storeInstance *Store) journalBucket() string {
|
||||
if storeInstance.journalConfiguration.bucketName == "" {
|
||||
if storeInstance.journalConfiguration.BucketName == "" {
|
||||
return defaultJournalBucket
|
||||
}
|
||||
return storeInstance.journalConfiguration.bucketName
|
||||
return storeInstance.journalConfiguration.BucketName
|
||||
}
|
||||
|
||||
func ensureJournalSchema(database schemaDatabase) error {
|
||||
|
|
|
|||
26
store.go
26
store.go
|
|
@ -83,18 +83,6 @@ func (journalConfig JournalConfiguration) isConfigured() bool {
|
|||
journalConfig.BucketName != ""
|
||||
}
|
||||
|
||||
type journalConfiguration struct {
|
||||
endpointURL string
|
||||
organisation string
|
||||
bucketName string
|
||||
}
|
||||
|
||||
func (journalConfig journalConfiguration) isConfigured() bool {
|
||||
return journalConfig.endpointURL != "" &&
|
||||
journalConfig.organisation != "" &&
|
||||
journalConfig.bucketName != ""
|
||||
}
|
||||
|
||||
// Usage example: `storeInstance, err := store.NewConfigured(store.StoreConfig{DatabasePath: ":memory:", Journal: store.JournalConfiguration{EndpointURL: "http://127.0.0.1:8086", Organisation: "core", BucketName: "events"}, PurgeInterval: 30 * time.Second})`
|
||||
// Store keeps grouped key-value entries in SQLite and can also write completed
|
||||
// work summaries to the journal table.
|
||||
|
|
@ -105,7 +93,7 @@ type Store struct {
|
|||
cancelPurge context.CancelFunc
|
||||
purgeWaitGroup sync.WaitGroup
|
||||
purgeInterval time.Duration // interval between background purge cycles
|
||||
journalConfiguration journalConfiguration
|
||||
journalConfiguration JournalConfiguration
|
||||
closeLock sync.Mutex
|
||||
closed bool
|
||||
|
||||
|
|
@ -157,11 +145,7 @@ func (storeInstance *Store) JournalConfiguration() JournalConfiguration {
|
|||
if storeInstance == nil {
|
||||
return JournalConfiguration{}
|
||||
}
|
||||
return JournalConfiguration{
|
||||
EndpointURL: storeInstance.journalConfiguration.endpointURL,
|
||||
Organisation: storeInstance.journalConfiguration.organisation,
|
||||
BucketName: storeInstance.journalConfiguration.bucketName,
|
||||
}
|
||||
return storeInstance.journalConfiguration
|
||||
}
|
||||
|
||||
// Usage example: `if storeInstance.JournalConfigured() { fmt.Println("journal is fully configured") }`
|
||||
|
|
@ -232,11 +216,7 @@ func openConfiguredStore(operation string, storeConfig StoreConfig) (*Store, err
|
|||
}
|
||||
|
||||
if storeConfig.Journal != (JournalConfiguration{}) {
|
||||
storeInstance.journalConfiguration = journalConfiguration{
|
||||
endpointURL: storeConfig.Journal.EndpointURL,
|
||||
organisation: storeConfig.Journal.Organisation,
|
||||
bucketName: storeConfig.Journal.BucketName,
|
||||
}
|
||||
storeInstance.journalConfiguration = storeConfig.Journal
|
||||
}
|
||||
if storeConfig.PurgeInterval > 0 {
|
||||
storeInstance.purgeInterval = storeConfig.PurgeInterval
|
||||
|
|
|
|||
|
|
@ -103,9 +103,9 @@ func TestStore_New_Good_WithJournalOption(t *testing.T) {
|
|||
require.NoError(t, err)
|
||||
defer storeInstance.Close()
|
||||
|
||||
assert.Equal(t, "events", storeInstance.journalConfiguration.bucketName)
|
||||
assert.Equal(t, "core", storeInstance.journalConfiguration.organisation)
|
||||
assert.Equal(t, "http://127.0.0.1:8086", storeInstance.journalConfiguration.endpointURL)
|
||||
assert.Equal(t, "events", storeInstance.journalConfiguration.BucketName)
|
||||
assert.Equal(t, "core", storeInstance.journalConfiguration.Organisation)
|
||||
assert.Equal(t, "http://127.0.0.1:8086", storeInstance.journalConfiguration.EndpointURL)
|
||||
}
|
||||
|
||||
func TestStore_JournalConfiguration_Good(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue