feat: more currency support (#520)

* add multiple new currencies

* add multiple new currencies

* remove duplicate yen

Former-commit-id: c5ae6b17f9
This commit is contained in:
Hayden 2023-07-31 05:59:36 -08:00 committed by GitHub
parent 6b9cdf3294
commit 964270e054
6 changed files with 104 additions and 124 deletions

View file

@ -1 +1 @@
0f071d9562071fd2675056977b38edd69dcd66fe 2aa21deab73854398ee7954e2ad3bfb7452bbac0

View file

@ -511,6 +511,8 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM=
github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
@ -536,6 +538,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc=
@ -607,7 +611,10 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO
github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=
github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=

View file

@ -131,24 +131,36 @@ const DefaultCurrency = CurrencyUsd
// Currency values. // Currency values.
const ( const (
CurrencyUsd Currency = "usd" CurrencyAed Currency = "aed"
CurrencyAud Currency = "aud"
CurrencyBgn Currency = "bgn"
CurrencyBrl Currency = "brl"
CurrencyCad Currency = "cad"
CurrencyChf Currency = "chf"
CurrencyCny Currency = "cny"
CurrencyCzk Currency = "czk"
CurrencyDkk Currency = "dkk"
CurrencyEur Currency = "eur" CurrencyEur Currency = "eur"
CurrencyGbp Currency = "gbp" CurrencyGbp Currency = "gbp"
CurrencyHkd Currency = "hkd"
CurrencyIdr Currency = "idr"
CurrencyInr Currency = "inr"
CurrencyJpy Currency = "jpy" CurrencyJpy Currency = "jpy"
CurrencyZar Currency = "zar" CurrencyKrw Currency = "krw"
CurrencyAud Currency = "aud" CurrencyMxn Currency = "mxn"
CurrencyNok Currency = "nok" CurrencyNok Currency = "nok"
CurrencyNzd Currency = "nzd" CurrencyNzd Currency = "nzd"
CurrencySek Currency = "sek"
CurrencyDkk Currency = "dkk"
CurrencyInr Currency = "inr"
CurrencyRmb Currency = "rmb"
CurrencyBgn Currency = "bgn"
CurrencyChf Currency = "chf"
CurrencyPln Currency = "pln" CurrencyPln Currency = "pln"
CurrencyTry Currency = "try" CurrencyRmb Currency = "rmb"
CurrencyRon Currency = "ron" CurrencyRon Currency = "ron"
CurrencyCzk Currency = "czk" CurrencyRub Currency = "rub"
CurrencySar Currency = "sar"
CurrencySek Currency = "sek"
CurrencySgd Currency = "sgd"
CurrencyThb Currency = "thb"
CurrencyTry Currency = "try"
CurrencyUsd Currency = "usd"
CurrencyZar Currency = "zar"
) )
func (c Currency) String() string { func (c Currency) String() string {
@ -158,7 +170,7 @@ func (c Currency) String() string {
// CurrencyValidator is a validator for the "currency" field enum values. It is called by the builders before save. // CurrencyValidator is a validator for the "currency" field enum values. It is called by the builders before save.
func CurrencyValidator(c Currency) error { func CurrencyValidator(c Currency) error {
switch c { switch c {
case CurrencyUsd, CurrencyEur, CurrencyGbp, CurrencyJpy, CurrencyZar, CurrencyAud, CurrencyNok, CurrencyNzd, CurrencySek, CurrencyDkk, CurrencyInr, CurrencyRmb, CurrencyBgn, CurrencyChf, CurrencyPln, CurrencyTry, CurrencyRon, CurrencyCzk: case CurrencyAed, CurrencyAud, CurrencyBgn, CurrencyBrl, CurrencyCad, CurrencyChf, CurrencyCny, CurrencyCzk, CurrencyDkk, CurrencyEur, CurrencyGbp, CurrencyHkd, CurrencyIdr, CurrencyInr, CurrencyJpy, CurrencyKrw, CurrencyMxn, CurrencyNok, CurrencyNzd, CurrencyPln, CurrencyRmb, CurrencyRon, CurrencyRub, CurrencySar, CurrencySek, CurrencySgd, CurrencyThb, CurrencyTry, CurrencyUsd, CurrencyZar:
return nil return nil
default: default:
return fmt.Errorf("group: invalid enum value for currency field: %q", c) return fmt.Errorf("group: invalid enum value for currency field: %q", c)

View file

@ -116,7 +116,7 @@ var (
{Name: "created_at", Type: field.TypeTime}, {Name: "created_at", Type: field.TypeTime},
{Name: "updated_at", Type: field.TypeTime}, {Name: "updated_at", Type: field.TypeTime},
{Name: "name", Type: field.TypeString, Size: 255}, {Name: "name", Type: field.TypeString, Size: 255},
{Name: "currency", Type: field.TypeEnum, Enums: []string{"usd", "eur", "gbp", "jpy", "zar", "aud", "nok", "nzd", "sek", "dkk", "inr", "rmb", "bgn", "chf", "pln", "try", "ron", "czk"}, Default: "usd"}, {Name: "currency", Type: field.TypeEnum, Enums: []string{"aed", "aud", "bgn", "brl", "cad", "chf", "cny", "czk", "dkk", "eur", "gbp", "hkd", "idr", "inr", "jpy", "krw", "mxn", "nok", "nzd", "pln", "rmb", "ron", "rub", "sar", "sek", "sgd", "thb", "try", "usd", "zar"}, Default: "usd"},
} }
// GroupsTable holds the schema information for the "groups" table. // GroupsTable holds the schema information for the "groups" table.
GroupsTable = &schema.Table{ GroupsTable = &schema.Table{

View file

@ -29,7 +29,37 @@ func (Group) Fields() []ent.Field {
NotEmpty(), NotEmpty(),
field.Enum("currency"). field.Enum("currency").
Default("usd"). Default("usd").
Values("usd", "eur", "gbp", "jpy", "zar", "aud", "nok", "nzd", "sek", "dkk", "inr", "rmb", "bgn", "chf", "pln", "try", "ron", "czk"), Values(
"aed",
"aud",
"bgn",
"brl",
"cad",
"chf",
"czk",
"dkk",
"eur",
"gbp",
"hkd",
"idr",
"inr",
"jpy",
"krw",
"mxn",
"nok",
"nzd",
"pln",
"rmb",
"ron",
"rub",
"sar",
"sek",
"sgd",
"thb",
"try",
"usd",
"zar",
),
} }
} }
@ -70,7 +100,6 @@ func (g GroupMixin) Fields() []ent.Field {
} }
return nil return nil
} }
func (g GroupMixin) Edges() []ent.Edge { func (g GroupMixin) Edges() []ent.Edge {

View file

@ -1,19 +1,30 @@
export type Codes = export type Codes =
| "AED"
| "AUD" | "AUD"
| "BGN" | "BGN"
| "BRL"
| "CAD"
| "CHF" | "CHF"
| "CZK" | "CZK"
| "DKK" | "DKK"
| "EUR" | "EUR"
| "GBP" | "GBP"
| "HKD"
| "IDR"
| "INR" | "INR"
| "JPY" | "JPY"
| "KRW"
| "MXN"
| "NOK" | "NOK"
| "NZD" | "NZD"
| "PLN" | "PLN"
| "RMB" | "RMB"
| "RUB"
| "RON" | "RON"
| "SAR"
| "SEK" | "SEK"
| "SGD"
| "THB"
| "TRY" | "TRY"
| "USD" | "USD"
| "ZAR"; | "ZAR";
@ -26,112 +37,33 @@ export type Currency = {
}; };
export const currencies: Currency[] = [ export const currencies: Currency[] = [
{ { code: "AED", local: "United Arab Emirates", symbol: "د.إ", name: "United Arab Emirates Dirham" },
code: "AUD", { code: "AUD", local: "Australia", symbol: "A$", name: "Australian Dollar" },
local: "en-AU", { code: "BGN", local: "bg-BG", symbol: "lv", name: "Bulgarian lev" },
symbol: "$", { code: "BRL", local: "Brazil", symbol: "R$", name: "Brazilian Real" },
name: "Australian Dollar", { code: "CAD", local: "Canada", symbol: "C$", name: "Canadian Dollar" },
}, { code: "CHF", local: "Switzerland", symbol: "CHF", name: "Swiss Franc" },
{ { code: "CZK", local: "cs-CZ", symbol: "Kč", name: "Czech Koruna" },
code: "GBP", { code: "DKK", local: "da-DK", symbol: "kr", name: "Danish Krone" },
local: "en-GB", { code: "EUR", local: "Eurozone", symbol: "€", name: "Euro" },
symbol: "£", { code: "GBP", local: "United Kingdom", symbol: "£", name: "British Pound Sterling" },
name: "British Pound", { code: "HKD", local: "Hong Kong", symbol: "HK$", name: "Hong Kong Dollar" },
}, { code: "IDR", local: "Indonesia", symbol: "Rp", name: "Indonesian Rupiah" },
{ { code: "INR", local: "India", symbol: "₹", name: "Indian Rupee" },
code: "RMB", { code: "JPY", local: "Japan", symbol: "¥", name: "Japanese Yen" },
local: "zh-CN", { code: "KRW", local: "South Korea", symbol: "₩", name: "South Korean Won" },
symbol: "¥", { code: "MXN", local: "Mexico", symbol: "Mex$", name: "Mexican Peso" },
name: "Chinese Yuan", { code: "NOK", local: "Norway", symbol: "kr", name: "Norwegian Krone" },
}, { code: "NZD", local: "New Zealand", symbol: "NZ$", name: "New Zealand Dollar" },
{ { code: "PLN", local: "Poland", symbol: "zł", name: "Polish Zloty" },
code: "DKK", { code: "RMB", local: "zh-CN", symbol: "¥", name: "Chinese Yuan" },
local: "da-DK", { code: "RON", local: "ro-RO", symbol: "lei", name: "Romanian Leu" },
symbol: "kr", { code: "RUB", local: "Russia", symbol: "₽", name: "Russian Ruble" },
name: "Danish Krone", { code: "SAR", local: "Saudi Arabia", symbol: "﷼", name: "Saudi Riyal" },
}, { code: "SEK", local: "Sweden", symbol: "kr", name: "Swedish Krona" },
{ { code: "SGD", local: "Singapore", symbol: "S$", name: "Singapore Dollar" },
code: "EUR", { code: "THB", local: "Thailand", symbol: "฿", name: "Thai Baht" },
local: "de-DE", { code: "TRY", local: "Turkey", symbol: "₺", name: "Turkish Lira" },
symbol: "€", { code: "USD", local: "United States", symbol: "$", name: "United States Dollar" },
name: "Euro", { code: "ZAR", local: "South Africa", symbol: "R", name: "South African Rand" },
},
{
code: "INR",
local: "en-IN",
symbol: "₹",
name: "Indian Rupee",
},
{
code: "JPY",
local: "ja-JP",
symbol: "¥",
name: "Japanese Yen",
},
{
code: "NOK",
local: "nb-NO",
symbol: "kr",
name: "Norwegian Krone",
},
{
code: "NZD",
local: "en-NZ",
symbol: "NZ$",
name: "New Zealand Dollar",
},
{
code: "PLN",
local: "pl-PL",
symbol: "zł",
name: "Polish Zloty",
},
{
code: "RON",
local: "ro-RO",
symbol: "lei",
name: "Romanian Leu",
},
{
code: "ZAR",
local: "en-ZA",
symbol: "R",
name: "South African Rand",
},
{
code: "SEK",
local: "sv-SE",
symbol: "kr",
name: "Swedish Krona",
},
{
code: "TRY",
local: "tr-TR",
symbol: "₺",
name: "Turkish Lira",
},
{
code: "USD",
local: "en-US",
symbol: "$",
name: "US Dollar",
},
{
code: "BGN",
local: "bg-BG",
symbol: "lv",
name: "Bulgarian lev",
},
{
code: "CHF",
local: "de-CH",
symbol: "chf",
name: "Swiss Francs",
},
{
code: "CZK",
local: "cs-CZ",
symbol: "Kč",
name: "Czech Koruna",
},
]; ];