Align role handlers and shared profession contract updates
This commit is contained in:
parent
b82f294331
commit
e1ea3f5ffe
4 changed files with 26 additions and 26 deletions
|
|
@ -18,11 +18,11 @@ pub fn router() -> Router<PgPool> {
|
||||||
.route("/profile/me", get(get_profile).patch(update_profile))
|
.route("/profile/me", get(get_profile).patch(update_profile))
|
||||||
.route("/profile/resume", post(upload_resume))
|
.route("/profile/resume", post(upload_resume))
|
||||||
.route("/jobs", get(browse_jobs))
|
.route("/jobs", get(browse_jobs))
|
||||||
.route("/jobs/:id", get(get_job))
|
.route("/jobs/{id}", get(get_job))
|
||||||
.route("/jobs/:id/apply", post(apply_to_job))
|
.route("/jobs/{id}/apply", post(apply_to_job))
|
||||||
.route("/applications", get(list_my_applications))
|
.route("/applications", get(list_my_applications))
|
||||||
.route("/applications/:id", get(get_my_application))
|
.route("/applications/{id}", get(get_my_application))
|
||||||
.route("/applications/:id/withdraw", post(withdraw_application))
|
.route("/applications/{id}/withdraw", post(withdraw_application))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
|
|
|
||||||
|
|
@ -17,26 +17,26 @@ pub fn router() -> Router<PgPool> {
|
||||||
.route("/profile/me", get(get_profile).patch(update_profile))
|
.route("/profile/me", get(get_profile).patch(update_profile))
|
||||||
// Marketplace (requirements feed)
|
// Marketplace (requirements feed)
|
||||||
.route("/marketplace", get(browse_marketplace))
|
.route("/marketplace", get(browse_marketplace))
|
||||||
.route("/marketplace/:id", get(get_requirement_detail))
|
.route("/marketplace/{id}", get(get_requirement_detail))
|
||||||
// Lead requests
|
// Lead requests
|
||||||
.route("/leads/request", post(send_lead_request))
|
.route("/leads/request", post(send_lead_request))
|
||||||
.route("/leads/requests/me", get(my_requests))
|
.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/me", get(accepted_leads))
|
||||||
.route("/leads/accepted/:id", get(accepted_lead_detail))
|
.route("/leads/accepted/{id}", get(accepted_lead_detail))
|
||||||
// Portfolio
|
// Portfolio
|
||||||
.route("/portfolio/me", get(list_portfolio))
|
.route("/portfolio/me", get(list_portfolio))
|
||||||
.route("/portfolio", post(create_portfolio_item))
|
.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
|
// Services
|
||||||
.route("/services/me", get(list_services))
|
.route("/services/me", get(list_services))
|
||||||
.route("/services", post(create_service))
|
.route("/services", post(create_service))
|
||||||
.route("/services/:id", patch(update_service).delete(delete_service))
|
.route("/services/{id}", patch(update_service).delete(delete_service))
|
||||||
// Wallet
|
// Wallet
|
||||||
.route("/wallet/balance", get(wallet_balance))
|
.route("/wallet/balance", get(wallet_balance))
|
||||||
.route("/wallet/ledger", get(wallet_ledger))
|
.route("/wallet/ledger", get(wallet_ledger))
|
||||||
.route("/wallet/invoices", get(wallet_invoices))
|
.route("/wallet/invoices", get(wallet_invoices))
|
||||||
.route("/wallet/invoices/:id", get(wallet_invoice_detail))
|
.route("/wallet/invoices/{id}", get(wallet_invoice_detail))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ use uuid::Uuid;
|
||||||
pub fn router() -> Router<AppState> {
|
pub fn router() -> Router<AppState> {
|
||||||
Router::new()
|
Router::new()
|
||||||
.route("/", get(list_roles).post(create_role))
|
.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 ─────────────────────────────────────────────────────────────
|
// ── Query params ─────────────────────────────────────────────────────────────
|
||||||
|
|
@ -115,7 +115,7 @@ async fn list_roles(
|
||||||
r.audience,
|
r.audience,
|
||||||
r.description,
|
r.description,
|
||||||
r.department_id,
|
r.department_id,
|
||||||
d.name AS department_name,
|
d.name AS "department_name?",
|
||||||
r.is_active,
|
r.is_active,
|
||||||
r.can_approve_requests,
|
r.can_approve_requests,
|
||||||
r.can_manage_system_settings,
|
r.can_manage_system_settings,
|
||||||
|
|
@ -185,7 +185,7 @@ async fn get_role(
|
||||||
r#"
|
r#"
|
||||||
SELECT
|
SELECT
|
||||||
r.id, r.key, r.name, r.audience, r.description,
|
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.is_active, r.can_approve_requests, r.can_manage_system_settings,
|
||||||
r.created_at
|
r.created_at
|
||||||
FROM roles r
|
FROM roles r
|
||||||
|
|
@ -324,13 +324,13 @@ async fn update_role(
|
||||||
can_manage_system_settings = $6
|
can_manage_system_settings = $6
|
||||||
WHERE id = $7
|
WHERE id = $7
|
||||||
"#,
|
"#,
|
||||||
name,
|
name as String,
|
||||||
description,
|
description as Option<String>,
|
||||||
department_id,
|
department_id as Option<Uuid>,
|
||||||
is_active,
|
is_active as bool,
|
||||||
can_approve,
|
can_approve as bool,
|
||||||
can_manage,
|
can_manage as bool,
|
||||||
id
|
id as Uuid
|
||||||
)
|
)
|
||||||
.execute(&state.pool)
|
.execute(&state.pool)
|
||||||
.await
|
.await
|
||||||
|
|
|
||||||
|
|
@ -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 ────────────────────────────────────────────────────
|
// ── Lead Requests ────────────────────────────────────────────────────
|
||||||
.route(
|
.route(
|
||||||
"/leads/request",
|
"/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/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/me", get(accepted_leads))
|
||||||
.route("/leads/accepted/:id", get(accepted_lead_detail))
|
.route("/leads/accepted/{id}", get(accepted_lead_detail))
|
||||||
// ── Portfolio ────────────────────────────────────────────────────────
|
// ── Portfolio ────────────────────────────────────────────────────────
|
||||||
.route("/portfolio/me", get(list_portfolio).post(create_portfolio_item))
|
.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 ─────────────────────────────────────────────────────────
|
// ── Services ─────────────────────────────────────────────────────────
|
||||||
.route("/services/me", get(list_services).post(create_service))
|
.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 ───────────────────────────────────────────────────────────
|
// ── Wallet ───────────────────────────────────────────────────────────
|
||||||
.route("/wallet/me", get(wallet_balance))
|
.route("/wallet/me", get(wallet_balance))
|
||||||
.route("/wallet/me/ledger", get(wallet_ledger))
|
.route("/wallet/me/ledger", get(wallet_ledger))
|
||||||
.route("/wallet/me/invoices", get(wallet_invoices))
|
.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 ──────────────────────────────────────────────────────────────────
|
// ── Handlers ──────────────────────────────────────────────────────────────────
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue