Labrinth ID cleanup (#3681)

* Put all ID types in the labrinth::models::ids, and reduce code duplication with them

* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB

* Run sqlx prepare

---------

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
This commit is contained in:
Josiah Glosson
2025-05-22 03:34:36 -05:00
committed by GitHub
parent c6022ad977
commit 9e527ff141
111 changed files with 1477 additions and 1965 deletions

View File

@@ -1,14 +1,14 @@
use std::collections::HashMap;
use crate::common::{api_v2::ApiV2, api_v3::ApiV3, dummy_data::TestFile};
use actix_web::dev::ServiceResponse;
use async_trait::async_trait;
use labrinth::models::ids::ProjectId;
use labrinth::models::{
projects::{ProjectId, VersionType},
projects::VersionType,
teams::{OrganizationPermissions, ProjectPermissions},
};
use crate::common::{api_v2::ApiV2, api_v3::ApiV3, dummy_data::TestFile};
use super::{
Api, ApiProject, ApiTags, ApiTeams, ApiUser, ApiVersion,
models::{CommonProject, CommonVersion},

View File

@@ -5,18 +5,18 @@ use self::models::{
CommonProject, CommonTeamMember, CommonVersion,
};
use self::request_data::{ImageData, ProjectCreationRequestData};
use super::dummy_data::TestFile;
use actix_web::dev::ServiceResponse;
use async_trait::async_trait;
use labrinth::models::ids::ProjectId;
use labrinth::{
LabrinthConfig,
models::{
projects::{ProjectId, VersionType},
projects::VersionType,
teams::{OrganizationPermissions, ProjectPermissions},
},
};
use super::dummy_data::TestFile;
pub mod generic;
pub mod models;
pub mod request_data;

View File

@@ -1,24 +1,23 @@
use ariadne::ids::UserId;
use chrono::{DateTime, Utc};
use labrinth::models::ids::{
ImageId, NotificationId, OrganizationId, ProjectId, ReportId, TeamId,
ThreadId, ThreadMessageId, VersionId,
};
use labrinth::{
auth::AuthProvider,
models::{
images::ImageId,
notifications::NotificationId,
organizations::OrganizationId,
projects::{
Dependency, GalleryItem, License, ModeratorMessage,
MonetizationStatus, ProjectId, ProjectStatus, VersionFile,
VersionId, VersionStatus, VersionType,
MonetizationStatus, ProjectStatus, VersionFile, VersionStatus,
VersionType,
},
reports::ReportId,
teams::{ProjectPermissions, TeamId},
threads::{ThreadId, ThreadMessageId},
users::{Badges, Role, User, UserId, UserPayoutData},
teams::ProjectPermissions,
users::{Badges, Role, User, UserPayoutData},
},
};
use rust_decimal::Decimal;
use serde::Deserialize;
// Fields shared by every version of the API.
// No struct in here should have ANY field that
// is not present in *every* version of the API.