diff options
Diffstat (limited to 'packages/merchant-backoffice/src/utils')
-rw-r--r-- | packages/merchant-backoffice/src/utils/amount.ts | 70 | ||||
-rw-r--r-- | packages/merchant-backoffice/src/utils/constants.ts | 194 | ||||
-rw-r--r-- | packages/merchant-backoffice/src/utils/switchableAxios.ts | 66 | ||||
-rw-r--r-- | packages/merchant-backoffice/src/utils/table.ts | 37 | ||||
-rw-r--r-- | packages/merchant-backoffice/src/utils/types.ts | 31 |
5 files changed, 0 insertions, 398 deletions
diff --git a/packages/merchant-backoffice/src/utils/amount.ts b/packages/merchant-backoffice/src/utils/amount.ts deleted file mode 100644 index 61e3312..0000000 --- a/packages/merchant-backoffice/src/utils/amount.ts +++ /dev/null @@ -1,70 +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 doesnt have timestamp - (tail = prev[prev.length - 1]).timestamp.t_s === 'never' || // last doesnt have timestamp - cur.reason !== tail.reason || //different reason - cur.pending !== tail.pending || //different pending state - 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-backoffice/src/utils/constants.ts b/packages/merchant-backoffice/src/utils/constants.ts deleted file mode 100644 index 5356a1a..0000000 --- a/packages/merchant-backoffice/src/utils/constants.ts +++ /dev/null @@ -1,194 +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_.@-]+$/ - -export const COUNTRY_TABLE = { - AE: "U.A.E.", - AF: "Afghanistan", - AL: "Albania", - AM: "Armenia", - AN: "Netherlands Antilles", - AR: "Argentina", - AT: "Austria", - AU: "Australia", - AZ: "Azerbaijan", - BA: "Bosnia and Herzegovina", - BD: "Bangladesh", - BE: "Belgium", - BG: "Bulgaria", - BH: "Bahrain", - BN: "Brunei Darussalam", - BO: "Bolivia", - BR: "Brazil", - BT: "Bhutan", - BY: "Belarus", - BZ: "Belize", - CA: "Canada", - CG: "Congo", - CH: "Switzerland", - CI: "Cote d'Ivoire", - CL: "Chile", - CM: "Cameroon", - CN: "People's Republic of China", - CO: "Colombia", - CR: "Costa Rica", - CS: "Serbia and Montenegro", - CZ: "Czech Republic", - DE: "Germany", - DK: "Denmark", - DO: "Dominican Republic", - DZ: "Algeria", - EC: "Ecuador", - EE: "Estonia", - EG: "Egypt", - ER: "Eritrea", - ES: "Spain", - ET: "Ethiopia", - FI: "Finland", - FO: "Faroe Islands", - FR: "France", - GB: "United Kingdom", - GD: "Caribbean", - GE: "Georgia", - GL: "Greenland", - GR: "Greece", - GT: "Guatemala", - HK: "Hong Kong", - // HK: "Hong Kong S.A.R.", - HN: "Honduras", - HR: "Croatia", - HT: "Haiti", - HU: "Hungary", - ID: "Indonesia", - IE: "Ireland", - IL: "Israel", - IN: "India", - IQ: "Iraq", - IR: "Iran", - IS: "Iceland", - IT: "Italy", - JM: "Jamaica", - JO: "Jordan", - JP: "Japan", - KE: "Kenya", - KG: "Kyrgyzstan", - KH: "Cambodia", - KR: "South Korea", - KW: "Kuwait", - KZ: "Kazakhstan", - LA: "Laos", - LB: "Lebanon", - LI: "Liechtenstein", - LK: "Sri Lanka", - LT: "Lithuania", - LU: "Luxembourg", - LV: "Latvia", - LY: "Libya", - MA: "Morocco", - MC: "Principality of Monaco", - MD: "Moldava", - // MD: "Moldova", - ME: "Montenegro", - MK: "Former Yugoslav Republic of Macedonia", - ML: "Mali", - MM: "Myanmar", - MN: "Mongolia", - MO: "Macau S.A.R.", - MT: "Malta", - MV: "Maldives", - MX: "Mexico", - MY: "Malaysia", - NG: "Nigeria", - NI: "Nicaragua", - NL: "Netherlands", - NO: "Norway", - NP: "Nepal", - NZ: "New Zealand", - OM: "Oman", - PA: "Panama", - PE: "Peru", - PH: "Philippines", - PK: "Islamic Republic of Pakistan", - PL: "Poland", - PR: "Puerto Rico", - PT: "Portugal", - PY: "Paraguay", - QA: "Qatar", - RE: "Reunion", - RO: "Romania", - RS: "Serbia", - RU: "Russia", - RW: "Rwanda", - SA: "Saudi Arabia", - SE: "Sweden", - SG: "Singapore", - SI: "Slovenia", - SK: "Slovak", - SN: "Senegal", - SO: "Somalia", - SR: "Suriname", - SV: "El Salvador", - SY: "Syria", - TH: "Thailand", - TJ: "Tajikistan", - TM: "Turkmenistan", - TN: "Tunisia", - TR: "Turkey", - TT: "Trinidad and Tobago", - TW: "Taiwan", - TZ: "Tanzania", - UA: "Ukraine", - US: "United States", - UY: "Uruguay", - VA: "Vatican", - VE: "Venezuela", - VN: "Viet Nam", - YE: "Yemen", - ZA: "South Africa", - ZW: "Zimbabwe" -} - diff --git a/packages/merchant-backoffice/src/utils/switchableAxios.ts b/packages/merchant-backoffice/src/utils/switchableAxios.ts deleted file mode 100644 index be7eedd..0000000 --- a/packages/merchant-backoffice/src/utils/switchableAxios.ts +++ /dev/null @@ -1,66 +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 axios, { AxiosPromise, AxiosRequestConfig } from "axios"; - -/** - * - * @author Sebastian Javier Marchano (sebasjm) - */ - -export let removeAxiosCancelToken = false; - -export let axiosHandler = function doAxiosRequest(config: AxiosRequestConfig): AxiosPromise<any> { - return axios(config) -} - -/** - * Set this backend library to testing mode. - * Instead of calling the axios library the @handler will be called - * - * @param handler callback that will mock axios - */ -export function setAxiosRequestAsTestingEnvironment(handler: AxiosHandler): void { - removeAxiosCancelToken = true; - axiosHandler = function defaultTestingHandler(config) { - const currentHanlder = listOfHandlersToUseOnce.shift() - if (!currentHanlder) { - return handler(config) - } - - return currentHanlder(config) - } -} - -type AxiosHandler = (config: AxiosRequestConfig) => AxiosPromise<any>; -type AxiosArguments = { args: AxiosRequestConfig | undefined } - - -const listOfHandlersToUseOnce = new Array<AxiosHandler>() - -/** - * - * @param handler mock function - * @returns savedArgs - */ -export function mockAxiosOnce(handler: AxiosHandler): { args: AxiosRequestConfig | undefined } { - const savedArgs: AxiosArguments = { args: undefined } - listOfHandlersToUseOnce.push((config: AxiosRequestConfig): AxiosPromise<any> => { - savedArgs.args = config; - return handler(config) - }) - return savedArgs; -} diff --git a/packages/merchant-backoffice/src/utils/table.ts b/packages/merchant-backoffice/src/utils/table.ts deleted file mode 100644 index 3d713a6..0000000 --- a/packages/merchant-backoffice/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>(intances: T[], selected: string[], action: 'DELETE'): Actions<T>[] { - return selected.map(id => intances.find(i => i.id === id)) - .filter(notEmpty) - .map(id => ({ element: id, type: action })) -} diff --git a/packages/merchant-backoffice/src/utils/types.ts b/packages/merchant-backoffice/src/utils/types.ts deleted file mode 100644 index a3f23ac..0000000 --- a/packages/merchant-backoffice/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; - details?: string | VNode; - type: MessageType; -} - -export type ValueOrFunction<T> = T | ((p: T) => T); -export type MessageType = "INFO" | "WARN" | "ERROR" | "SUCCESS"; |