summaryrefslogtreecommitdiff
path: root/src/frontend/pages/api/currency.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/pages/api/currency.ts')
-rw-r--r--src/frontend/pages/api/currency.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/frontend/pages/api/currency.ts b/src/frontend/pages/api/currency.ts
new file mode 100644
index 0000000..fd69909
--- /dev/null
+++ b/src/frontend/pages/api/currency.ts
@@ -0,0 +1,25 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+import type { NextApiRequest, NextApiResponse } from 'next';
+import InstrumentationMiddleware from '../../utils/telemetry/InstrumentationMiddleware';
+import CurrencyGateway from '../../gateways/rpc/Currency.gateway';
+import { Empty } from '../../protos/demo';
+
+type TResponse = string[] | Empty;
+
+const handler = async ({ method }: NextApiRequest, res: NextApiResponse<TResponse>) => {
+ switch (method) {
+ case 'GET': {
+ const { currencyCodes = [] } = await CurrencyGateway.getSupportedCurrencies();
+
+ return res.status(200).json(currencyCodes);
+ }
+
+ default: {
+ return res.status(405);
+ }
+ }
+};
+
+export default InstrumentationMiddleware(handler);