diff --git a/include/mastodont_fetch.h b/include/mastodont_fetch.h index 8988fa7..123a029 100644 --- a/include/mastodont_fetch.h +++ b/include/mastodont_fetch.h @@ -17,6 +17,7 @@ #define MASTODONT_FETCH_H #include #include +#include struct mstdnt_fetch_results { @@ -27,6 +28,7 @@ struct mstdnt_fetch_results void mastodont_fetch_results_cleanup(struct mstdnt_fetch_results* res); int mastodont_fetch_curl(mastodont_t* mstdnt, char* url, - struct mstdnt_fetch_results* results); + struct mstdnt_fetch_results* results, + CURLoption request_t); #endif /* MASTODONT_FETCH_H */ diff --git a/src/account.c b/src/account.c index f315d1f..b127bbe 100644 --- a/src/account.c +++ b/src/account.c @@ -34,7 +34,7 @@ int mastodont_account(mastodont_t* data, id); storage->needs_cleanup = 0; - if (mastodont_fetch_curl(data, url, &results) != CURLE_OK) + if (mastodont_fetch_curl(data, url, &results, CURLOPT_HTTPGET) != CURLE_OK) { return 1; } diff --git a/src/application.c b/src/application.c index ea45511..c480f56 100644 --- a/src/application.c +++ b/src/application.c @@ -115,7 +115,7 @@ int mastodont_register_app(mastodont_t* data, curl_easy_setopt(data->curl, CURLOPT_POSTFIELDS, post); - if (mastodont_fetch_curl(data, "api/v1/apps", &results) != CURLE_OK) + if (mastodont_fetch_curl(data, "api/v1/apps", &results, CURLOPT_HTTPGET) != CURLE_OK) { res = 1; goto cleanup; @@ -183,7 +183,7 @@ int mastodont_obtain_oauth_token(mastodont_t* data, curl_easy_setopt(data->curl, CURLOPT_POSTFIELDS, post); - if (mastodont_fetch_curl(data, "oauth/token", &results) != CURLE_OK) + if (mastodont_fetch_curl(data, "oauth/token", &results, CURLOPT_HTTPGET) != CURLE_OK) { res = 1; goto cleanup; diff --git a/src/fetch.c b/src/fetch.c index 141d8b5..8f84454 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -47,7 +47,8 @@ void mastodont_fetch_results_cleanup(struct mstdnt_fetch_results* res) #define TOKEN_STR_SIZE 512 int mastodont_fetch_curl(mastodont_t* mstdnt, char* _url, - struct mstdnt_fetch_results* results) + struct mstdnt_fetch_results* results, + CURLoption request_t) { int res; char token[TOKEN_STR_SIZE] = { 0 }; @@ -71,6 +72,8 @@ int mastodont_fetch_curl(mastodont_t* mstdnt, curl_easy_setopt(mstdnt->curl, CURLOPT_URL, url); curl_easy_setopt(mstdnt->curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(mstdnt->curl, CURLOPT_WRITEDATA, results); + /* PUT, POST, GET */ + curl_easy_setopt(mstdnt->curl, request_t, 1); res = curl_easy_perform(mstdnt->curl); diff --git a/src/status.c b/src/status.c index e2d11d9..f2af7c1 100644 --- a/src/status.c +++ b/src/status.c @@ -117,7 +117,7 @@ int mastodont_account_statuses(mastodont_t* data, } storage->needs_cleanup = 0; - if (mastodont_fetch_curl(data, url, &results) != CURLE_OK) + if (mastodont_fetch_curl(data, url, &results, CURLOPT_HTTPGET) != CURLE_OK) return 1; res = mstdnt_load_statuses_from_result(statuses, storage, &results, size); @@ -184,7 +184,7 @@ int mastodont_create_status(mastodont_t* data, curl_easy_setopt(data->curl, CURLOPT_POSTFIELDS, post); - if (mastodont_fetch_curl(data, "api/v1/statuses", &results) != CURLE_OK) + if (mastodont_fetch_curl(data, "api/v1/statuses", &results, CURLOPT_HTTPGET) != CURLE_OK) return 1; mastodont_fetch_results_cleanup(&results); @@ -202,11 +202,9 @@ int mastodont_favourite_status(mastodont_t* data, storage->needs_cleanup = 0; - if (mastodont_fetch_curl(data, url, &results) != CURLE_OK) + if (mastodont_fetch_curl(data, url, &results, CURLOPT_POST) != CURLE_OK) return 1; - /* TODO Handle errors */ - mastodont_fetch_results_cleanup(&results); return 0; } diff --git a/src/timeline.c b/src/timeline.c index 695371f..e939142 100644 --- a/src/timeline.c +++ b/src/timeline.c @@ -65,7 +65,7 @@ int mastodont_timeline_public(mastodont_t* data, char* url = _mstdnt_query_string("api/v1/timelines/public", params, _mstdnt_arr_len(params)); - if (mastodont_fetch_curl(data, url, &results) != CURLE_OK) + if (mastodont_fetch_curl(data, url, &results, CURLOPT_HTTPGET) != CURLE_OK) { res = 1; goto cleanup;