Add a converter for CurrencyUnits stored in the database (#334)

* Add a converter for CurrencyUnits stored in the database

This uses the well-known String representation for currency units. It also
provides a base class for other converters that will be persisting the
toString() representation.

* Add DB and formatting changes

* Add tests, make minor fixes
This commit is contained in:
Ben McIlwain 2019-10-31 15:26:40 -04:00 committed by GitHub
parent d00ade8ae0
commit 03bbb2c057
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 192 additions and 21 deletions

View file

@ -0,0 +1,19 @@
-- Copyright 2019 The Nomulus Authors. All Rights Reserved.
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- Note: We're OK with dropping this data since it's not live in production yet.
alter table "PremiumList" drop column if exists currency;
-- TODO(mcilwain): Add a subsequent schema change to remove this default.
alter table "PremiumList" add column currency text not null default 'USD';

View file

@ -133,7 +133,7 @@
revision_id bigserial not null,
bloom_filter bytea not null,
creation_timestamp timestamptz not null,
currency bytea not null,
currency text not null,
name text not null,
primary key (revision_id)
);

View file

@ -92,9 +92,9 @@ CREATE TABLE public."PremiumEntry" (
CREATE TABLE public."PremiumList" (
revision_id bigint NOT NULL,
creation_timestamp timestamp with time zone NOT NULL,
currency bytea NOT NULL,
name text NOT NULL,
bloom_filter bytea NOT NULL
bloom_filter bytea NOT NULL,
currency text DEFAULT 'USD'::text NOT NULL
);