diff options
author | Sebastian <sebasjm@gmail.com> | 2023-03-02 13:51:03 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-03-02 13:51:03 -0300 |
commit | 2d5fbb22cdf6cde10004cea174fc90e71668746b (patch) | |
tree | 21be3694b459fa59f110d87346160dd048d2a280 /packages/merchant-backend-ui/src/utils | |
parent | f446a5921487c7196904f9aab00fc189ac6a9e3b (diff) | |
download | wallet-core-2d5fbb22cdf6cde10004cea174fc90e71668746b.tar.xz |
fix #7714
Diffstat (limited to 'packages/merchant-backend-ui/src/utils')
-rw-r--r-- | packages/merchant-backend-ui/src/utils/amount.ts | 69 | ||||
-rw-r--r-- | packages/merchant-backend-ui/src/utils/constants.ts | 47 | ||||
-rw-r--r-- | packages/merchant-backend-ui/src/utils/table.ts | 37 | ||||
-rw-r--r-- | packages/merchant-backend-ui/src/utils/types.ts | 31 |
4 files changed, 0 insertions, 184 deletions
diff --git a/packages/merchant-backend-ui/src/utils/amount.ts b/packages/merchant-backend-ui/src/utils/amount.ts deleted file mode 100644 index a54c52abe..000000000 --- a/packages/merchant-backend-ui/src/utils/amount.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2021 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ -import { amountFractionalBase, AmountJson, Amounts } from "@gnu-taler/taler-util"; -import { MerchantBackend } from "../declaration"; - -/** - * sums two prices, - * @param one - * @param two - * @returns - */ -const sumPrices = (one: string, two: string) => { - const [currency, valueOne] = one.split(':') - const [, valueTwo] = two.split(':') - return `${currency}:${parseInt(valueOne, 10) + parseInt(valueTwo, 10)}` -} - -/** - * merge refund with the same description and a difference less than one minute - * @param prev list of refunds that will hold the merged refunds - * @param cur new refund to add to the list - * @returns list with the new refund, may be merged with the last - */ -export function mergeRefunds(prev: MerchantBackend.Orders.RefundDetails[], cur: MerchantBackend.Orders.RefundDetails) { - let tail; - - if (prev.length === 0 || //empty list - cur.timestamp.t_s === 'never' || //current does not have timestamp - (tail = prev[prev.length - 1]).timestamp.t_s === 'never' || // last does not have timestamp - cur.reason !== tail.reason || //different reason - Math.abs(cur.timestamp.t_s - tail.timestamp.t_s) > 1000 * 60) {//more than 1 minute difference - - prev.push(cur) - return prev - } - - prev[prev.length - 1] = { - ...tail, - amount: sumPrices(tail.amount, cur.amount) - } - - return prev -} - -export const rate = (one: string, two: string) => { - const a = Amounts.parseOrThrow(one) - const b = Amounts.parseOrThrow(two) - const af = toFloat(a) - const bf = toFloat(b) - if (bf === 0) return 0 - return af / bf -} - -function toFloat(amount: AmountJson) { - return amount.value + (amount.fraction / amountFractionalBase); -} diff --git a/packages/merchant-backend-ui/src/utils/constants.ts b/packages/merchant-backend-ui/src/utils/constants.ts deleted file mode 100644 index 37c46e4c2..000000000 --- a/packages/merchant-backend-ui/src/utils/constants.ts +++ /dev/null @@ -1,47 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2021 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -/** -* -* @author Sebastian Javier Marchano (sebasjm) -*/ - -//https://tools.ietf.org/html/rfc8905 -export const PAYTO_REGEX = /^payto:\/\/[a-zA-Z][a-zA-Z0-9-.]+(\/[a-zA-Z0-9\-\.\~\(\)@_%:!$&'*+,;=]*)*\??((amount|receiver-name|sender-name|instruction|message)=[a-zA-Z0-9\-\.\~\(\)@_%:!$'*+,;=]*&?)*$/ -export const PAYTO_WIRE_METHOD_LOOKUP = /payto:\/\/([a-zA-Z][a-zA-Z0-9-.]+)\/.*/ - -export const AMOUNT_REGEX = /^[a-zA-Z][a-zA-Z]*:[0-9][0-9,]*\.?[0-9,]*$/ - -export const INSTANCE_ID_LOOKUP = /^\/instances\/([^/]*)\/?$/ - -export const AMOUNT_ZERO_REGEX = /^[a-zA-Z][a-zA-Z]*:0$/ - -export const CROCKFORD_BASE32_REGEX = /^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]+[*~$=U]*$/ - -export const URL_REGEX = /^((https?:)(\/\/\/?)([\w]*(?::[\w]*)?@)?([\d\w\.-]+)(?::(\d+))?)\/$/ - -// how much rows we add every time user hit load more -export const PAGE_SIZE = 20 -// how bigger can be the result set -// after this threshold, load more with move the cursor -export const MAX_RESULT_SIZE = PAGE_SIZE * 2 - 1; - -// how much we will wait for all request, in seconds -export const DEFAULT_REQUEST_TIMEOUT = 10; - -export const MAX_IMAGE_SIZE = 1024 * 1024; - -export const INSTANCE_ID_REGEX = /^[a-zA-Z0-9][a-zA-Z0-9_.@-]+$/ diff --git a/packages/merchant-backend-ui/src/utils/table.ts b/packages/merchant-backend-ui/src/utils/table.ts deleted file mode 100644 index 198c46543..000000000 --- a/packages/merchant-backend-ui/src/utils/table.ts +++ /dev/null @@ -1,37 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2021 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { WithId } from "../declaration"; - -/** -* -* @author Sebastian Javier Marchano (sebasjm) -*/ - -export interface Actions<T extends WithId> { - element: T; - type: 'DELETE' | 'UPDATE'; -} - -function notEmpty<TValue>(value: TValue | null | undefined): value is TValue { - return value !== null && value !== undefined; -} - -export function buildActions<T extends WithId>(instances: T[], selected: string[], action: 'DELETE'): Actions<T>[] { - return selected.map(id => instances.find(i => i.id === id)) - .filter(notEmpty) - .map(id => ({ element: id, type: action })) -} diff --git a/packages/merchant-backend-ui/src/utils/types.ts b/packages/merchant-backend-ui/src/utils/types.ts deleted file mode 100644 index 9e49d39e1..000000000 --- a/packages/merchant-backend-ui/src/utils/types.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - This file is part of GNU Taler - (C) 2021 Taler Systems S.A. - - GNU Taler is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -import { VNode } from "preact" - -export interface KeyValue { - [key: string]: string; -} - -export interface Notification { - message: string; - description?: string | VNode; - type: MessageType; -} - -export type ValueOrFunction<T> = T | ((p: T) => T) -export type MessageType = 'INFO' | 'WARN' | 'ERROR' | 'SUCCESS' - |