fix: collapse let-chains and silence too_many_arguments for new Rust 1.95 clippy lints
4 files changed,
+17 insertions,
-17 deletions
| 12 |
12 |
|
/// flag) and INSERT (setting the new version as current) either both
|
| 13 |
13 |
|
/// succeed or both roll back.
|
| 14 |
14 |
|
#[tracing::instrument(skip_all)]
|
|
15 |
+ |
#[allow(clippy::too_many_arguments)]
|
| 15 |
16 |
|
pub async fn create_version(
|
| 16 |
17 |
|
pool: &PgPool,
|
| 17 |
18 |
|
item_id: ItemId,
|
| 101 |
101 |
|
return Err(AppError::NotFound);
|
| 102 |
102 |
|
}
|
| 103 |
103 |
|
|
| 104 |
|
- |
if let Some(ref s3_key) = version.s3_key {
|
| 105 |
|
- |
if let Err(e) = db::pending_s3_deletions::enqueue_deletions(
|
|
104 |
+ |
if let Some(ref s3_key) = version.s3_key
|
|
105 |
+ |
&& let Err(e) = db::pending_s3_deletions::enqueue_deletions(
|
| 106 |
106 |
|
&state.db,
|
| 107 |
107 |
|
&[(s3_key.clone(), "main".to_string())],
|
| 108 |
108 |
|
"version_delete",
|
| 109 |
109 |
|
)
|
| 110 |
110 |
|
.await
|
| 111 |
|
- |
{
|
| 112 |
|
- |
tracing::warn!(error = ?e, "failed to enqueue S3 deletion for version");
|
| 113 |
|
- |
}
|
|
111 |
+ |
{
|
|
112 |
+ |
tracing::warn!(error = ?e, "failed to enqueue S3 deletion for version");
|
| 114 |
113 |
|
}
|
| 115 |
114 |
|
|
| 116 |
115 |
|
db::versions::delete_version(&state.db, version_id).await?;
|
| 338 |
338 |
|
.map(|k| (k, "main".to_string()))
|
| 339 |
339 |
|
.collect();
|
| 340 |
340 |
|
|
| 341 |
|
- |
if let Some(ref url) = project.cover_image_url {
|
| 342 |
|
- |
if let Some(key) = crate::storage::extract_s3_key_from_url(url) {
|
| 343 |
|
- |
all_keys.push((key, "main".to_string()));
|
| 344 |
|
- |
}
|
|
341 |
+ |
if let Some(ref url) = project.cover_image_url
|
|
342 |
+ |
&& let Some(key) = crate::storage::extract_s3_key_from_url(url)
|
|
343 |
+ |
{
|
|
344 |
+ |
all_keys.push((key, "main".to_string()));
|
| 345 |
345 |
|
}
|
| 346 |
346 |
|
|
| 347 |
347 |
|
// Enqueue for durable S3 deletion (survives crashes)
|
| 357 |
357 |
|
|
| 358 |
358 |
|
// Decrement storage before deleting rows
|
| 359 |
359 |
|
let storage_bytes = db::items::get_project_storage_bytes(&state.db, id).await?;
|
| 360 |
|
- |
if storage_bytes > 0 {
|
| 361 |
|
- |
if let Err(e) = db::creator_tiers::decrement_storage_used(&state.db, user.id, storage_bytes).await {
|
| 362 |
|
- |
tracing::warn!(error = ?e, bytes = storage_bytes, "failed to decrement storage for project delete");
|
| 363 |
|
- |
}
|
|
360 |
+ |
if storage_bytes > 0
|
|
361 |
+ |
&& let Err(e) = db::creator_tiers::decrement_storage_used(&state.db, user.id, storage_bytes).await
|
|
362 |
+ |
{
|
|
363 |
+ |
tracing::warn!(error = ?e, bytes = storage_bytes, "failed to decrement storage for project delete");
|
| 364 |
364 |
|
}
|
| 365 |
365 |
|
|
| 366 |
366 |
|
db::projects::delete_project(&state.db, id, user.id).await?;
|
| 117 |
117 |
|
}
|
| 118 |
118 |
|
|
| 119 |
119 |
|
// Reject tokens issued before a password change (JWT revocation)
|
| 120 |
|
- |
if let Some(invalidated_at) = user.jwt_invalidated_at {
|
| 121 |
|
- |
if claims.iat < invalidated_at.timestamp() {
|
| 122 |
|
- |
return Err(AppError::Unauthorized);
|
| 123 |
|
- |
}
|
|
120 |
+ |
if let Some(invalidated_at) = user.jwt_invalidated_at
|
|
121 |
+ |
&& claims.iat < invalidated_at.timestamp()
|
|
122 |
+ |
{
|
|
123 |
+ |
return Err(AppError::Unauthorized);
|
| 124 |
124 |
|
}
|
| 125 |
125 |
|
|
| 126 |
126 |
|
Ok(SyncUser {
|