aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-12-12 16:43:53 +0100
committerFlorian Dold <florian@dold.me>2023-12-12 16:43:53 +0100
commit0726a39a6ae1064d59c316547fab5c39df62460b (patch)
tree5c4e183b8680e79a5ef8c63b82b08780e061a0d1 /packages/taler-wallet-core
parent04f46f2edc993ee405ba2b267d3fe7cf8cf75d55 (diff)
downloadwallet-core-0726a39a6ae1064d59c316547fab5c39df62460b.tar.xz
-add tosAvailableLanguages
Diffstat (limited to 'packages/taler-wallet-core')
-rw-r--r--packages/taler-wallet-core/src/operations/exchanges.ts59
1 files changed, 33 insertions, 26 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts
index 6afafd9f5..88127b71f 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -27,27 +27,24 @@ import {
AbsoluteTime,
Amounts,
CancellationToken,
- canonicalizeBaseUrl,
- codecForExchangeKeysJson,
- DenominationPubKey,
DenomKeyType,
+ DenomOperationMap,
+ DenominationInfo,
+ DenominationPubKey,
Duration,
- durationFromSpec,
- encodeCrock,
ExchangeAuditor,
+ ExchangeDetailedResponse,
ExchangeGlobalFees,
+ ExchangeListItem,
ExchangeSignKeyJson,
- ExchangeEntryState,
ExchangeWireAccount,
+ ExchangesListResponse,
+ FeeDescription,
GetExchangeTosResult,
GlobalFees,
- hashDenomPub,
- j2s,
LibtoolVersion,
Logger,
- makeErrorDetail,
NotificationType,
- parsePaytoUri,
Recoup,
TalerError,
TalerErrorCode,
@@ -61,16 +58,18 @@ import {
WireFeeMap,
WireFeesJson,
WireInfo,
- FeeDescription,
- DenomOperationMap,
- DenominationInfo,
- ExchangeDetailedResponse,
- ExchangeListItem,
- ExchangesListResponse,
+ canonicalizeBaseUrl,
+ codecForExchangeKeysJson,
+ durationFromSpec,
+ encodeCrock,
+ hashDenomPub,
+ j2s,
+ makeErrorDetail,
+ parsePaytoUri,
} from "@gnu-taler/taler-util";
import {
- getExpiry,
HttpRequestLibrary,
+ getExpiry,
readSuccessResponseJsonOrThrow,
readSuccessResponseTextOrThrow,
} from "@gnu-taler/taler-util/http";
@@ -82,32 +81,30 @@ import {
WalletStoresV1,
} from "../db.js";
import {
- createTimeline,
ExchangeEntryDbRecordStatus,
ExchangeEntryDbUpdateStatus,
- isWithdrawableDenom,
OpenedPromise,
+ WalletDbReadWriteTransaction,
+ createTimeline,
+ isWithdrawableDenom,
openPromise,
selectBestForOverlappingDenominations,
selectMinimumFee,
timestampPreciseFromDb,
timestampPreciseToDb,
timestampProtocolToDb,
- WalletDbReadWriteTransaction,
} from "../index.js";
import { CancelFn, InternalWalletState } from "../internal-wallet-state.js";
import { checkDbInvariant } from "../util/invariants.js";
import { GetReadOnlyAccess, GetReadWriteAccess } from "../util/query.js";
import { WALLET_EXCHANGE_PROTOCOL_VERSION } from "../versions.js";
import {
- getExchangeEntryStatusFromRecord,
- getExchangeState,
- getExchangeTosStatusFromRecord,
- getExchangeUpdateStatusFromRecord,
- makeExchangeListItem,
TaskIdentifiers,
TaskRunResult,
TaskRunResultType,
+ getExchangeState,
+ getExchangeTosStatusFromRecord,
+ makeExchangeListItem,
} from "./common.js";
const logger = new Logger("exchanges.ts");
@@ -123,6 +120,7 @@ interface ExchangeTosDownloadResult {
tosEtag: string;
tosContentType: string;
tosContentLanguage: string | undefined;
+ tosAvailableLanguages: string[];
}
async function downloadExchangeWithTermsOfService(
@@ -153,8 +151,16 @@ async function downloadExchangeWithTermsOfService(
const tosEtag = resp.headers.get("etag") || "unknown";
const tosContentLanguage = resp.headers.get("content-language") || undefined;
const tosContentType = resp.headers.get("content-type") || "text/plain";
+ const availLangStr = resp.headers.get("avail-languages") || "";
+ const tosAvailableLanguages = availLangStr.split(",").map((x) => x.trim());
- return { tosText, tosEtag, tosContentType, tosContentLanguage };
+ return {
+ tosText,
+ tosEtag,
+ tosContentType,
+ tosContentLanguage,
+ tosAvailableLanguages,
+ };
}
/**
@@ -1190,6 +1196,7 @@ export async function getExchangeTos(
contentType: tosDownload.tosContentType,
contentLanguage: tosDownload.tosContentLanguage,
tosStatus: getExchangeTosStatusFromRecord(exchange),
+ tosAvailableLanguages: tosDownload.tosAvailableLanguages,
};
}