fakebank_tbr.c (3030B)
1 /* 2 This file is part of TALER 3 (C) 2016-2024 Taler Systems SA 4 5 TALER is free software; you can redistribute it and/or 6 modify it under the terms of the GNU General Public License 7 as published by the Free Software Foundation; either version 3, 8 or (at your option) any later version. 9 10 TALER is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public 16 License along with TALER; see the file COPYING. If not, 17 see <http://www.gnu.org/licenses/> 18 */ 19 /** 20 * @file bank-lib/fakebank_tbr.c 21 * @brief main entry point for the Taler Bank Revenue API 22 * @author Christian Grothoff <christian@grothoff.org> 23 */ 24 #include "taler/platform.h" 25 #include "taler/taler_fakebank_lib.h" 26 #include "taler/taler_bank_service.h" 27 #include "taler/taler_mhd_lib.h" 28 #include <gnunet/gnunet_mhd_compat.h> 29 #include "fakebank.h" 30 #include "fakebank_tbr.h" 31 #include "fakebank_tbr_get_history.h" 32 #include "fakebank_tbr_get_root.h" 33 34 35 MHD_RESULT 36 TALER_FAKEBANK_tbr_main_ ( 37 struct TALER_FAKEBANK_Handle *h, 38 struct MHD_Connection *connection, 39 const char *account, 40 const char *url, 41 const char *method, 42 const char *upload_data, 43 size_t *upload_data_size, 44 void **con_cls) 45 { 46 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 47 "Fakebank - Anastasis API: serving URL `%s' for account `%s'\n", 48 url, 49 account); 50 51 if ( (0 == strcmp (url, 52 "/config")) && 53 (0 == strcasecmp (method, 54 MHD_HTTP_METHOD_GET)) ) 55 { 56 /* GET /config */ 57 return TALER_MHD_REPLY_JSON_PACK ( 58 connection, 59 MHD_HTTP_OK, 60 GNUNET_JSON_pack_string ("version", 61 "0:0:0"), 62 GNUNET_JSON_pack_string ("currency", 63 h->currency), 64 GNUNET_JSON_pack_string ("implementation", 65 "urn:net:taler:specs:bank:fakebank"), 66 GNUNET_JSON_pack_string ("name", 67 "taler-revenue")); 68 } 69 70 if (0 == strcasecmp (method, 71 MHD_HTTP_METHOD_GET)) 72 { 73 if ( (0 == strcmp (url, 74 "/history")) && 75 (NULL != account) ) 76 return TALER_FAKEBANK_tbr_get_history (h, 77 connection, 78 account, 79 con_cls); 80 if (0 == strcmp (url, 81 "/")) 82 return TALER_FAKEBANK_tbr_get_root (h, 83 connection); 84 } 85 /* Unexpected URL path, just close the connection. */ 86 TALER_LOG_ERROR ("Breaking URL: %s %s\n", 87 method, 88 url); 89 GNUNET_break_op (0); 90 return TALER_MHD_reply_with_error ( 91 connection, 92 MHD_HTTP_NOT_FOUND, 93 TALER_EC_GENERIC_ENDPOINT_UNKNOWN, 94 url); 95 }