From 988d07a10d464e8bd3688f8deb8299f1db31fe60 Mon Sep 17 00:00:00 2001 From: mik-tf Date: Sun, 7 Sep 2025 10:23:01 -0400 Subject: [PATCH] feat: rename app provider to application provider across codebase and update terminology --- src/controllers/dashboard.rs | 16 +++--- src/controllers/marketplace.rs | 4 +- src/controllers/public.rs | 6 +- src/routes/mod.rs | 6 +- src/services/order.rs | 14 ++--- src/services/user_persistence.rs | 12 ++-- src/services/user_service.rs | 4 +- ...r.js => dashboard-application-provider.js} | 2 +- src/static/js/dashboard-messages.js | 2 +- src/static/js/demo-workflow.js | 2 +- src/utils/data_validator.rs | 2 +- ...rovider.html => application_provider.html} | 2 +- src/views/dashboard/index.html | 6 +- src/views/dashboard/layout.html | 4 +- src/views/docs/applications.html | 18 +++--- src/views/docs/index.html | 2 +- src/views/docs/layout.html | 2 +- src/views/home/about.html | 2 +- src/views/home/index.html | 4 +- ....html => terms-application-providers.html} | 56 +++++++++---------- src/views/marketplace/applications.html | 6 +- 21 files changed, 86 insertions(+), 86 deletions(-) rename src/static/js/{dashboard-app-provider.js => dashboard-application-provider.js} (99%) rename src/views/dashboard/{app_provider.html => application_provider.html} (99%) rename src/views/legal/{terms-solution-providers.html => terms-application-providers.html} (73%) diff --git a/src/controllers/dashboard.rs b/src/controllers/dashboard.rs index c4e824a..5416945 100644 --- a/src/controllers/dashboard.rs +++ b/src/controllers/dashboard.rs @@ -106,7 +106,7 @@ impl DashboardController { if let Ok(content) = std::fs::read_to_string(&file_path) { if let Ok(user_data) = serde_json::from_str::(&content) { // Count deployments for this app provider's apps - for deployment in &user_data.app_deployments { + for deployment in &user_data.application_deployments { // Check if this deployment belongs to an app from our app provider // We need to get the app provider's apps to match let provider_apps = UserPersistence::get_user_apps(app_provider_email); @@ -512,8 +512,8 @@ impl DashboardController { render_template(&tmpl, "dashboard/resource_provider.html", &ctx) } - /// Renders the app provider section of the dashboard - pub async fn app_provider_section(tmpl: web::Data, session: Session) -> Result { + /// Renders the application provider section of the dashboard + pub async fn application_provider_section(tmpl: web::Data, session: Session) -> Result { let mut ctx = crate::models::builders::ContextBuilder::new() .active_page("dashboard") .build(); @@ -547,7 +547,7 @@ impl DashboardController { } // Load fresh persistent deployments - let fresh_deployments = crate::services::user_persistence::UserPersistence::get_user_app_deployments(&email); + let fresh_deployments = crate::services::user_persistence::UserPersistence::get_user_application_deployments(&email); // Only count deployments for apps published by this user let user_published_app_ids: std::collections::HashSet = fresh_apps.iter().map(|a| a.id.clone()).collect(); @@ -2854,8 +2854,8 @@ impl DashboardController { - /// API endpoint to return app provider dashboard data as JSON - pub async fn app_provider_data_api(session: Session) -> Result { + /// API endpoint to return application provider dashboard data as JSON + pub async fn application_provider_data_api(session: Session) -> Result { // Get user email for debugging let user_email = session.get::("user_email") @@ -2875,7 +2875,7 @@ impl DashboardController { } } - let fresh_deployments = UserPersistence::get_user_app_deployments(&user_email); + let fresh_deployments = UserPersistence::get_user_application_deployments(&user_email); // Load user persistent data if let Some(user) = Self::load_user_with_persistent_data(&session) { @@ -5311,7 +5311,7 @@ impl DashboardController { }; // Load user's app deployments - let deployments = UserPersistence::get_user_app_deployments(&user_email); + let deployments = UserPersistence::get_user_application_deployments(&user_email); // Find the specific deployment if let Some(deployment) = deployments.iter().find(|d| d.id == deployment_id) { diff --git a/src/controllers/marketplace.rs b/src/controllers/marketplace.rs index 6455b36..8d2547f 100644 --- a/src/controllers/marketplace.rs +++ b/src/controllers/marketplace.rs @@ -1376,8 +1376,8 @@ pub fn create_marketplace_product_from_app(app: &crate::models::user::PublishedA .category_id("application") .base_price(rust_decimal::Decimal::from(app.monthly_revenue_usd.max(rust_decimal::Decimal::ONE))) // Use monthly revenue as base price, minimum $1 .base_currency("USD") - .provider_id("user-app-provider") - .provider_name("App Provider") + .provider_id("user-application-provider") + .provider_name("Application Provider") .availability(availability) .metadata(metadata) .add_attribute("app_type", ProductAttribute { diff --git a/src/controllers/public.rs b/src/controllers/public.rs index 58ca67c..abf8ba8 100644 --- a/src/controllers/public.rs +++ b/src/controllers/public.rs @@ -128,8 +128,8 @@ impl PublicController { render_template(&tmpl, "legal/terms-service-providers.html", &ctx) } - /// Renders the solution providers terms page - pub async fn terms_solution_providers(tmpl: web::Data, session: Session) -> Result { + /// Renders the application providers terms page + pub async fn terms_application_providers(tmpl: web::Data, session: Session) -> Result { let mut ctx = crate::models::builders::ContextBuilder::new() .build(); ctx.insert("active_page", "terms"); @@ -145,7 +145,7 @@ impl PublicController { } } - render_template(&tmpl, "legal/terms-solution-providers.html", &ctx) + render_template(&tmpl, "legal/terms-application-providers.html", &ctx) } /// Renders the users terms page diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 37b848c..75e4880 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -108,7 +108,7 @@ pub fn configure_routes(cfg: &mut web::ServiceConfig) { .route("/dashboard/slice-rentals/{id}", web::delete().to(DashboardController::cancel_slice_rental)) .route("/dashboard/user/slice-rentals/{id}", web::post().to(DashboardController::manage_slice_rental)) .route("/dashboard/resource_provider-data", web::get().to(DashboardController::resource_provider_data_api)) - .route("/dashboard/app-provider-data", web::get().to(DashboardController::app_provider_data_api)) + .route("/dashboard/application-provider-data", web::get().to(DashboardController::application_provider_data_api)) .route("/dashboard/slice-products", web::get().to(DashboardController::get_slice_products)) .route("/dashboard/slice-products", web::post().to(DashboardController::create_slice_product)) .route("/dashboard/slice-products/{id}", web::delete().to(DashboardController::delete_slice_product)) @@ -261,7 +261,7 @@ pub fn configure_routes(cfg: &mut web::ServiceConfig) { .route("", web::get().to(DashboardController::index)) .route("/user", web::get().to(DashboardController::user_section)) .route("/resource_provider", web::get().to(DashboardController::resource_provider_section)) - .route("/app-provider", web::get().to(DashboardController::app_provider_section)) + .route("/application-provider", web::get().to(DashboardController::application_provider_section)) .route("/service-provider", web::get().to(DashboardController::service_provider_section)) // Shopping routes - embedded in dashboard @@ -284,7 +284,7 @@ pub fn configure_routes(cfg: &mut web::ServiceConfig) { .route("/terms", web::get().to(PublicController::terms)) .route("/terms/resource_providers", web::get().to(PublicController::terms_resource_providers)) .route("/terms/service-providers", web::get().to(PublicController::terms_service_providers)) - .route("/terms/solution-providers", web::get().to(PublicController::terms_solution_providers)) + .route("/terms/application-providers", web::get().to(PublicController::terms_application_providers)) .route("/terms/users", web::get().to(PublicController::terms_users)) .route("/changelog", web::get().to(PublicController::changelog)) .route("/roadmap", web::get().to(PublicController::roadmap)); diff --git a/src/services/order.rs b/src/services/order.rs index fffeb4f..6633e50 100644 --- a/src/services/order.rs +++ b/src/services/order.rs @@ -626,8 +626,8 @@ impl OrderService { order.set_payment_details(payment_details.clone()); } - // PHASE 1: Create app deployments for successful app orders - if let Err(e) = self.create_app_deployments_from_order(&order) { + // PHASE 1: Create application deployments for successful app orders + if let Err(e) = self.create_application_deployments_from_order(&order) { } // PHASE 2: Create service bookings for successful service orders @@ -780,8 +780,8 @@ impl OrderService { stats } - /// PHASE 1: Create app deployments when apps are successfully ordered - fn create_app_deployments_from_order(&self, order: &Order) -> Result<(), String> { + /// PHASE 1: Create application deployments when apps are successfully ordered + fn create_application_deployments_from_order(&self, order: &Order) -> Result<(), String> { use crate::services::user_persistence::{UserPersistence, AppDeployment}; use crate::models::user::ResourceUtilization; use chrono::Utc; @@ -837,14 +837,14 @@ impl OrderService { .build() .unwrap(); - // Add deployment to app provider's data - if let Err(e) = UserPersistence::add_user_app_deployment(&app_provider_email, deployment.clone()) { + // Add deployment to application provider's data + if let Err(e) = UserPersistence::add_user_application_deployment(&app_provider_email, deployment.clone()) { } else { } // Also add deployment to customer's data (for future user dashboard) if customer_email != "guest" { - if let Err(e) = UserPersistence::add_user_app_deployment(&customer_email, deployment) { + if let Err(e) = UserPersistence::add_user_application_deployment(&customer_email, deployment) { } else { } } diff --git a/src/services/user_persistence.rs b/src/services/user_persistence.rs index 1f5bf24..775efee 100644 --- a/src/services/user_persistence.rs +++ b/src/services/user_persistence.rs @@ -41,7 +41,7 @@ pub struct UserPersistentData { pub slas: Vec, // App provider data pub apps: Vec, - pub app_deployments: Vec, + pub application_deployments: Vec, // Account deletion tracking pub deleted: Option, pub deleted_at: Option, @@ -137,7 +137,7 @@ impl Default for UserPersistentData { availability: None, slas: Vec::new(), apps: Vec::new(), - app_deployments: Vec::new(), + application_deployments: Vec::new(), deleted: None, deleted_at: None, deletion_reason: None, @@ -1247,22 +1247,22 @@ impl UserPersistence { } /// Get app deployments for a user - pub fn get_user_app_deployments(user_email: &str) -> Vec { + pub fn get_user_application_deployments(user_email: &str) -> Vec { if let Some(data) = Self::load_user_data(user_email) { - data.app_deployments + data.application_deployments } else { Vec::default() } } /// Add a new app deployment - pub fn add_user_app_deployment( + pub fn add_user_application_deployment( user_email: &str, deployment: AppDeployment ) -> Result<(), Box> { let mut data = crate::models::builders::SessionDataBuilder::load_or_create(user_email); - data.app_deployments.push(deployment.clone()); + data.application_deployments.push(deployment.clone()); Self::save_user_data(&data)?; Ok(()) } diff --git a/src/services/user_service.rs b/src/services/user_service.rs index 187f3cb..7da609e 100644 --- a/src/services/user_service.rs +++ b/src/services/user_service.rs @@ -181,9 +181,9 @@ impl UserService { /// Get user's purchased applications (for user dashboard) - derived from deployments pub fn get_user_applications(&self, user_email: &str) -> Vec { if let Some(persistent_data) = UserPersistence::load_user_data(user_email) { - // Convert app deployments to application view for user dashboard + // Convert application deployments to application view for user dashboard // IMPORTANT: Only show deployments where THIS user is the customer - let purchased_apps: Vec = persistent_data.app_deployments + let purchased_apps: Vec = persistent_data.application_deployments .into_iter() .filter(|d| d.status == "Active" && d.customer_email == user_email) .map(|deployment| crate::models::user::PublishedApp { diff --git a/src/static/js/dashboard-app-provider.js b/src/static/js/dashboard-application-provider.js similarity index 99% rename from src/static/js/dashboard-app-provider.js rename to src/static/js/dashboard-application-provider.js index 51891ce..d48fba7 100644 --- a/src/static/js/dashboard-app-provider.js +++ b/src/static/js/dashboard-application-provider.js @@ -566,7 +566,7 @@ document.addEventListener('DOMContentLoaded', function() { } // Load app provider data via apiJson - window.apiJson('/api/dashboard/app-provider-data', { cache: 'no-store' }) + window.apiJson('/api/dashboard/application-provider-data', { cache: 'no-store' }) .then(data => { window.__appProviderDashboard = new window.AppProviderDashboard(data || {}); }) diff --git a/src/static/js/dashboard-messages.js b/src/static/js/dashboard-messages.js index 2882174..aa8c46c 100644 --- a/src/static/js/dashboard-messages.js +++ b/src/static/js/dashboard-messages.js @@ -508,7 +508,7 @@ class DashboardMessaging { const colors = { 'service_booking': 'primary', 'slice_rental': 'success', - 'app_deployment': 'info', + 'application_deployment': 'info', 'general': 'secondary', 'support': 'warning' }; diff --git a/src/static/js/demo-workflow.js b/src/static/js/demo-workflow.js index 6d6eb49..ba3dee9 100644 --- a/src/static/js/demo-workflow.js +++ b/src/static/js/demo-workflow.js @@ -146,7 +146,7 @@ class DemoWorkflow { showNotification('Demo: Navigating to App Provider dashboard...', 'info'); setTimeout(() => { - if (window.location.pathname !== '/dashboard/app-provider') { + if (window.location.pathname !== '/dashboard/application-provider') { showNotification('Please navigate to the App Provider dashboard to continue the demo', 'warning'); return; } diff --git a/src/utils/data_validator.rs b/src/utils/data_validator.rs index 84ffc46..597bf89 100644 --- a/src/utils/data_validator.rs +++ b/src/utils/data_validator.rs @@ -81,7 +81,7 @@ impl DataValidator { ("services", Value::Array(vec![])), ("service_requests", Value::Array(vec![])), ("apps", Value::Array(vec![])), - ("app_deployments", Value::Array(vec![])), + ("application_deployments", Value::Array(vec![])), ("nodes", Value::Array(vec![])), ("resource_provider_earnings", Value::Array(vec![])), ("user_activities", Value::Array(vec![])), diff --git a/src/views/dashboard/app_provider.html b/src/views/dashboard/application_provider.html similarity index 99% rename from src/views/dashboard/app_provider.html rename to src/views/dashboard/application_provider.html index 37d58e4..3028bfa 100644 --- a/src/views/dashboard/app_provider.html +++ b/src/views/dashboard/application_provider.html @@ -239,7 +239,7 @@ null {% endif %} - +