From 4a6f917151c9a33d22d57467d3bc110add0fe11f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 16 Apr 2021 23:07:14 +0200 Subject: enable use of per-instance APIs also in C API --- src/include/taler_merchant_service.h | 57 ++++++++++++++++++++++++++++++++---- 1 file changed, 51 insertions(+), 6 deletions(-) (limited to 'src/include/taler_merchant_service.h') diff --git a/src/include/taler_merchant_service.h b/src/include/taler_merchant_service.h index 67f544e9..b897bd2c 100644 --- a/src/include/taler_merchant_service.h +++ b/src/include/taler_merchant_service.h @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2014-2020 Taler Systems SA + Copyright (C) 2014-2021 Taler Systems SA TALER is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software @@ -561,8 +561,10 @@ typedef void * Modify an existing instance in the backend. * * @param ctx the context - * @param backend_url HTTP base URL for the backend - * @param instance_id identity of the instance to get information about + * @param backend_url HTTP base URL for the backend (top-level "default" instance + * or base URL of an instance if @a instance_id is NULL) + * @param instance_id identity of the instance to modify information about; NULL + * if the instance is identified as part of the @a backend_url * @param accounts_length length of the @a accounts array * @param payto_uris URIs of the bank accounts of the merchant instance * @param name name of the merchant instance @@ -573,7 +575,6 @@ typedef void * @param default_max_deposit_fee default maximum deposit fee merchant is willing to pay * @param default_wire_transfer_delay default wire transfer delay merchant will ask for * @param default_pay_delay default validity period for offers merchant makes - * @param auth_token authorization token needed to access the instance, can be NULL * @param cb function to call with the * backend's instances information * @param cb_cls closure for @a config_cb @@ -609,6 +610,48 @@ TALER_MERCHANT_instance_patch_cancel ( struct TALER_MERCHANT_InstancePatchHandle *iph); +/** + * Handle for an operation to modify authentication settings. + */ +struct TALER_MERCHANT_InstanceAuthPatchHande; + + +/** + * Modify authentication for an existing instance in the backend. + * + * @param ctx the context + * @param backend_url HTTP base URL for the backend (top-level "default" instance + * or base URL of an instance if @a instance_id is NULL) + * @param instance_id identity of the instance to patch the authentication for; NULL + * if the instance is identified as part of the @a backend_url + * @param auth_token authorization token needed to access the instance, can be NULL + * to swith to no (or external) authentication + * @param cb function to call with the backend's response + * @param cb_cls closure for @a config_cb + * @return the instances handle; NULL upon error + */ +struct TALER_MERCHANT_InstanceAuthPatchHandle * +TALER_MERCHANT_instance_auth_patch ( + struct GNUNET_CURL_Context *ctx, + const char *backend_url, + const char *instance_id, + const char *auth_token, + TALER_MERCHANT_InstancePatchCallback cb, + void *cb_cls); + + +/** + * Cancel /private/auth request. Must not be called by clients after + * the callback was invoked. Afterwards, the authentication may or + * may not have been updated. + * + * @param iaph request to cancel. + */ +void +TALER_MERCHANT_instance_auth_patch_cancel ( + struct TALER_MERCHANT_InstanceAuthPatchHandle *iaph); + + /** * Handle for a GET /instances/$ID operation. */ @@ -769,8 +812,10 @@ typedef void * (i.e. for taxation). * * @param ctx the context - * @param backend_url HTTP base URL for the backend - * @param instance_id which instance should be deleted + * @param backend_url HTTP base URL for the backend (top-level "default" instance + * or base URL of an instance if @a instance_id is NULL) + * @param instance_id identity of the instance to modify information about; NULL + * if the instance is identified as part of the @a backend_url * @param instances_cb function to call with the * backend's return * @param instances_cb_cls closure for @a config_cb -- cgit v1.2.3