refactor: update ListModules and GetModule methods in Postgres repository to include cron expression handling. Enhance module data retrieval by adding cron field to the scan process and updating the module struct accordingly.
CI / changes (push) Successful in 7s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 23s
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Has been skipped
CI / docker-web (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Has been skipped
CI / docker-bird (push) Has been skipped
CI / bird2 (push) Successful in 17s
CI / docker-go (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m1s
CI / docker-go (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 1m28s
CI / docker-go (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 1m24s
CI / docker-go (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 1m23s
CI / docker-go (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m27s
CI / docker-go (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m20s
CI / docker-go (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m27s
CI / docker-go (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m21s

This commit is contained in:
Denozordec
2026-04-05 22:24:54 +07:00
parent 54eaad3f78
commit 73d0003281
+10 -4
View File
@@ -99,14 +99,17 @@ func (p *Postgres) ListModules(tenantID string) []*store.Module {
for rows.Next() { for rows.Next() {
var m store.Module var m store.Module
m.TenantID = tenantID m.TenantID = tenantID
var doh, dc *string var doh, dc, cron *string
var refresh *int32 var refresh *int32
if err := rows.Scan(&m.ID, &m.Type, &m.Name, &m.Enabled, &m.Priority, &doh, &refresh, &m.CronExpr, &dc); err != nil { if err := rows.Scan(&m.ID, &m.Type, &m.Name, &m.Enabled, &m.Priority, &doh, &refresh, &cron, &dc); err != nil {
continue continue
} }
if refresh != nil { if refresh != nil {
m.RefreshIntervalSec = int(*refresh) m.RefreshIntervalSec = int(*refresh)
} }
if cron != nil {
m.CronExpr = *cron
}
if doh != nil && *doh != "" { if doh != nil && *doh != "" {
m.DohProfileID = doh m.DohProfileID = doh
} }
@@ -122,12 +125,12 @@ func (p *Postgres) GetModule(tenantID, moduleID string) (*store.Module, error) {
ctx := context.Background() ctx := context.Background()
var m store.Module var m store.Module
m.TenantID = tenantID m.TenantID = tenantID
var doh, dc *string var doh, dc, cron *string
var refresh *int32 var refresh *int32
err := p.pool.QueryRow(ctx, ` err := p.pool.QueryRow(ctx, `
SELECT id, type, name, enabled, priority, doh_profile_id::text, refresh_interval_sec, cron_expr, default_community_id::text SELECT id, type, name, enabled, priority, doh_profile_id::text, refresh_interval_sec, cron_expr, default_community_id::text
FROM module WHERE id = $1 AND tenant_id = $2 AND deleted_at IS NULL`, moduleID, tenantID).Scan( FROM module WHERE id = $1 AND tenant_id = $2 AND deleted_at IS NULL`, moduleID, tenantID).Scan(
&m.ID, &m.Type, &m.Name, &m.Enabled, &m.Priority, &doh, &refresh, &m.CronExpr, &dc) &m.ID, &m.Type, &m.Name, &m.Enabled, &m.Priority, &doh, &refresh, &cron, &dc)
if err != nil { if err != nil {
if errors.Is(err, pgx.ErrNoRows) { if errors.Is(err, pgx.ErrNoRows) {
return nil, store.ErrNotFound return nil, store.ErrNotFound
@@ -137,6 +140,9 @@ func (p *Postgres) GetModule(tenantID, moduleID string) (*store.Module, error) {
if refresh != nil { if refresh != nil {
m.RefreshIntervalSec = int(*refresh) m.RefreshIntervalSec = int(*refresh)
} }
if cron != nil {
m.CronExpr = *cron
}
if doh != nil && *doh != "" { if doh != nil && *doh != "" {
m.DohProfileID = doh m.DohProfileID = doh
} }