@uplab/vendure-plugin-exchange-rates 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +11 -8
- package/dist/entities/currency-exchange-rate.entity.d.ts +4 -1
- package/dist/entities/currency-exchange-rate.entity.d.ts.map +1 -1
- package/dist/entities/currency-exchange-rate.entity.js +1 -1
- package/dist/entities/currency-exchange-rate.entity.js.map +1 -1
- package/dist/services/currency-exchange-rate-sync.service.d.ts +3 -2
- package/dist/services/currency-exchange-rate-sync.service.d.ts.map +1 -1
- package/dist/services/currency-exchange-rate-sync.service.js +22 -3
- package/dist/services/currency-exchange-rate-sync.service.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @uplab/vendure-plugin-exchange-rates
|
|
2
2
|
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#31](https://github.com/Uplab/uplab-vendure-plugins/pull/31) [`a1899fe`](https://github.com/Uplab/uplab-vendure-plugins/commit/a1899fe1422faec3f96b0f4259f713ab26b5deaf) Thanks [@brmk](https://github.com/brmk)! - The `baseCurrency` column is nullable, so a generated migration adds it to a table that already has rows without hand edits. On boot (and in every sync) rows without a base are given the current one and keep their custom rates.
|
|
8
|
+
|
|
3
9
|
## 0.1.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -337,14 +337,17 @@ export class RatesCachePlugin implements OnApplicationBootstrap {
|
|
|
337
337
|
|
|
338
338
|
One table, `currency_exchange_rate`:
|
|
339
339
|
|
|
340
|
-
| Column | Type
|
|
341
|
-
| --------------- |
|
|
342
|
-
| `code` | varchar, unique
|
|
343
|
-
| `baseCurrency` | varchar — the currency `rate` is counted in |
|
|
344
|
-
| `rate` | decimal(19, 8) — the fetched one
|
|
345
|
-
| `enabled` | boolean, default `false`
|
|
346
|
-
| `useCustomRate` | boolean, default `false`
|
|
347
|
-
| `customRate` | decimal(19, 8), nullable
|
|
340
|
+
| Column | Type |
|
|
341
|
+
| --------------- | -------------------------------------------- |
|
|
342
|
+
| `code` | varchar, unique |
|
|
343
|
+
| `baseCurrency` | varchar — the currency `rate` is counted in¹ |
|
|
344
|
+
| `rate` | decimal(19, 8) — the fetched one |
|
|
345
|
+
| `enabled` | boolean, default `false` |
|
|
346
|
+
| `useCustomRate` | boolean, default `false` |
|
|
347
|
+
| `customRate` | decimal(19, 8), nullable |
|
|
348
|
+
|
|
349
|
+
¹ Nullable so that a generated migration can add it to a filled table: on the next boot the plugin gives
|
|
350
|
+
rows without one the current base, keeping their custom rates.
|
|
348
351
|
|
|
349
352
|
A sync updates `rate` and inserts new currencies, in one transaction; on a [base change](#base-currency) it
|
|
350
353
|
also rewrites `baseCurrency`, clears custom rates and deletes the currencies the new base does not cover.
|
|
@@ -2,7 +2,10 @@ import { CurrencyCode, DeepPartial, VendureEntity } from '@vendure/core';
|
|
|
2
2
|
export declare class CurrencyExchangeRate extends VendureEntity {
|
|
3
3
|
constructor(input?: DeepPartial<CurrencyExchangeRate>);
|
|
4
4
|
code: CurrencyCode;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* The currency `rate` and `customRate` are expressed in. Nullable only so that a host's generated
|
|
7
|
+
* migration can add the column to a filled table; the plugin fills it before any rate is read.
|
|
8
|
+
*/
|
|
6
9
|
baseCurrency: CurrencyCode;
|
|
7
10
|
enabled: boolean;
|
|
8
11
|
/** Units of `baseCurrency` per one unit of `code`, as fetched from the source. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency-exchange-rate.entity.d.ts","sourceRoot":"","sources":["../../src/entities/currency-exchange-rate.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASzE,qBACa,oBAAqB,SAAQ,aAAa;gBACzC,KAAK,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC;IAMrD,IAAI,EAAE,YAAY,CAAC;IAEnB
|
|
1
|
+
{"version":3,"file":"currency-exchange-rate.entity.d.ts","sourceRoot":"","sources":["../../src/entities/currency-exchange-rate.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASzE,qBACa,oBAAqB,SAAQ,aAAa;gBACzC,KAAK,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC;IAMrD,IAAI,EAAE,YAAY,CAAC;IAEnB;;;OAGG;IAEH,YAAY,EAAE,YAAY,CAAC;IAG3B,OAAO,EAAE,OAAO,CAAC;IAEjB,kFAAkF;IAElF,IAAI,EAAE,MAAM,CAAC;IAGb,aAAa,EAAE,OAAO,CAAC;IAGvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B"}
|
|
@@ -29,7 +29,7 @@ __decorate([
|
|
|
29
29
|
__metadata("design:type", String)
|
|
30
30
|
], CurrencyExchangeRate.prototype, "code", void 0);
|
|
31
31
|
__decorate([
|
|
32
|
-
(0, typeorm_1.Column)({ type: 'varchar' }),
|
|
32
|
+
(0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
|
|
33
33
|
__metadata("design:type", String)
|
|
34
34
|
], CurrencyExchangeRate.prototype, "baseCurrency", void 0);
|
|
35
35
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency-exchange-rate.entity.js","sourceRoot":"","sources":["../../src/entities/currency-exchange-rate.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAyE;AACzE,qCAAkE;AAElE,yFAAyF;AACzF,MAAM,eAAe,GAAqB;IACxC,EAAE,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,KAAK;IAC/C,IAAI,EAAE,CAAC,KAA6B,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CACjF,CAAC;AAGK,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oBAAa;IACrD,YAAY,KAAyC;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;
|
|
1
|
+
{"version":3,"file":"currency-exchange-rate.entity.js","sourceRoot":"","sources":["../../src/entities/currency-exchange-rate.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAyE;AACzE,qCAAkE;AAElE,yFAAyF;AACzF,MAAM,eAAe,GAAqB;IACxC,EAAE,EAAE,CAAC,KAAgC,EAAE,EAAE,CAAC,KAAK;IAC/C,IAAI,EAAE,CAAC,KAA6B,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CACjF,CAAC;AAGK,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,oBAAa;IACrD,YAAY,KAAyC;QACnD,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CAyBF,CAAA;AA5BY,oDAAoB;AAO/B;IAFC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC3B,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;kDACL;AAOnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACjB;AAG3B;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;qDACV;AAIjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;;kDACtE;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;2DACJ;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;;wDACxE;+BA3BhB,oBAAoB;IADhC,IAAA,gBAAM,GAAE;;GACI,oBAAoB,CA4BhC"}
|
|
@@ -22,8 +22,9 @@ export declare class CurrencyExchangeRateSyncService {
|
|
|
22
22
|
*/
|
|
23
23
|
syncRates(ctx: RequestContext): Promise<CurrencyExchangeRate[]>;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
* the base. Never throws: a source outage must
|
|
25
|
+
* Gives rows from before the `baseCurrency` column the current base, then syncs when no rate is stored in
|
|
26
|
+
* it: on the first boot, and after a restart that changed the base. Never throws: a source outage must
|
|
27
|
+
* not stop the server.
|
|
27
28
|
*/
|
|
28
29
|
backfillIfEmpty(ctx: RequestContext): Promise<void>;
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency-exchange-rate-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/currency-exchange-rate-sync.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,QAAQ,EAAU,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAqB,kCAAkC,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"currency-exchange-rate-sync.service.d.ts","sourceRoot":"","sources":["../../src/services/currency-exchange-rate-sync.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,QAAQ,EAAU,cAAc,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAG/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAqB,kCAAkC,EAAE,MAAM,UAAU,CAAC;AAwBjF;;;;;;GAMG;AACH,qBACa,+BAA+B;IAED,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAH4B,OAAO,EAAE,kCAAkC,EAClF,UAAU,EAAE,uBAAuB,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,2BAA2B;IAG3D;;;;OAIG;IACG,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAqErE;;;;OAIG;IACG,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAmB1D"}
|
|
@@ -29,6 +29,16 @@ function isUsable(quote) {
|
|
|
29
29
|
function lastPerCode(quotes) {
|
|
30
30
|
return [...new Map(quotes.map((q) => [q.currencyCode, q]))].map(([, q]) => q);
|
|
31
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* A row without a base predates the `baseCurrency` column. Its rates are in the base the shop used then,
|
|
34
|
+
* taken to be the current one, so it keeps its custom rate.
|
|
35
|
+
*/
|
|
36
|
+
async function adoptRowsWithoutBase(repository, baseCurrency) {
|
|
37
|
+
const { affected } = await repository.update({ baseCurrency: (0, typeorm_1.IsNull)() }, { baseCurrency });
|
|
38
|
+
if (affected) {
|
|
39
|
+
core_1.Logger.info(`Took ${affected} stored rates without a base currency to be in ${baseCurrency}`, constants_1.loggerCtx);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
32
42
|
/**
|
|
33
43
|
* @description
|
|
34
44
|
* Pulls rates from the configured {@link ExchangeRateSource} into the `CurrencyExchangeRate` table,
|
|
@@ -64,6 +74,7 @@ let CurrencyExchangeRateSyncService = class CurrencyExchangeRateSyncService {
|
|
|
64
74
|
// One transaction: a failure part-way leaves every rate as it was, not half of them refreshed.
|
|
65
75
|
const { rows, changed } = await this.connection.withTransaction(ctx, async (txCtx) => {
|
|
66
76
|
const repository = this.connection.getRepository(txCtx, currency_exchange_rate_entity_1.CurrencyExchangeRate);
|
|
77
|
+
await adoptRowsWithoutBase(repository, baseCurrency);
|
|
67
78
|
const stored = await repository.find();
|
|
68
79
|
const storedByCode = new Map(stored.map((r) => [r.code, r]));
|
|
69
80
|
const rebased = [];
|
|
@@ -116,12 +127,20 @@ let CurrencyExchangeRateSyncService = class CurrencyExchangeRateSyncService {
|
|
|
116
127
|
return rows;
|
|
117
128
|
}
|
|
118
129
|
/**
|
|
119
|
-
*
|
|
120
|
-
* the base. Never throws: a source outage must
|
|
130
|
+
* Gives rows from before the `baseCurrency` column the current base, then syncs when no rate is stored in
|
|
131
|
+
* it: on the first boot, and after a restart that changed the base. Never throws: a source outage must
|
|
132
|
+
* not stop the server.
|
|
121
133
|
*/
|
|
122
134
|
async backfillIfEmpty(ctx) {
|
|
123
135
|
const baseCurrency = await this.rateService.getBaseCurrency(ctx);
|
|
124
|
-
|
|
136
|
+
const repository = this.connection.getRepository(ctx, currency_exchange_rate_entity_1.CurrencyExchangeRate);
|
|
137
|
+
try {
|
|
138
|
+
await adoptRowsWithoutBase(repository, baseCurrency);
|
|
139
|
+
}
|
|
140
|
+
catch (e) {
|
|
141
|
+
core_1.Logger.warn(`Could not give the stored rates a base currency: ${e.message}`, constants_1.loggerCtx);
|
|
142
|
+
}
|
|
143
|
+
if ((await repository.count({ where: { baseCurrency } })) > 0) {
|
|
125
144
|
return;
|
|
126
145
|
}
|
|
127
146
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency-exchange-rate-sync.service.js","sourceRoot":"","sources":["../../src/services/currency-exchange-rate-sync.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,wCAAwG;AACxG,
|
|
1
|
+
{"version":3,"file":"currency-exchange-rate-sync.service.js","sourceRoot":"","sources":["../../src/services/currency-exchange-rate-sync.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uplab/vendure-plugin-exchange-rates",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Exchange rates for Vendure in any base currency, from the ECB, Frankfurter, Monobank, the NBU or your own source, overridable per currency in the dashboard",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Uplab",
|