feeds.versions have a pattern
parent
18fd8dfac5
commit
a097814a62
|
|
@ -53,5 +53,5 @@ func one(ctx context.Context, feed feeds.Feed) error {
|
||||||
|
|
||||||
return fmt.Errorf("should parse %s", feed.Version.URL)
|
return fmt.Errorf("should parse %s", feed.Version.URL)
|
||||||
|
|
||||||
return feeds.Executed(ctx, feed.Entry.ID, feed.Version.Created)
|
return feed.Executed(ctx)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ func TestOne(t *testing.T) {
|
||||||
ctx := db.Test(t, ctx)
|
ctx := db.Test(t, ctx)
|
||||||
|
|
||||||
for i := 0; i < 2; i++ {
|
for i := 0; i < 2; i++ {
|
||||||
if _, err := feeds.Insert(ctx, fmt.Sprintf("%s?idx=%d", s.URL, i), "* * * * *"); err != nil {
|
if _, err := feeds.Insert(ctx, fmt.Sprintf("%s?idx=%d", s.URL, i), "* * * * *", "matches"); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ type (
|
||||||
Created time.Time
|
Created time.Time
|
||||||
URL string
|
URL string
|
||||||
Cron string
|
Cron string
|
||||||
|
Pattern string
|
||||||
}
|
}
|
||||||
|
|
||||||
Execution struct {
|
Execution struct {
|
||||||
|
|
@ -95,6 +96,7 @@ func Get(ctx context.Context, id string) (Feed, error) {
|
||||||
versions.created_at AS "Version.Created",
|
versions.created_at AS "Version.Created",
|
||||||
versions.url AS "Version.URL",
|
versions.url AS "Version.URL",
|
||||||
versions.cron AS "Version.Cron",
|
versions.cron AS "Version.Cron",
|
||||||
|
versions.pattern AS "Version.Pattern",
|
||||||
(
|
(
|
||||||
SELECT executed_at
|
SELECT executed_at
|
||||||
FROM "feed.executions"
|
FROM "feed.executions"
|
||||||
|
|
@ -130,8 +132,9 @@ func oldGet(ctx context.Context, id string) (Feed, error) {
|
||||||
version, err := db.QueryOne[Version](ctx, `
|
version, err := db.QueryOne[Version](ctx, `
|
||||||
SELECT
|
SELECT
|
||||||
"feed.current_versions".versions_created_at AS Created,
|
"feed.current_versions".versions_created_at AS Created,
|
||||||
"feed.current_versions" AS URL,
|
"feed.current_versions".url AS URL,
|
||||||
"feed.current_versions" AS Cron
|
"feed.current_versions".cron AS Cron,
|
||||||
|
"feed.current_versions".pattern AS Pattern
|
||||||
FROM
|
FROM
|
||||||
"feed.current_versions"
|
"feed.current_versions"
|
||||||
JOIN
|
JOIN
|
||||||
|
|
@ -184,7 +187,7 @@ func (feed Feed) Executed(ctx context.Context) error {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Insert(ctx context.Context, url, cron string) (string, error) {
|
func Insert(ctx context.Context, url, cron, pattern string) (string, error) {
|
||||||
if err := initDB(ctx); err != nil {
|
if err := initDB(ctx); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
@ -202,16 +205,17 @@ func Insert(ctx context.Context, url, cron string) (string, error) {
|
||||||
entries_id,
|
entries_id,
|
||||||
created_at,
|
created_at,
|
||||||
url,
|
url,
|
||||||
cron
|
cron,
|
||||||
) VALUES ($4, $5, $6, $7);
|
pattern
|
||||||
|
) VALUES ($4, $5, $6, $7, $8);
|
||||||
COMMIT;
|
COMMIT;
|
||||||
`,
|
`,
|
||||||
id, now, now,
|
id, now, now,
|
||||||
id, now, url, cron,
|
id, now, url, cron, pattern,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (feed Feed) Update(ctx context.Context, url, cron *string) error {
|
func (feed Feed) Update(ctx context.Context, url, cron, pattern *string) error {
|
||||||
return io.EOF
|
return io.EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -271,6 +275,7 @@ func initDB(ctx context.Context) error {
|
||||||
)`,
|
)`,
|
||||||
`ALTER TABLE "feed.versions" ADD COLUMN url TEXT NOT NULL`,
|
`ALTER TABLE "feed.versions" ADD COLUMN url TEXT NOT NULL`,
|
||||||
`ALTER TABLE "feed.versions" ADD COLUMN cron TEXT NOT NULL DEFAULT '0 0 * * *'`,
|
`ALTER TABLE "feed.versions" ADD COLUMN cron TEXT NOT NULL DEFAULT '0 0 * * *'`,
|
||||||
|
`ALTER TABLE "feed.versions" ADD COLUMN pattern TEXT NOT NULL DEFAULT ''`,
|
||||||
|
|
||||||
`CREATE TABLE "feed.executions" (
|
`CREATE TABLE "feed.executions" (
|
||||||
entries_id TEXT,
|
entries_id TEXT,
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ func TestFeeds(t *testing.T) {
|
||||||
t.Run("crud", func(t *testing.T) {
|
t.Run("crud", func(t *testing.T) {
|
||||||
ctx := db.Test(t, ctx)
|
ctx := db.Test(t, ctx)
|
||||||
|
|
||||||
id, err := feeds.Insert(ctx, "url", "cron")
|
id, err := feeds.Insert(ctx, "url", "cron", "pattern")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("cannot insert:", err)
|
t.Fatal("cannot insert:", err)
|
||||||
}
|
}
|
||||||
|
|
@ -48,6 +48,9 @@ func TestFeeds(t *testing.T) {
|
||||||
if got.Version.Cron != "cron" {
|
if got.Version.Cron != "cron" {
|
||||||
t.Error("no version.cron")
|
t.Error("no version.cron")
|
||||||
}
|
}
|
||||||
|
if got.Version.Pattern != "pattern" {
|
||||||
|
t.Error("bad version.pattern")
|
||||||
|
}
|
||||||
|
|
||||||
if !got.Execution.Executed.IsZero() {
|
if !got.Execution.Executed.IsZero() {
|
||||||
t.Error("execution.executed")
|
t.Error("execution.executed")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue