/* This file is part of GNU Taler (C) 2021-2024 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 { Query } from "@gnu-taler/web-util/testing"; import { MerchantBackend } from "../declaration.js"; //////////////////// // ORDER //////////////////// export const API_CREATE_ORDER: Query< MerchantBackend.Orders.PostOrderRequest, MerchantBackend.Orders.PostOrderResponse > = { method: "POST", url: "http://backend/instances/default/private/orders", }; export const API_GET_ORDER_BY_ID = ( id: string, ): Query => ({ method: "GET", url: `http://backend/instances/default/private/orders/${id}`, }); export const API_LIST_ORDERS: Query< unknown, MerchantBackend.Orders.OrderHistory > = { method: "GET", url: "http://backend/instances/default/private/orders", }; export const API_REFUND_ORDER_BY_ID = ( id: string, ): Query< MerchantBackend.Orders.RefundRequest, MerchantBackend.Orders.MerchantRefundResponse > => ({ method: "POST", url: `http://backend/instances/default/private/orders/${id}/refund`, }); export const API_FORGET_ORDER_BY_ID = ( id: string, ): Query => ({ method: "PATCH", url: `http://backend/instances/default/private/orders/${id}/forget`, }); export const API_DELETE_ORDER = ( id: string, ): Query => ({ method: "DELETE", url: `http://backend/instances/default/private/orders/${id}`, }); //////////////////// // TRANSFER //////////////////// export const API_LIST_TRANSFERS: Query< unknown, MerchantBackend.Transfers.TransferList > = { method: "GET", url: "http://backend/instances/default/private/transfers", }; export const API_INFORM_TRANSFERS: Query< MerchantBackend.Transfers.TransferInformation, {} > = { method: "POST", url: "http://backend/instances/default/private/transfers", }; //////////////////// // PRODUCT //////////////////// export const API_CREATE_PRODUCT: Query< MerchantBackend.Products.ProductAddDetail, unknown > = { method: "POST", url: "http://backend/instances/default/private/products", }; export const API_LIST_PRODUCTS: Query< unknown, MerchantBackend.Products.InventorySummaryResponse > = { method: "GET", url: "http://backend/instances/default/private/products", }; export const API_GET_PRODUCT_BY_ID = ( id: string, ): Query => ({ method: "GET", url: `http://backend/instances/default/private/products/${id}`, }); export const API_UPDATE_PRODUCT_BY_ID = ( id: string, ): Query< MerchantBackend.Products.ProductPatchDetail, MerchantBackend.Products.InventorySummaryResponse > => ({ method: "PATCH", url: `http://backend/instances/default/private/products/${id}`, }); export const API_DELETE_PRODUCT = (id: string): Query => ({ method: "DELETE", url: `http://backend/instances/default/private/products/${id}`, }); //////////////////// // RESERVES //////////////////// export const API_CREATE_RESERVE: Query< MerchantBackend.Rewards.ReserveCreateRequest, MerchantBackend.Rewards.ReserveCreateConfirmation > = { method: "POST", url: "http://backend/instances/default/private/reserves", }; export const API_LIST_RESERVES: Query< unknown, MerchantBackend.Rewards.RewardReserveStatus > = { method: "GET", url: "http://backend/instances/default/private/reserves", }; export const API_GET_RESERVE_BY_ID = ( pub: string, ): Query => ({ method: "GET", url: `http://backend/instances/default/private/reserves/${pub}`, }); export const API_GET_REWARD_BY_ID = ( pub: string, ): Query => ({ method: "GET", url: `http://backend/instances/default/private/rewards/${pub}`, }); export const API_AUTHORIZE_REWARD_FOR_RESERVE = ( pub: string, ): Query< MerchantBackend.Rewards.RewardCreateRequest, MerchantBackend.Rewards.RewardCreateConfirmation > => ({ method: "POST", url: `http://backend/instances/default/private/reserves/${pub}/authorize-reward`, }); export const API_AUTHORIZE_REWARD: Query< MerchantBackend.Rewards.RewardCreateRequest, MerchantBackend.Rewards.RewardCreateConfirmation > = { method: "POST", url: `http://backend/instances/default/private/rewards`, }; export const API_DELETE_RESERVE = (id: string): Query => ({ method: "DELETE", url: `http://backend/instances/default/private/reserves/${id}`, }); //////////////////// // INSTANCE ADMIN //////////////////// export const API_CREATE_INSTANCE: Query< MerchantBackend.Instances.InstanceConfigurationMessage, unknown > = { method: "POST", url: "http://backend/management/instances", }; export const API_GET_INSTANCE_BY_ID = ( id: string, ): Query => ({ method: "GET", url: `http://backend/management/instances/${id}`, }); export const API_GET_INSTANCE_KYC_BY_ID = ( id: string, ): Query => ({ method: "GET", url: `http://backend/management/instances/${id}/kyc`, }); export const API_LIST_INSTANCES: Query< unknown, MerchantBackend.Instances.InstancesResponse > = { method: "GET", url: "http://backend/management/instances", }; export const API_UPDATE_INSTANCE_BY_ID = ( id: string, ): Query< MerchantBackend.Instances.InstanceReconfigurationMessage, unknown > => ({ method: "PATCH", url: `http://backend/management/instances/${id}`, }); export const API_UPDATE_INSTANCE_AUTH_BY_ID = ( id: string, ): Query< MerchantBackend.Instances.InstanceAuthConfigurationMessage, unknown > => ({ method: "POST", url: `http://backend/management/instances/${id}/auth`, }); export const API_DELETE_INSTANCE = (id: string): Query => ({ method: "DELETE", url: `http://backend/management/instances/${id}`, }); //////////////////// // AUTH //////////////////// export const API_NEW_LOGIN: Query< MerchantBackend.Instances.LoginTokenRequest, unknown > = ({ method: "POST", url: `http://backend/private/token`, }); //////////////////// // INSTANCE //////////////////// export const API_GET_CURRENT_INSTANCE: Query< unknown, MerchantBackend.Instances.QueryInstancesResponse > = { method: "GET", url: `http://backend/instances/default/private/`, }; export const API_GET_CURRENT_INSTANCE_KYC: Query< unknown, MerchantBackend.KYC.AccountKycRedirects > = { method: "GET", url: `http://backend/instances/default/private/kyc`, }; export const API_UPDATE_CURRENT_INSTANCE: Query< MerchantBackend.Instances.InstanceReconfigurationMessage, unknown > = { method: "PATCH", url: `http://backend/instances/default/private/`, }; export const API_UPDATE_CURRENT_INSTANCE_AUTH: Query< MerchantBackend.Instances.InstanceAuthConfigurationMessage, unknown > = { method: "POST", url: `http://backend/instances/default/private/auth`, }; export const API_DELETE_CURRENT_INSTANCE: Query = { method: "DELETE", url: `http://backend/instances/default/private`, };