/* 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 */ /** * * @author Sebastian Javier Marchano (sebasjm) */ import { MerchantBackend } from '../declaration'; import { Props } from './ShowOrderDetails'; const defaultContractTerms: MerchantBackend.ContractTerms = { order_id: 'XRS8876388373', amount: 'USD:10', summary: 'this is a short summary', pay_deadline: { t_s: Math.round(new Date().getTime() / 1000) + 6 * 24 * 60 * 60 }, merchant: { name: 'the merchant (inc)', address: { country_subdivision: 'Buenos Aires', town: 'CABA', country: 'Argentina' }, jurisdiction: { country_subdivision: 'Cordoba', town: 'Capital', country: 'Argentina' }, }, max_fee: 'USD:0.1', max_wire_fee: 'USD:0.2', wire_fee_amortization: 1, products: [], timestamp: { t_s: Math.round(new Date().getTime() / 1000) }, auditors: [], exchanges: [], h_wire: '', merchant_base_url: 'http://merchant.base.url/', merchant_pub: 'QWEASDQWEASD', nonce: 'NONCE', refund_deadline: { t_s: Math.round(new Date().getTime() / 1000) + 6 * 24 * 60 * 60 }, wire_method: 'x-taler-bank', wire_transfer_deadline: { t_s: Math.round(new Date().getTime() / 1000) + 3 * 24 * 60 * 60 }, }; const inSixDays = Math.round(new Date().getTime() / 1000) + 6 * 24 * 60 * 60 const in10Minutes = Math.round(new Date().getTime() / 1000) + 10 * 60 const in15Minutes = Math.round(new Date().getTime() / 1000) + 15 * 60 const in20Minutes = Math.round(new Date().getTime() / 1000) + 20 * 60 export const exampleData: { [name: string]: Props } = { Simplest: { order_summary: 'here goes the order summary', contract_terms: defaultContractTerms, }, WithRefundAmount: { order_summary: 'here goes the order summary', refund_amount: 'USD:10', contract_terms: defaultContractTerms, }, WithDeliveryDate: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, delivery_date: { t_s: inSixDays }, }, }, WithDeliveryLocation: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, delivery_location: { address_lines: ['addr line 1', 'addr line 2', 'addr line 3', 'addr line 4', 'addr line 5', 'addr line 6', 'addr line 7'], building_name: 'building-name', building_number: 'building-number', country: 'country', country_subdivision: 'country sub', district: 'district', post_code: 'post-code', street: 'street', town: 'town', town_location: 'town loc', }, }, }, WithDeliveryLocationAndDate: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, delivery_location: { address_lines: ['addr1', 'addr2', 'addr3', 'addr4', 'addr5', 'addr6', 'addr7'], building_name: 'building-name', building_number: 'building-number', country: 'country', country_subdivision: 'country sub', district: 'district', post_code: 'post-code', street: 'street', town: 'town', town_location: 'town loc', }, delivery_date: { t_s: inSixDays }, }, }, WithThreeProducts: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, products: [{ description: 'description of the first product', price: '5:USD', quantity: 1, delivery_date: { t_s: in10Minutes }, product_id: '12333', }, { description: 'another description', price: '10:USD', quantity: 5, unit: 't-shirt', }, { description: 'one last description', price: '10:USD', quantity: 5 }] } as MerchantBackend.ContractTerms }, WithProductWithTaxes: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, products: [{ description: 'description of the first product', price: '5:USD', quantity: 1, unit: 'beer', delivery_date: { t_s: in10Minutes }, product_id: '456', taxes: [{ name: 'VAT', tax: 'USD:1' }], }, { description: 'one last description', price: '10:USD', quantity: 5, product_id: '123', unit: 'beer', taxes: [{ name: 'VAT', tax: 'USD:1' }], }] } as MerchantBackend.ContractTerms }, WithExchangeList: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, exchanges: [{ master_pub: 'ABCDEFGHIJKLMNO', url: 'http://exchange0.taler.net' }, { master_pub: 'AAAAAAAAAAAAAAA', url: 'http://exchange1.taler.net' }, { master_pub: 'BBBBBBBBBBBBBBB', url: 'http://exchange2.taler.net' }] }, }, WithAuditorList: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, auditors: [{ auditor_pub: 'ABCDEFGHIJKLMNO', name: 'the USD auditor', url: 'http://auditor-usd.taler.net' }, { auditor_pub: 'OPQRSTUVWXYZABCD', name: 'the EUR auditor', url: 'http://auditor-eur.taler.net' }] }, }, WithAutoRefund: { order_summary: 'here goes the order summary', contract_terms: { ...defaultContractTerms, auto_refund: { d_us: 1000 * 60 * 60 * 26 + 1000 * 60 * 30 } }, }, WithFulfillmentURL: { order_summary: 'this is the order with fulfillmentURL', contract_terms: { ...defaultContractTerms, fulfillment_url: "https://demo.taler.net", fulfillment_message: "Congratulations! You just purchased an valuable item!" }, }, WithFulfillmentMessage: { order_summary: 'this is the order with fulfillment message', contract_terms: { ...defaultContractTerms, fulfillment_message: "Congratulations! You just purchased an valuable item!" }, }, WithoutWireTransferDeadline: { order_summary: 'this is the order without transfer deadline', contract_terms: { ...defaultContractTerms, // @ts-ignore wire_transfer_deadline: undefined, }, }, ZeroFee: { order_summary: 'example with zero fee', contract_terms: { ...defaultContractTerms, // @ts-ignore max_fee: undefined, // @ts-ignore max_wire_fee: undefined, fulfillment_message: "Congratulations! You just purchased an valuable item!" }, }, }