]> git.ipfire.org Git - pakfire.git/commitdiff
xfer: Accept a JSON request object to send as payload for API requests
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 17:07:14 +0000 (17:07 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 21 Jun 2025 17:07:14 +0000 (17:07 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/buildservice.c
src/pakfire/job.c
src/pakfire/xfer.c
src/pakfire/xfer.h

index 9f66108ccf01be3cecce8dba3a50d2ce2292ac59..03896dfd83978ed7b896d9bd6c92aab57be05d0e 100644 (file)
@@ -319,7 +319,7 @@ int pakfire_buildservice_auth_user(struct pakfire_buildservice* self,
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -408,7 +408,7 @@ int pakfire_buildservice_build(struct pakfire_buildservice* service, const char*
        }
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, NULL);
+       r = pakfire_xfer_run_api_request(xfer, NULL, NULL);
        if (r)
                goto ERROR;
 
@@ -526,13 +526,8 @@ static int pakfire_buildservice_create_upload(struct pakfire_buildservice* servi
        if (r < 0)
                goto ERROR;
 
-       // Add the payload
-       r = pakfire_xfer_set_json_payload(xfer, request);
-       if (r < 0)
-               goto ERROR;
-
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, request, &response);
        if (r < 0)
                goto ERROR;
 
@@ -585,7 +580,7 @@ static int pakfire_buildservice_upload_payload(struct pakfire_buildservice* serv
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, NULL);
+       r = pakfire_xfer_run_api_request(xfer, NULL, NULL);
        if (r)
                goto ERROR;
 
@@ -665,7 +660,7 @@ int pakfire_buildservice_list_uploads(
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -711,7 +706,7 @@ int pakfire_buildservice_delete_upload(
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -748,7 +743,7 @@ int pakfire_buildservice_list_repos(struct pakfire_buildservice* service,
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -792,7 +787,7 @@ int pakfire_buildservice_get_repo(struct pakfire_buildservice* service,
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -841,7 +836,7 @@ int pakfire_buildservice_create_repo(struct pakfire_buildservice* service,
        }
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, &response);
+       r = pakfire_xfer_run_api_request(xfer, NULL, &response);
        if (r)
                goto ERROR;
 
@@ -879,7 +874,7 @@ int pakfire_buildservice_delete_repo(struct pakfire_buildservice* service,
                goto ERROR;
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, NULL);
+       r = pakfire_xfer_run_api_request(xfer, NULL, NULL);
        if (r)
                goto ERROR;
 
index 120662a087b89095b6e73f6f4f323c39201cac09..e5f98ff488ba5725b9b22698c1fc1d1f28918b56 100644 (file)
@@ -359,7 +359,7 @@ static int pakfire_job_finished(struct pakfire_job* job, int status) {
        }
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, NULL);
+       r = pakfire_xfer_run_api_request(xfer, NULL, NULL);
        if (r < 0)
                goto ERROR;
 
@@ -411,7 +411,7 @@ static int pakfire_job_crashed(struct pakfire_job* job, const siginfo_t* si) {
        }
 
        // Send the request
-       r = pakfire_xfer_run_api_request(xfer, NULL);
+       r = pakfire_xfer_run_api_request(xfer, NULL, NULL);
        if (r < 0)
                goto ERROR;
 
index ccd7ec87a4cfc3ab4ed8fb7f36c925993dad07a0..82a0365bc7eb253da772557c134475adde6b85af 100644 (file)
@@ -1981,9 +1981,16 @@ ERROR:
        The response might optionally be returned if response is not NULL.
 */
 pakfire_xfer_error_code_t pakfire_xfer_run_api_request(
-               struct pakfire_xfer* xfer, struct json_object** response) {
+               struct pakfire_xfer* xfer, struct json_object* request, struct json_object** response) {
        pakfire_xfer_error_code_t r;
 
+       // Set the request body
+       if (request) {
+               r = pakfire_xfer_set_json_payload(xfer, request);
+               if (r < 0)
+                       return r;
+       }
+
        // Loop indefinitely...
        for (;;) {
                r = pakfire_xfer_run_api_request_once(xfer, response);
index aaf5e0b920c34259ca45c7c0323cc5df4dd4c461..48e1b3eba396dc9e4251c331b087a0a849c0749d 100644 (file)
@@ -140,7 +140,7 @@ pakfire_xfer_error_code_t pakfire_xfer_done(struct pakfire_xfer* xfer, sd_event*
 
 pakfire_xfer_error_code_t pakfire_xfer_run(struct pakfire_xfer* xfer, int flags);
 pakfire_xfer_error_code_t pakfire_xfer_run_api_request(
-       struct pakfire_xfer* xfer, struct json_object** response);
+       struct pakfire_xfer* xfer, struct json_object* request, struct json_object** response);
 
 // WebSocket
 typedef int (*pakfire_xfer_open_callback)(struct pakfire_xfer* xfer, void* data);