return 0;
}
+static int ready_callback(struct pakfire_client* client, void* data) {
+ const struct cli_local_args* local_args = data;
+ int r;
+
+ // Delete all uploads
+ for (unsigned int i = 0; i < local_args->num_uploads; i++) {
+ r = pakfire_client_delete_upload(client, local_args->uploads[i]);
+ if (r < 0)
+ return r;
+ }
+
+ return 0;
+}
+
int cli_upload_delete(void* data, int argc, char* argv[]) {
struct cli_global_args* global_args = data;
struct cli_local_args local_args = {};
if (r < 0)
goto ERROR;
- // Delete uploads
- for (unsigned int i = 0; i < local_args.num_uploads; i++) {
- r = pakfire_client_delete_upload(client, local_args.uploads[i]);
- if (r)
- goto ERROR;
- }
+ // Set ready callback
+ pakfire_client_set_ready_callback(client, ready_callback, &local_args);
+
+ // Run the client
+ r = pakfire_client_run(client);
ERROR:
if (client)
int pakfire_client_delete_upload(struct pakfire_client* self, const char* uuid) {
struct pakfire_xfer* xfer = NULL;
- struct json_object* response = NULL;
int r;
// Create a new xfer
r = pakfire_client_xfer_create(&xfer, self, "/api/v1/uploads/%s", uuid);
- 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, &response);
- if (r)
+ // Enqueue the transfer
+ r = pakfire_httpclient_enqueue(self->httpclient, xfer);
+ if (r < 0)
goto ERROR;
ERROR:
if (xfer)
pakfire_xfer_unref(xfer);
- if (response)
- json_object_put(response);
return r;
}