refactor(workspace): pass workspace object instead of id to service methods
- Replace workspace_id parameter with Workspace object reference in all workspace service methods - Remove redundant find_workspace_by_id calls that were duplicated in each method - Update all method signatures across approval, audit, billing, branding, core, settings and stats modules - Modify SQL queries to bind ws.id instead of separate workspace_id parameter - Add Workspace import to all affected modules - Adjust method calls in API handlers to pass workspace object instead of id - Consolidate workspace retrieval logic to single location per operation flow
This commit is contained in:
+116
-3
@@ -5,6 +5,14 @@ use crate::api::auth::regenerate_2fa_backup_codes::{
|
||||
};
|
||||
use crate::api::auth::register::RegisterResponse;
|
||||
use crate::api::response::{ApiEmptyResponse, ApiErrorResponse, ApiResponse};
|
||||
use crate::api::workspace::accept_invitation::AcceptInvitationRequest;
|
||||
use crate::api::workspace::review_approval::ReviewApprovalRequest;
|
||||
use crate::api::workspace::transfer_owner::TransferOwnerRequest;
|
||||
use crate::models::workspaces::{
|
||||
Workspace, WorkspaceAuditLog, WorkspaceBilling, WorkspaceCustomBranding, WorkspaceDomain,
|
||||
WorkspaceIntegration, WorkspaceInvitation, WorkspaceMember, WorkspacePendingApproval,
|
||||
WorkspaceSettings, WorkspaceStats, WorkspaceWebhook,
|
||||
};
|
||||
use crate::service::auth::captcha::{CaptchaQuery, CaptchaResponse};
|
||||
use crate::service::auth::email::{EmailChangeRequest, EmailResponse, EmailVerifyRequest};
|
||||
use crate::service::auth::login::LoginParams;
|
||||
@@ -17,6 +25,16 @@ use crate::service::auth::rsa::RsaResponse;
|
||||
use crate::service::auth::totp::{
|
||||
Disable2FAParams, Enable2FAResponse, Get2FAStatusResponse, Verify2FAParams,
|
||||
};
|
||||
use crate::service::workspace::approvals::RequestApprovalParams;
|
||||
use crate::service::workspace::billing::UpdateBillingParams;
|
||||
use crate::service::workspace::branding::UpdateBrandingParams;
|
||||
use crate::service::workspace::core::{CreateWorkspaceParams, UpdateWorkspaceParams};
|
||||
use crate::service::workspace::domains::AddDomainParams;
|
||||
use crate::service::workspace::integrations::{CreateIntegrationParams, UpdateIntegrationParams};
|
||||
use crate::service::workspace::invitations::{CreateInvitationParams, CreateInvitationResponse};
|
||||
use crate::service::workspace::members::{AddMemberParams, UpdateMemberRoleParams};
|
||||
use crate::service::workspace::settings::UpdateWorkspaceSettingsParams;
|
||||
use crate::service::workspace::webhooks::{CreateWebhookParams, UpdateWebhookParams};
|
||||
|
||||
#[derive(OpenApi)]
|
||||
#[openapi(
|
||||
@@ -27,9 +45,10 @@ use crate::service::auth::totp::{
|
||||
),
|
||||
tags(
|
||||
(name = "Auth", description = "Authentication, registration, session and email security endpoints."),
|
||||
(name = "Auth / 2FA", description = "TOTP two-factor authentication management endpoints.")
|
||||
(name = "Workspaces", description = "Workspace CRUD, archiving, ownership transfer, and avatar management."),
|
||||
),
|
||||
paths(
|
||||
// Auth
|
||||
crate::api::auth::rsa::handle,
|
||||
crate::api::auth::captcha::handle,
|
||||
crate::api::auth::login::handle,
|
||||
@@ -46,7 +65,51 @@ use crate::service::auth::totp::{
|
||||
crate::api::auth::enable_2fa::handle,
|
||||
crate::api::auth::verify_2fa::handle,
|
||||
crate::api::auth::disable_2fa::handle,
|
||||
crate::api::auth::regenerate_2fa_backup_codes::handle
|
||||
crate::api::auth::regenerate_2fa_backup_codes::handle,
|
||||
// Workspaces
|
||||
crate::api::workspace::list::handle,
|
||||
crate::api::workspace::get::handle,
|
||||
crate::api::workspace::create::handle,
|
||||
crate::api::workspace::update::handle,
|
||||
crate::api::workspace::archive::handle,
|
||||
crate::api::workspace::unarchive::handle,
|
||||
crate::api::workspace::delete::handle,
|
||||
crate::api::workspace::transfer_owner::handle,
|
||||
crate::api::workspace::upload_avatar::handle,
|
||||
crate::api::workspace::list_members::handle,
|
||||
crate::api::workspace::add_member::handle,
|
||||
crate::api::workspace::update_member_role::handle,
|
||||
crate::api::workspace::remove_member::handle,
|
||||
crate::api::workspace::leave::handle,
|
||||
crate::api::workspace::list_invitations::handle,
|
||||
crate::api::workspace::create_invitation::handle,
|
||||
crate::api::workspace::revoke_invitation::handle,
|
||||
crate::api::workspace::accept_invitation::handle,
|
||||
crate::api::workspace::get_billing::handle,
|
||||
crate::api::workspace::update_billing::handle,
|
||||
crate::api::workspace::get_branding::handle,
|
||||
crate::api::workspace::update_branding::handle,
|
||||
crate::api::workspace::get_settings::handle,
|
||||
crate::api::workspace::update_settings::handle,
|
||||
crate::api::workspace::get_stats::handle,
|
||||
crate::api::workspace::refresh_stats::handle,
|
||||
crate::api::workspace::list_integrations::handle,
|
||||
crate::api::workspace::create_integration::handle,
|
||||
crate::api::workspace::update_integration::handle,
|
||||
crate::api::workspace::delete_integration::handle,
|
||||
crate::api::workspace::list_webhooks::handle,
|
||||
crate::api::workspace::create_webhook::handle,
|
||||
crate::api::workspace::update_webhook::handle,
|
||||
crate::api::workspace::delete_webhook::handle,
|
||||
crate::api::workspace::list_domains::handle,
|
||||
crate::api::workspace::add_domain::handle,
|
||||
crate::api::workspace::verify_domain::handle,
|
||||
crate::api::workspace::set_primary_domain::handle,
|
||||
crate::api::workspace::delete_domain::handle,
|
||||
crate::api::workspace::list_approvals::handle,
|
||||
crate::api::workspace::request_approval::handle,
|
||||
crate::api::workspace::review_approval::handle,
|
||||
crate::api::workspace::audit_logs::handle,
|
||||
),
|
||||
components(schemas(
|
||||
ApiEmptyResponse,
|
||||
@@ -79,7 +142,57 @@ use crate::service::auth::totp::{
|
||||
Verify2FAParams,
|
||||
Disable2FAParams,
|
||||
Regenerate2FABackupCodesRequest,
|
||||
Regenerate2FABackupCodesResponse
|
||||
Regenerate2FABackupCodesResponse,
|
||||
ApiResponse<Workspace>,
|
||||
ApiResponse<Vec<Workspace>>,
|
||||
ApiResponse<WorkspaceMember>,
|
||||
ApiResponse<Vec<WorkspaceMember>>,
|
||||
ApiResponse<CreateInvitationResponse>,
|
||||
ApiResponse<Vec<WorkspaceInvitation>>,
|
||||
ApiResponse<WorkspaceInvitation>,
|
||||
ApiResponse<WorkspaceBilling>,
|
||||
ApiResponse<WorkspaceCustomBranding>,
|
||||
ApiResponse<WorkspaceSettings>,
|
||||
ApiResponse<WorkspaceStats>,
|
||||
ApiResponse<WorkspaceIntegration>,
|
||||
ApiResponse<Vec<WorkspaceIntegration>>,
|
||||
ApiResponse<WorkspaceWebhook>,
|
||||
ApiResponse<Vec<WorkspaceWebhook>>,
|
||||
ApiResponse<WorkspaceDomain>,
|
||||
ApiResponse<Vec<WorkspaceDomain>>,
|
||||
ApiResponse<WorkspacePendingApproval>,
|
||||
ApiResponse<Vec<WorkspacePendingApproval>>,
|
||||
ApiResponse<Vec<WorkspaceAuditLog>>,
|
||||
Workspace,
|
||||
CreateWorkspaceParams,
|
||||
UpdateWorkspaceParams,
|
||||
TransferOwnerRequest,
|
||||
WorkspaceMember,
|
||||
AddMemberParams,
|
||||
UpdateMemberRoleParams,
|
||||
WorkspaceInvitation,
|
||||
CreateInvitationParams,
|
||||
CreateInvitationResponse,
|
||||
AcceptInvitationRequest,
|
||||
WorkspaceBilling,
|
||||
UpdateBillingParams,
|
||||
WorkspaceCustomBranding,
|
||||
UpdateBrandingParams,
|
||||
WorkspaceSettings,
|
||||
UpdateWorkspaceSettingsParams,
|
||||
WorkspaceStats,
|
||||
WorkspaceIntegration,
|
||||
CreateIntegrationParams,
|
||||
UpdateIntegrationParams,
|
||||
WorkspaceWebhook,
|
||||
CreateWebhookParams,
|
||||
UpdateWebhookParams,
|
||||
WorkspaceDomain,
|
||||
AddDomainParams,
|
||||
WorkspacePendingApproval,
|
||||
RequestApprovalParams,
|
||||
ReviewApprovalRequest,
|
||||
WorkspaceAuditLog,
|
||||
))
|
||||
)]
|
||||
pub struct OpenApiDoc;
|
||||
|
||||
Reference in New Issue
Block a user