Align role handlers and shared profession contract updates

This commit is contained in:
Ashwin Kumar 2026-03-25 23:03:12 +01:00
parent b82f294331
commit e1ea3f5ffe
4 changed files with 26 additions and 26 deletions

View file

@ -18,11 +18,11 @@ pub fn router() -> Router<PgPool> {
.route("/profile/me", get(get_profile).patch(update_profile))
.route("/profile/resume", post(upload_resume))
.route("/jobs", get(browse_jobs))
.route("/jobs/:id", get(get_job))
.route("/jobs/:id/apply", post(apply_to_job))
.route("/jobs/{id}", get(get_job))
.route("/jobs/{id}/apply", post(apply_to_job))
.route("/applications", get(list_my_applications))
.route("/applications/:id", get(get_my_application))
.route("/applications/:id/withdraw", post(withdraw_application))
.route("/applications/{id}", get(get_my_application))
.route("/applications/{id}/withdraw", post(withdraw_application))
}
#[derive(Deserialize)]

View file

@ -17,26 +17,26 @@ pub fn router() -> Router<PgPool> {
.route("/profile/me", get(get_profile).patch(update_profile))
// Marketplace (requirements feed)
.route("/marketplace", get(browse_marketplace))
.route("/marketplace/:id", get(get_requirement_detail))
.route("/marketplace/{id}", get(get_requirement_detail))
// Lead requests
.route("/leads/request", post(send_lead_request))
.route("/leads/requests/me", get(my_requests))
.route("/leads/requests/:id", delete(cancel_request))
.route("/leads/requests/{id}", delete(cancel_request))
.route("/leads/accepted/me", get(accepted_leads))
.route("/leads/accepted/:id", get(accepted_lead_detail))
.route("/leads/accepted/{id}", get(accepted_lead_detail))
// Portfolio
.route("/portfolio/me", get(list_portfolio))
.route("/portfolio", post(create_portfolio_item))
.route("/portfolio/:id", patch(update_portfolio_item).delete(delete_portfolio_item))
.route("/portfolio/{id}", patch(update_portfolio_item).delete(delete_portfolio_item))
// Services
.route("/services/me", get(list_services))
.route("/services", post(create_service))
.route("/services/:id", patch(update_service).delete(delete_service))
.route("/services/{id}", patch(update_service).delete(delete_service))
// Wallet
.route("/wallet/balance", get(wallet_balance))
.route("/wallet/ledger", get(wallet_ledger))
.route("/wallet/invoices", get(wallet_invoices))
.route("/wallet/invoices/:id", get(wallet_invoice_detail))
.route("/wallet/invoices/{id}", get(wallet_invoice_detail))
}
#[derive(Deserialize)]

View file

@ -12,7 +12,7 @@ use uuid::Uuid;
pub fn router() -> Router<AppState> {
Router::new()
.route("/", get(list_roles).post(create_role))
.route("/:id", get(get_role).patch(update_role).delete(delete_role))
.route("/{id}", get(get_role).patch(update_role).delete(delete_role))
}
// ── Query params ─────────────────────────────────────────────────────────────
@ -115,7 +115,7 @@ async fn list_roles(
r.audience,
r.description,
r.department_id,
d.name AS department_name,
d.name AS "department_name?",
r.is_active,
r.can_approve_requests,
r.can_manage_system_settings,
@ -185,7 +185,7 @@ async fn get_role(
r#"
SELECT
r.id, r.key, r.name, r.audience, r.description,
r.department_id, d.name AS department_name,
r.department_id, d.name AS "department_name?",
r.is_active, r.can_approve_requests, r.can_manage_system_settings,
r.created_at
FROM roles r
@ -324,13 +324,13 @@ async fn update_role(
can_manage_system_settings = $6
WHERE id = $7
"#,
name,
description,
department_id,
is_active,
can_approve,
can_manage,
id
name as String,
description as Option<String>,
department_id as Option<Uuid>,
is_active as bool,
can_approve as bool,
can_manage as bool,
id as Uuid
)
.execute(&state.pool)
.await

View file

@ -70,7 +70,7 @@ pub fn shared_routes(profession_key: &'static str) -> Router<ProfessionState> {
}
}),
)
.route("/marketplace/:id", get(get_requirement))
.route("/marketplace/{id}", get(get_requirement))
// ── Lead Requests ────────────────────────────────────────────────────
.route(
"/leads/request",
@ -81,20 +81,20 @@ pub fn shared_routes(profession_key: &'static str) -> Router<ProfessionState> {
),
)
.route("/leads/requests/me", get(my_requests))
.route("/leads/requests/:id", delete(cancel_request))
.route("/leads/requests/{id}", delete(cancel_request))
.route("/leads/accepted/me", get(accepted_leads))
.route("/leads/accepted/:id", get(accepted_lead_detail))
.route("/leads/accepted/{id}", get(accepted_lead_detail))
// ── Portfolio ────────────────────────────────────────────────────────
.route("/portfolio/me", get(list_portfolio).post(create_portfolio_item))
.route("/portfolio/me/:id", patch(update_portfolio_item).delete(delete_portfolio_item))
.route("/portfolio/me/{id}", patch(update_portfolio_item).delete(delete_portfolio_item))
// ── Services ─────────────────────────────────────────────────────────
.route("/services/me", get(list_services).post(create_service))
.route("/services/me/:id", patch(update_service).delete(delete_service))
.route("/services/me/{id}", patch(update_service).delete(delete_service))
// ── Wallet ───────────────────────────────────────────────────────────
.route("/wallet/me", get(wallet_balance))
.route("/wallet/me/ledger", get(wallet_ledger))
.route("/wallet/me/invoices", get(wallet_invoices))
.route("/wallet/me/invoices/:id", get(wallet_invoice_detail))
.route("/wallet/me/invoices/{id}", get(wallet_invoice_detail))
}
// ── Handlers ──────────────────────────────────────────────────────────────────