From: Michael Tremer Date: Fri, 27 Jun 2025 08:28:27 +0000 (+0000) Subject: client: Refactor deleting repositories X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6c7c51da8849e960ce7d12f0f6c0fc5c8239dabe;p=pakfire.git client: Refactor deleting repositories Signed-off-by: Michael Tremer --- diff --git a/src/cli/lib/repo_delete.c b/src/cli/lib/repo_delete.c index 49a5c08d..c8a93dec 100644 --- a/src/cli/lib/repo_delete.c +++ b/src/cli/lib/repo_delete.c @@ -60,33 +60,24 @@ static error_t parse(int key, char* arg, struct argp_state* state, void* data) { return 0; } +static int ready_callback(struct pakfire_client* client, void* data) { + const struct cli_local_args* local_args = data; + + // Delete the repository + return pakfire_client_delete_repo(client, + local_args->distro, local_args->name); +} + int cli_repo_delete(void* data, int argc, char* argv[]) { struct cli_global_args* global_args = data; struct cli_local_args local_args = {}; - struct pakfire_client* client = NULL; - struct json_object* repo = NULL; int r; // Parse the command line r = cli_parse(NULL, NULL, args_doc, doc, parse, 0, argc, argv, &local_args); if (r) - goto ERROR; - - // Connect to the build service - r = cli_setup_client(&client, global_args); - if (r < 0) - goto ERROR; - - // Delete the repository - r = pakfire_client_delete_repo(client, local_args.distro, local_args.name); - if (r) - goto ERROR; - -ERROR: - if (client) - pakfire_client_unref(client); - if (repo) - json_object_put(repo); + return r; - return r; + // Run the client + return cli_run_client(global_args, ready_callback, &local_args); } diff --git a/src/pakfire/client.c b/src/pakfire/client.c index 17d267d2..d20344e6 100644 --- a/src/pakfire/client.c +++ b/src/pakfire/client.c @@ -1479,22 +1479,24 @@ int pakfire_client_delete_repo(struct pakfire_client* self, // Create a new xfer r = pakfire_client_xfer_create(&xfer, self, "/api/v1/repos/%s/%s", distro, name); - if (r) + if (r < 0) goto ERROR; // Ask to DELETE r = pakfire_xfer_set_method(xfer, PAKFIRE_METHOD_DELETE); - if (r) + if (r < 0) goto ERROR; // Enable authentication r = pakfire_client_xfer_auth(self, xfer); - if (r) + if (r < 0) goto ERROR; - // Send the request - r = pakfire_xfer_run_api_request(xfer, NULL, NULL); - if (r) + // XXX This needs a callback + + // Enqueue the transfer + r = pakfire_httpclient_enqueue(self->httpclient, xfer); + if (r < 0) goto ERROR; ERROR: