From 1235ec1f9745212b6a179b6a2ac1e375dc3de034 Mon Sep 17 00:00:00 2001 From: Ian Norden Date: Thu, 13 Jun 2019 12:23:08 -0500 Subject: [PATCH] postgres table to hold ipfs data in same database as vulcanizedb data; shared SeedNodeTransformer interface --- .../00033_create_ipfs_blocks_table.sql | 8 +++++ .../transformer/seed_node_transformer.go | 31 +++++++++++++++++++ pkg/config/subscription.go | 16 ++++++++++ pkg/config/subscription_test.go | 1 - 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 db/migrations/00033_create_ipfs_blocks_table.sql create mode 100644 libraries/shared/transformer/seed_node_transformer.go delete mode 100644 pkg/config/subscription_test.go diff --git a/db/migrations/00033_create_ipfs_blocks_table.sql b/db/migrations/00033_create_ipfs_blocks_table.sql new file mode 100644 index 00000000..03a99488 --- /dev/null +++ b/db/migrations/00033_create_ipfs_blocks_table.sql @@ -0,0 +1,8 @@ +-- +goose Up +CREATE TABLE public.blocks ( + key TEXT UNIQUE NOT NULL, + data BYTEA NOT NULL +); + +-- +goose Down +DROP TABLE public.blocks; diff --git a/libraries/shared/transformer/seed_node_transformer.go b/libraries/shared/transformer/seed_node_transformer.go new file mode 100644 index 00000000..bc9beb01 --- /dev/null +++ b/libraries/shared/transformer/seed_node_transformer.go @@ -0,0 +1,31 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package transformer + +import ( + "github.com/vulcanize/vulcanizedb/pkg/config" + "github.com/vulcanize/vulcanizedb/pkg/core" + "github.com/vulcanize/vulcanizedb/pkg/datastore/postgres" +) + +type SeedNodeTransformer interface { + Init() error + Execute() error + GetConfig() config.Subscription +} + +type SeedNodeTransformerInitializer func(db *postgres.DB, subCon config.Subscription, client core.RpcClient) SeedNodeTransformer diff --git a/pkg/config/subscription.go b/pkg/config/subscription.go index 50949c9b..2aea5d06 100644 --- a/pkg/config/subscription.go +++ b/pkg/config/subscription.go @@ -1,3 +1,19 @@ +// VulcanizeDB +// Copyright © 2019 Vulcanize + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. + +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + package config // Subscription config is used by a subscribing transformer to specifiy which data to receive from the seed node diff --git a/pkg/config/subscription_test.go b/pkg/config/subscription_test.go deleted file mode 100644 index d912156b..00000000 --- a/pkg/config/subscription_test.go +++ /dev/null @@ -1 +0,0 @@ -package config