Skip to content

Commit 0a01a76

Browse files
authored
Don't allow dead_code or unused_variables (#542)
* Don't allow `unused_variables` in `wp_api` * Don't allow `dead_code` in `wp_api` * Remove `#![allow(dead_code)]` from `wordpress_org/plugin_directory`
1 parent 53bd239 commit 0a01a76

12 files changed

+38
-143
lines changed

wp_api/src/api_error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ pub struct WpError {
107107
}
108108

109109
impl WpError {
110-
pub fn try_parse(response_body: &[u8], response_status_code: u16) -> Option<Self> {
110+
pub fn try_parse(response_body: &[u8], _response_status_code: u16) -> Option<Self> {
111111
serde_json::from_slice::<WpError>(response_body).ok()
112112
}
113113
}

wp_api/src/lib.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![allow(dead_code, unused_variables)]
2-
31
pub use api_client::{WpApiClient, WpApiRequestBuilder};
42
pub use api_error::{
53
MediaUploadRequestExecutionError, ParsedRequestError, RequestExecutionError,

wp_api/src/login/login_client.rs

+11-14
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl WpLoginClient {
6969
let attempt_site_url = attempt.attempt_site_url.as_str();
7070
let api_link_header_result = self.find_api_root_url(attempt_site_url).await;
7171
let discovery_result = self
72-
.inner_attempt_api_discovery(attempt_site_url, api_link_header_result.clone())
72+
.inner_attempt_api_discovery(api_link_header_result.clone())
7373
.await;
7474
let is_wordpress_site = self
7575
.attempt_is_wordpress_site(attempt_site_url, api_link_header_result)
@@ -84,7 +84,6 @@ impl WpLoginClient {
8484

8585
async fn inner_attempt_api_discovery(
8686
&self,
87-
attempt_site_url: &str,
8887
api_link_header_result: Result<FindApiRootLinkHeaderSuccess, FindApiRootLinkHeaderFailure>,
8988
) -> Result<AutoDiscoveryAttemptSuccess, AutoDiscoveryAttemptFailure> {
9089
let api_root_url_success = api_link_header_result?;
@@ -152,16 +151,15 @@ impl WpLoginClient {
152151
})
153152
}
154153
};
155-
let api_root_url =
156-
match self.parse_api_root_response(&parsed_site_url, fetch_api_root_url_response) {
157-
Ok(api_root_url) => api_root_url,
158-
Err(error) => {
159-
return Err(FindApiRootLinkHeaderFailure::ParseApiRootUrl {
160-
parsed_site_url,
161-
error,
162-
})
163-
}
164-
};
154+
let api_root_url = match self.parse_api_root_response(fetch_api_root_url_response) {
155+
Ok(api_root_url) => api_root_url,
156+
Err(error) => {
157+
return Err(FindApiRootLinkHeaderFailure::ParseApiRootUrl {
158+
parsed_site_url,
159+
error,
160+
})
161+
}
162+
};
165163
Ok(FindApiRootLinkHeaderSuccess {
166164
parsed_site_url,
167165
api_root_url,
@@ -170,7 +168,6 @@ impl WpLoginClient {
170168

171169
fn parse_api_root_response(
172170
&self,
173-
site_url: &ParsedUrl,
174171
response: WpNetworkResponse,
175172
) -> Result<ParsedUrl, ParseApiRootUrlError> {
176173
match response
@@ -259,7 +256,7 @@ impl WpLoginClient {
259256
let root_wp_json = match serde_json::from_slice::<RootWpJson>(&fetch_wp_json_response.body)
260257
{
261258
Ok(r) => r,
262-
Err(error) => return Err(FetchWpJsonFailure::ParseWpJson { wp_json_url }),
259+
Err(_) => return Err(FetchWpJsonFailure::ParseWpJson { wp_json_url }),
263260
};
264261
Ok(FetchWpJsonSuccess {
265262
wp_json_url,

wp_api/src/login/url_discovery.rs

+7-15
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ use scraper::{Html, Selector};
44
use serde::Deserialize;
55
use std::{collections::HashMap, sync::Arc};
66

7-
const API_ROOT_LINK_HEADER: &str = "https://api.w.org/";
8-
97
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)]
108
pub(crate) struct AutoDiscoveryAttempt {
119
pub(crate) attempt_site_url: String,
@@ -133,21 +131,21 @@ impl AutoDiscoveryAttemptResult {
133131

134132
fn has_failed_to_parse_site_url(&self) -> bool {
135133
match &self.api_discovery_result {
136-
Ok(success) => false,
134+
Ok(_success) => false,
137135
Err(error) => error.parsed_site_url().is_none(),
138136
}
139137
}
140138

141139
fn has_failed_to_parse_api_root_url(&self) -> Option<bool> {
142140
match &self.api_discovery_result {
143-
Ok(success) => Some(false),
141+
Ok(_success) => Some(false),
144142
Err(error) => error.has_failed_to_parse_api_root_url(),
145143
}
146144
}
147145

148146
fn has_failed_to_parse_api_details(&self) -> Option<bool> {
149147
match &self.api_discovery_result {
150-
Ok(success) => Some(false),
148+
Ok(_success) => Some(false),
151149
Err(error) => error.has_failed_to_parse_api_details(),
152150
}
153151
}
@@ -406,8 +404,8 @@ impl AutoDiscoveryAttemptFailure {
406404
AutoDiscoveryAttemptFailure::ParseSiteUrl { .. } => None,
407405
AutoDiscoveryAttemptFailure::FetchApiRootUrl { .. } => None,
408406
AutoDiscoveryAttemptFailure::ParseApiRootUrl { .. } => Some(true),
409-
AutoDiscoveryAttemptFailure::FetchApiDetails { api_root_url, .. } => Some(false),
410-
AutoDiscoveryAttemptFailure::ParseApiDetails { api_root_url, .. } => Some(false),
407+
AutoDiscoveryAttemptFailure::FetchApiDetails { .. } => Some(false),
408+
AutoDiscoveryAttemptFailure::ParseApiDetails { .. } => Some(false),
411409
}
412410
}
413411

@@ -431,8 +429,8 @@ impl AutoDiscoveryAttemptFailure {
431429
AutoDiscoveryAttemptFailure::ParseSiteUrl { .. } => None,
432430
AutoDiscoveryAttemptFailure::FetchApiRootUrl { .. } => None,
433431
AutoDiscoveryAttemptFailure::ParseApiRootUrl { .. } => None,
434-
AutoDiscoveryAttemptFailure::FetchApiDetails { api_root_url, .. } => None,
435-
AutoDiscoveryAttemptFailure::ParseApiDetails { api_root_url, .. } => Some(true),
432+
AutoDiscoveryAttemptFailure::FetchApiDetails { .. } => None,
433+
AutoDiscoveryAttemptFailure::ParseApiDetails { .. } => Some(true),
436434
}
437435
}
438436
}
@@ -466,12 +464,6 @@ pub enum AutoDiscoveryAttemptType {
466464
AutoDotPhpExtensionForWpAdmin,
467465
}
468466

469-
impl AutoDiscoveryAttemptType {
470-
fn is_the_site_url_same_as_the_user_input(&self) -> bool {
471-
matches!(self, AutoDiscoveryAttemptType::UserInput)
472-
}
473-
}
474-
475467
pub(crate) fn construct_attempts(input_site_url: String) -> Vec<AutoDiscoveryAttempt> {
476468
let mut attempts = vec![AutoDiscoveryAttempt::new(
477469
input_site_url.clone(),

wp_api/src/request.rs

+8-38
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
1-
use std::{collections::HashMap, fmt::Debug, sync::Arc};
2-
1+
use self::endpoint::WpEndpointUrl;
2+
use crate::{
3+
api_error::{MediaUploadRequestExecutionError, ParsedRequestError, RequestExecutionError},
4+
url_query::{FromUrlQueryPairs, UrlQueryPairsMap},
5+
WpApiError, WpAuthentication,
6+
};
37
use endpoint::{media_endpoint::MediaUploadRequest, ApiEndpointUrl};
48
use http::{HeaderMap, HeaderName, HeaderValue};
59
use serde::{de::DeserializeOwned, Deserialize, Serialize};
10+
use std::{collections::HashMap, fmt::Debug, sync::Arc};
611
use url::Url;
712
use uuid::Uuid;
813

9-
use crate::{
10-
api_error::{
11-
MediaUploadRequestExecutionError, ParsedRequestError, RequestExecutionError, WpError,
12-
},
13-
url_query::{FromUrlQueryPairs, UrlQueryPairsMap},
14-
WpApiError, WpAuthentication,
15-
};
16-
17-
use self::endpoint::WpEndpointUrl;
18-
1914
pub mod endpoint;
2015

2116
const CONTENT_TYPE_JSON: &str = "application/json";
@@ -421,31 +416,6 @@ impl WpNetworkResponse {
421416
{
422417
parser(self)
423418
}
424-
425-
fn parse_response_for_errors(&self) -> Result<(), WpApiError> {
426-
if let Ok(wp_error) = serde_json::from_slice::<WpError>(&self.body) {
427-
Err(WpApiError::WpError {
428-
error_code: wp_error.code,
429-
error_message: wp_error.message,
430-
status_code: self.status_code,
431-
response: self.body_as_string(),
432-
})
433-
} else {
434-
let status = http::StatusCode::from_u16(self.status_code).map_err(|_| {
435-
WpApiError::InvalidHttpStatusCode {
436-
status_code: self.status_code,
437-
}
438-
})?;
439-
if status.is_client_error() || status.is_server_error() {
440-
Err(WpApiError::UnknownError {
441-
status_code: self.status_code,
442-
response: self.body_as_string(),
443-
})
444-
} else {
445-
Ok(())
446-
}
447-
}
448-
}
449419
}
450420

451421
impl Debug for WpNetworkResponse {
@@ -487,7 +457,7 @@ pub struct WpRedirect {
487457
}
488458

489459
impl WpRedirect {
490-
fn new(source: String, destination: String) -> Self {
460+
pub fn new(source: String, destination: String) -> Self {
491461
WpRedirect {
492462
source,
493463
destination,

wp_api/src/request/endpoint.rs

+2-57
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
use url::Url;
22

3-
use crate::SparseField;
4-
53
pub mod application_passwords_endpoint;
64
pub mod categories_endpoint;
75
pub mod comments_endpoint;
@@ -40,10 +38,6 @@ impl ApiEndpointUrl {
4038
Self { url }
4139
}
4240

43-
fn url(&self) -> &Url {
44-
&self.url
45-
}
46-
4741
pub fn as_str(&self) -> &str {
4842
self.url.as_str()
4943
}
@@ -88,13 +82,6 @@ impl ApiBaseUrl {
8882
site_base_url.try_into()
8983
}
9084

91-
fn by_appending(&self, segment: &str) -> Url {
92-
self.url
93-
.clone()
94-
.append(segment)
95-
.expect("ApiBaseUrl is already parsed, so this can't result in an error")
96-
}
97-
9885
pub fn by_extending_and_splitting_by_forward_slash<I>(&self, segments: I) -> Url
9986
where
10087
I: IntoIterator,
@@ -113,26 +100,16 @@ impl ApiBaseUrl {
113100
}))
114101
.expect("ApiBaseUrl is already parsed, so this can't result in an error")
115102
}
116-
117-
fn as_str(&self) -> &str {
118-
self.url.as_str()
119-
}
120103
}
121104

122105
trait UrlExtension {
123-
fn append(self, segment: &str) -> Result<Url, ()>;
124106
fn extend<I>(self, segments: I) -> Result<Url, ()>
125107
where
126108
I: IntoIterator,
127109
I::Item: AsRef<str>;
128-
fn append_filter_fields(self, fields: &[impl SparseField]) -> Url;
129110
}
130111

131112
impl UrlExtension for Url {
132-
fn append(self, segment: &str) -> Result<Url, ()> {
133-
self.extend([segment])
134-
}
135-
136113
fn extend<I>(mut self, segments: I) -> Result<Url, ()>
137114
where
138115
I: IntoIterator,
@@ -148,19 +125,6 @@ impl UrlExtension for Url {
148125
self.path_segments_mut()?.extend(segments);
149126
Ok(self)
150127
}
151-
152-
fn append_filter_fields(mut self, fields: &[impl SparseField]) -> Url {
153-
self.query_pairs_mut().append_pair(
154-
"_fields",
155-
fields
156-
.iter()
157-
.map(|f| f.as_str())
158-
.collect::<Vec<&str>>()
159-
.join(",")
160-
.as_str(),
161-
);
162-
self
163-
}
164128
}
165129

166130
pub trait DerivedRequest {
@@ -216,19 +180,9 @@ mod macros {
216180

217181
#[cfg(test)]
218182
mod tests {
219-
use std::sync::Arc;
220-
221183
use super::*;
222184
use rstest::*;
223-
224-
#[test]
225-
fn append_url() {
226-
let url = Url::parse("https://example.com").unwrap();
227-
assert_eq!(
228-
url.append("bar").unwrap().as_str(),
229-
"https://example.com/bar"
230-
);
231-
}
185+
use std::sync::Arc;
232186

233187
#[test]
234188
fn extend_url() {
@@ -257,11 +211,6 @@ mod tests {
257211
) {
258212
let api_base_url: ApiBaseUrl = test_base_url.try_into().unwrap();
259213
let expected_wp_json_url = wp_json_endpoint(test_base_url);
260-
assert_eq!(expected_wp_json_url, api_base_url.as_str());
261-
assert_eq!(
262-
api_base_url.by_appending("bar").as_str(),
263-
format!("{}/bar", expected_wp_json_url)
264-
);
265214
assert_eq!(
266215
api_base_url
267216
.by_extending_and_splitting_by_forward_slash(["bar", "baz"])
@@ -292,10 +241,6 @@ mod tests {
292241
url
293242
}
294243

295-
fn wp_json_endpoint_by_appending(base_url: &str, suffix: &str) -> String {
296-
format!("{}{}", wp_json_endpoint(base_url), suffix)
297-
}
298-
299244
#[fixture]
300245
pub fn fixture_api_base_url() -> Arc<ApiBaseUrl> {
301246
ApiBaseUrl::try_from("https://example.com").unwrap().into()
@@ -314,7 +259,7 @@ mod tests {
314259
endpoint_url.as_str(),
315260
format!(
316261
"{}{}{}",
317-
fixture_api_base_url().as_str(),
262+
fixture_api_base_url().url.as_str(),
318263
namespace.as_str(),
319264
path
320265
)

wp_api/src/request/endpoint/categories_endpoint.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,11 @@ mod tests {
204204
}
205205

206206
#[rstest]
207-
#[case(None, &[], "/categories/54?context=view&_fields=")]
208-
#[case(Some("foo"), &[SparseCategoryFieldWithViewContext::Count], "/categories/54?context=view&_fields=count")]
209-
#[case(Some("foo"), ALL_SPARSE_CATEGORY_FIELDS_WITH_VIEW_CONTEXT, &format!("/categories/54?context=view&{}", EXPECTED_QUERY_PAIRS_FOR_ALL_SPARSE_CATEGORY_FIELDS_WITH_VIEW_CONTEXT))]
207+
#[case(&[], "/categories/54?context=view&_fields=")]
208+
#[case(&[SparseCategoryFieldWithViewContext::Count], "/categories/54?context=view&_fields=count")]
209+
#[case(ALL_SPARSE_CATEGORY_FIELDS_WITH_VIEW_CONTEXT, &format!("/categories/54?context=view&{}", EXPECTED_QUERY_PAIRS_FOR_ALL_SPARSE_CATEGORY_FIELDS_WITH_VIEW_CONTEXT))]
210210
fn filter_retrieve_category_with_view_context(
211211
endpoint: CategoriesRequestEndpoint,
212-
#[case] password: Option<&str>,
213212
#[case] fields: &[SparseCategoryFieldWithViewContext],
214213
#[case] expected_path: &str,
215214
) {

wp_api/src/request/endpoint/media_endpoint.rs

-1
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ impl MediaRequestBuilder {
187187
file_path: String,
188188
file_content_type: String,
189189
) -> MediaUploadRequest {
190-
let url = self.endpoint.create();
191190
let mut header_map = self.inner.header_map();
192191
header_map.inner.insert(
193192
http::header::CONTENT_TYPE,

wp_api/src/request/endpoint/tags_endpoint.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,11 @@ mod tests {
193193
}
194194

195195
#[rstest]
196-
#[case(None, &[], "/tags/54?context=view&_fields=")]
197-
#[case(Some("foo"), &[SparseTagFieldWithViewContext::Count], "/tags/54?context=view&_fields=count")]
198-
#[case(Some("foo"), ALL_SPARSE_TAG_FIELDS_WITH_VIEW_CONTEXT, &format!("/tags/54?context=view&{}", EXPECTED_QUERY_PAIRS_FOR_ALL_SPARSE_TAG_FIELDS_WITH_VIEW_CONTEXT))]
196+
#[case(&[], "/tags/54?context=view&_fields=")]
197+
#[case(&[SparseTagFieldWithViewContext::Count], "/tags/54?context=view&_fields=count")]
198+
#[case(ALL_SPARSE_TAG_FIELDS_WITH_VIEW_CONTEXT, &format!("/tags/54?context=view&{}", EXPECTED_QUERY_PAIRS_FOR_ALL_SPARSE_TAG_FIELDS_WITH_VIEW_CONTEXT))]
199199
fn filter_retrieve_tag_with_view_context(
200200
endpoint: TagsRequestEndpoint,
201-
#[case] password: Option<&str>,
202201
#[case] fields: &[SparseTagFieldWithViewContext],
203202
#[case] expected_path: &str,
204203
) {

wp_api/src/ssl.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ fn extract_data_as_string(data: x509_cert::der::Result<Option<impl AsRef<str>>>)
3333
}
3434

3535
fn extract_alternative_names(cert: &x509_cert::certificate::TbsCertificateInner) -> Vec<String> {
36-
let Ok(Some((critical, alternative_names))) = cert.get_extension::<SubjectAltName>() else {
36+
let Ok(Some((_critical, alternative_names))) = cert.get_extension::<SubjectAltName>() else {
3737
return vec![];
3838
};
3939
alternative_names

0 commit comments

Comments
 (0)