From 5cbd76915e4c1ae0ec6ba68e70d78c4250d2054b Mon Sep 17 00:00:00 2001 From: Sam <@> Date: Mon, 9 Dec 2024 17:56:09 -0500 Subject: [PATCH] hexagonal architecture --- projects/hexagonal-architecture/.gitignore | 14 ++ projects/hexagonal-architecture/Cargo.toml | 111 ++++++++++++ projects/hexagonal-architecture/LICENSE | 24 +++ projects/hexagonal-architecture/README.md | 142 +++++++++++++++ .../end2end/package-lock.json | 167 ++++++++++++++++++ .../end2end/package.json | 15 ++ .../end2end/playwright.config.ts | 105 +++++++++++ .../end2end/tests/example.spec.ts | 9 + .../end2end/tsconfig.json | 109 ++++++++++++ .../leptos_hexagonal_architecture.png | Bin 0 -> 299448 bytes .../hexagonal-architecture/public/favicon.ico | Bin 0 -> 15406 bytes projects/hexagonal-architecture/src/app.rs | 87 +++++++++ projects/hexagonal-architecture/src/config.rs | 23 +++ projects/hexagonal-architecture/src/lib.rs | 150 ++++++++++++++++ projects/hexagonal-architecture/src/main.rs | 52 ++++++ .../hexagonal-architecture/src/middleware.rs | 84 +++++++++ .../src/server_types.rs | 102 +++++++++++ .../hexagonal-architecture/src/trait_impl.rs | 149 ++++++++++++++++ projects/hexagonal-architecture/src/traits.rs | 42 +++++ .../hexagonal-architecture/src/ui_types.rs | 8 + .../hexagonal-architecture/style/main.scss | 4 + 21 files changed, 1397 insertions(+) create mode 100644 projects/hexagonal-architecture/.gitignore create mode 100644 projects/hexagonal-architecture/Cargo.toml create mode 100644 projects/hexagonal-architecture/LICENSE create mode 100644 projects/hexagonal-architecture/README.md create mode 100644 projects/hexagonal-architecture/end2end/package-lock.json create mode 100644 projects/hexagonal-architecture/end2end/package.json create mode 100644 projects/hexagonal-architecture/end2end/playwright.config.ts create mode 100644 projects/hexagonal-architecture/end2end/tests/example.spec.ts create mode 100644 projects/hexagonal-architecture/end2end/tsconfig.json create mode 100644 projects/hexagonal-architecture/leptos_hexagonal_architecture.png create mode 100644 projects/hexagonal-architecture/public/favicon.ico create mode 100644 projects/hexagonal-architecture/src/app.rs create mode 100644 projects/hexagonal-architecture/src/config.rs create mode 100644 projects/hexagonal-architecture/src/lib.rs create mode 100644 projects/hexagonal-architecture/src/main.rs create mode 100644 projects/hexagonal-architecture/src/middleware.rs create mode 100644 projects/hexagonal-architecture/src/server_types.rs create mode 100644 projects/hexagonal-architecture/src/trait_impl.rs create mode 100644 projects/hexagonal-architecture/src/traits.rs create mode 100644 projects/hexagonal-architecture/src/ui_types.rs create mode 100644 projects/hexagonal-architecture/style/main.scss diff --git a/projects/hexagonal-architecture/.gitignore b/projects/hexagonal-architecture/.gitignore new file mode 100644 index 0000000000..6985cf1bd0 --- /dev/null +++ b/projects/hexagonal-architecture/.gitignore @@ -0,0 +1,14 @@ +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb diff --git a/projects/hexagonal-architecture/Cargo.toml b/projects/hexagonal-architecture/Cargo.toml new file mode 100644 index 0000000000..ea0a04b602 --- /dev/null +++ b/projects/hexagonal-architecture/Cargo.toml @@ -0,0 +1,111 @@ +[package] +name = "leptos-hexagonal-design" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] + +[dependencies] +leptos = { version = "0.7.0" } +leptos_router = { version = "0.7.0" } +axum = { version = "0.7", optional = true } +console_error_panic_hook = "0.1" +leptos_axum = { version = "0.7.0", optional = true } +leptos_meta = { version = "0.7.0" } +tokio = { version = "1", features = ["rt-multi-thread"], optional = true } +tower = { version = "0.4", optional = true } +tower-http = { version = "0.5", features = ["fs"], optional = true } +wasm-bindgen = "=0.2.99" +thiserror = "1" +tracing = { version = "0.1", optional = true } +http = "1" +mockall = "0.13.1" +cfg-if = "1.0.0" +serde = "1.0.215" +pin-project-lite = "0.2.15" + +[features] +config_1 = [] +hydrate = ["leptos/hydrate"] +ssr = [ + "dep:axum", + "dep:tokio", + "dep:tower", + "dep:tower-http", + "dep:leptos_axum", + "leptos/ssr", + "leptos_meta/ssr", + "leptos_router/ssr", + "dep:tracing", +] + +# Defines a size-optimized profile for the WASM bundle in release mode +[profile.wasm-release] +inherits = "release" +opt-level = 'z' +lto = true +codegen-units = 1 +panic = "abort" + +[package.metadata.leptos] +# The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name +output-name = "leptos-hexagonal-design" + +# The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup. +site-root = "target/site" + +# The site-root relative folder where all compiled output (JS, WASM and CSS) is written +# Defaults to pkg +site-pkg-dir = "pkg" + +# [Optional] The source CSS file. If it ends with .sass or .scss then it will be compiled by dart-sass into CSS. The CSS is optimized by Lightning CSS before being written to //app.css +style-file = "style/main.scss" +# Assets source dir. All files found here will be copied and synchronized to site-root. +# The assets-dir cannot have a sub directory with the same name/path as site-pkg-dir. +# +# Optional. Env: LEPTOS_ASSETS_DIR. +assets-dir = "public" + +# The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup. +site-addr = "127.0.0.1:3000" + +# The port to use for automatic reload monitoring +reload-port = 3001 + +# [Optional] Command to use when running end2end tests. It will run in the end2end dir. +# [Windows] for non-WSL use "npx.cmd playwright test" +# This binary name can be checked in Powershell with Get-Command npx +end2end-cmd = "npx playwright test" +end2end-dir = "end2end" + +# The browserlist query used for optimizing the CSS. +browserquery = "defaults" + +# The environment Leptos will run in, usually either "DEV" or "PROD" +env = "DEV" + +# The features to use when compiling the bin target +# +# Optional. Can be over-ridden with the command line parameter --bin-features +bin-features = ["ssr"] + +# If the --no-default-features flag should be used when compiling the bin target +# +# Optional. Defaults to false. +bin-default-features = false + +# The features to use when compiling the lib target +# +# Optional. Can be over-ridden with the command line parameter --lib-features +lib-features = ["hydrate"] + +# If the --no-default-features flag should be used when compiling the lib target +# +# Optional. Defaults to false. +lib-default-features = false + +# The profile to use for the lib target when compiling for release +# +# Optional. Defaults to "release". +lib-profile-release = "wasm-release" diff --git a/projects/hexagonal-architecture/LICENSE b/projects/hexagonal-architecture/LICENSE new file mode 100644 index 0000000000..fdddb29aa4 --- /dev/null +++ b/projects/hexagonal-architecture/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/projects/hexagonal-architecture/README.md b/projects/hexagonal-architecture/README.md new file mode 100644 index 0000000000..60938184d9 --- /dev/null +++ b/projects/hexagonal-architecture/README.md @@ -0,0 +1,142 @@ +### Leptos Hexagonal Design + +This Blog Post / Github Repository is about applying principles of hexagonal design + - Isolating Business Logic from Sub Domains + - Decoupling design to improve flexibility and testablity + - Applying the principles hierachically so that sub domains which talk to external services also implement also implement hexagonal architecture + + +There are specific constraints that guide our design decisions + +- Server Functions Can't be Generic +- Boxed Traits Objects Have overhead, so we only want to use as much generic code as possible avoid Trait Objects + +The way this works is we define the functionality of our program in the main domain (i.e the business problem and processes our app is trying to solve / proceduralize). We then create sub domains and external services, although they are represented the same. External services are usually the end nodes of your app's architectural graph. Our main application builds it's service layout using configuration flags. + +```rust +pub fn config() -> MainAppHandlerAlias { + cfg_if::cfg_if! { + if #[cfg(feature="open_ai_wrapper")] { + fn server_handler_config_1() -> MainAppHandler< + AuthService, + AiMessageGen, + > { + MainAppHandler::new_with_postgres_and_redis_open_ai() + } + server_handler_config_1() + } else { + fn server_handler_config_2() -> MainAppHandler< + AuthService, + OtherAiMessageGen, + > { + MainAppHandler::new_with_my_sql_memcache_hugging_face() + } + server_handler_config_2() + } + } +} + +``` + +And we pass in our handler which implements a trait + +```rust +pub trait HandlerServerFn { + pub fn server_fn_1_inner(&self); +} +impl HandlerServerFn for MainAppHandler { + pub fn server_fn_1_inner(&self) { + // do thing + } +} +``` + +in our main fn we produce our applications service graph and pass it to our leptos router. + +```rust +main () { + let leptos_options = conf.leptos_options; + let routes = generate_route_list(crate::app::App); + // our feature flag based config function. + let handler = config(); + let handler_c = handler.clone(); + // we implement FromRef for LeptosOptions + let server_state = ServerState { + handler, + leptos_options: leptos_options.clone(), + }; + let app = Router::new() + .leptos_routes_with_context( + &server_state, + routes, + // We pass in the MainAppHandler struct as context so we can fetch it anywhere context is available on the server. + // This includes in middleware we define on server functions (see middleware.rs) + move || provide_context(handler_c.clone()), + { + let leptos_options = leptos_options.clone(); + move || shell(leptos_options.clone()) + }, + ) + .fallback(leptos_axum::file_and_error_handler::< + ServerState, + _, + >(shell)) + .with_state(server_state); +} +``` + +and then in our server functions + +```rust +#[server] +pub async fn server_fn_1() -> Result<(),ServerFnError> { + // we type alias every variation of our services we plan on configuring. The alternative is using Box which isn't bad - just slower. + Ok(expect_context::().server_fn_1_inner()) +} +``` + +And then we can mock and service trait in any combination like so + +```rust + #[tokio::test] + pub async fn test_subdomain_1_with_mocks() -> Result<(), Box> { + let mut mock_external_service_1 = MockExternalServiceTrait1::new(); + mock_external_service_1 + .expect_external_service_1_method() + .returning(|| { + println!("Mock external service 1"); + Ok(ExternalService1Data) + }); + let mut mock_external_service_2 = MockExternalServiceTrait2::new(); + mock_external_service_2 + .expect_external_service_2_method() + .returning(|| { + println!("Mock external service 2"); + Ok(ExternalService2Data) + }); + let real_subdomain_1_with_mock_externals = SubDomainStruct1 { + external_service_1: mock_external_service_1, + external_service_2: mock_external_service_2, + }; + let data = real_subdomain_1_with_mock_externals + .sub_domain_1_method() + .await?; + assert_eq!(data, SubDomain1Data); + Ok(()) + } +``` + + +Check out the code in the repository for a working example. + +Run the tests with + +` cargo test --features ssr ` +and otherwise run +` cargo leptos serve ` +and navigate to `127.0.0.1:3000` + +here's a picture + + +![alt text](leptos_hexagonal_architecture.png) \ No newline at end of file diff --git a/projects/hexagonal-architecture/end2end/package-lock.json b/projects/hexagonal-architecture/end2end/package-lock.json new file mode 100644 index 0000000000..260e8eb1fc --- /dev/null +++ b/projects/hexagonal-architecture/end2end/package-lock.json @@ -0,0 +1,167 @@ +{ + "name": "end2end", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "end2end", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.44.1", + "@types/node": "^20.12.12", + "typescript": "^5.4.5" + } + }, + "node_modules/@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + } + }, + "dependencies": { + "@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "dev": true, + "requires": { + "playwright": "1.44.1" + } + }, + "@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "dev": true, + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.44.1" + } + }, + "playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", + "dev": true + }, + "typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + } + } +} diff --git a/projects/hexagonal-architecture/end2end/package.json b/projects/hexagonal-architecture/end2end/package.json new file mode 100644 index 0000000000..a80ac59737 --- /dev/null +++ b/projects/hexagonal-architecture/end2end/package.json @@ -0,0 +1,15 @@ +{ + "name": "end2end", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": {}, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.44.1", + "@types/node": "^20.12.12", + "typescript": "^5.4.5" + } +} diff --git a/projects/hexagonal-architecture/end2end/playwright.config.ts b/projects/hexagonal-architecture/end2end/playwright.config.ts new file mode 100644 index 0000000000..aee2d46fd6 --- /dev/null +++ b/projects/hexagonal-architecture/end2end/playwright.config.ts @@ -0,0 +1,105 @@ +import type { PlaywrightTestConfig } from "@playwright/test"; +import { devices, defineConfig } from "@playwright/test"; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./tests", + /* Maximum time one test can run for. */ + timeout: 30 * 1000, + expect: { + /** + * Maximum time expect() should wait for the condition to be met. + * For example in `await expect(locator).toHaveText();` + */ + timeout: 5000, + }, + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ + actionTimeout: 0, + /* Base URL to use in actions like `await page.goto('/')`. */ + // baseURL: 'http://localhost:3000', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: "chromium", + use: { + ...devices["Desktop Chrome"], + }, + }, + + { + name: "firefox", + use: { + ...devices["Desktop Firefox"], + }, + }, + + { + name: "webkit", + use: { + ...devices["Desktop Safari"], + }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { + // ...devices['Pixel 5'], + // }, + // }, + // { + // name: 'Mobile Safari', + // use: { + // ...devices['iPhone 12'], + // }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { + // channel: 'msedge', + // }, + // }, + // { + // name: 'Google Chrome', + // use: { + // channel: 'chrome', + // }, + // }, + ], + + /* Folder for test artifacts such as screenshots, videos, traces, etc. */ + // outputDir: 'test-results/', + + /* Run your local dev server before starting the tests */ + // webServer: { + // command: 'npm run start', + // port: 3000, + // }, +}); diff --git a/projects/hexagonal-architecture/end2end/tests/example.spec.ts b/projects/hexagonal-architecture/end2end/tests/example.spec.ts new file mode 100644 index 0000000000..0139fc30e4 --- /dev/null +++ b/projects/hexagonal-architecture/end2end/tests/example.spec.ts @@ -0,0 +1,9 @@ +import { test, expect } from "@playwright/test"; + +test("homepage has title and heading text", async ({ page }) => { + await page.goto("http://localhost:3000/"); + + await expect(page).toHaveTitle("Welcome to Leptos"); + + await expect(page.locator("h1")).toHaveText("Welcome to Leptos!"); +}); diff --git a/projects/hexagonal-architecture/end2end/tsconfig.json b/projects/hexagonal-architecture/end2end/tsconfig.json new file mode 100644 index 0000000000..e075f973c4 --- /dev/null +++ b/projects/hexagonal-architecture/end2end/tsconfig.json @@ -0,0 +1,109 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/projects/hexagonal-architecture/leptos_hexagonal_architecture.png b/projects/hexagonal-architecture/leptos_hexagonal_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8132f1581225ab1e2fe70cd05f3e3a704b82e668 GIT binary patch literal 299448 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 z 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ⅇ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�pT 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 literal 0 HcmV?d00001 diff --git a/projects/hexagonal-architecture/public/favicon.ico b/projects/hexagonal-architecture/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2ba8527cb12f5f28f331b8d361eef560492d4c77 GIT binary patch literal 15406 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 k<4FtN!5 impl IntoView { + view! { + + + + + + + + + + + + + + } +} + +#[component] +pub fn App() -> impl IntoView { + // Provides context that manages stylesheets, titles, meta tags, etc. + provide_meta_context(); + + view! { + // injects a stylesheet into the document + // id=leptos means cargo-leptos will hot-reload this stylesheet + + + // sets the document title + + + // content for this welcome page + <Router> + <main> + <Routes fallback=|| "Page not found.".into_view()> + <Route path=StaticSegment("") view=HomePage/> + </Routes> + </main> + </Router> + } +} + +/// Renders the home page of your application. +#[component] +fn HomePage() -> impl IntoView { + let server_fn_1 = ServerAction::<ServerFunction1>::new(); + let server_fn_2 = ServerAction::<ServerFunction2>::new(); + let server_fn_3 = ServerAction::<ServerFunction3>::new(); + Effect::new(move |_| { + server_fn_1.dispatch(ServerFunction1 {}); + server_fn_2.dispatch(ServerFunction2 {}); + server_fn_3.dispatch(ServerFunction3 {}); + }); +} + +#[server] +#[middleware(crate::middleware::SubDomain1Layer)] +pub async fn server_function_1() -> Result<UiMappingFromDomainData, ServerFnError> { + Ok(expect_context::<HandlerStructAlias>() + .server_fn_1() + .await? + .into()) +} +#[server] +pub async fn server_function_2() -> Result<UiMappingFromDomainData2, ServerFnError> { + Ok(expect_context::<HandlerStructAlias>() + .server_fn_2() + .await? + .into()) +} +#[server] +pub async fn server_function_3() -> Result<UiMappingFromDomainData3, ServerFnError> { + Ok(expect_context::<HandlerStructAlias>() + .server_fn_3() + .await? + .into()) +} diff --git a/projects/hexagonal-architecture/src/config.rs b/projects/hexagonal-architecture/src/config.rs new file mode 100644 index 0000000000..735537acb1 --- /dev/null +++ b/projects/hexagonal-architecture/src/config.rs @@ -0,0 +1,23 @@ +use super::server_types::*; + +pub fn config() -> HandlerStructAlias { + cfg_if::cfg_if! { + if #[cfg(feature="config_1")] { + fn server_handler_config_1() -> HandlerStruct< + SubDomainStruct1<ExternalService1_1, ExternalService2_1>, + SubDomainStruct2<ExternalService1_1>, + > { + HandlerStruct::default() + } + server_handler_config_1() + } else { + fn server_handler_config_2() -> HandlerStruct< + SubDomainStruct1<ExternalService1_2, ExternalService2_2>, + SubDomainStruct2<ExternalService1_2>, + > { + HandlerStruct::new() + } + server_handler_config_2() + } + } +} diff --git a/projects/hexagonal-architecture/src/lib.rs b/projects/hexagonal-architecture/src/lib.rs new file mode 100644 index 0000000000..7362d4bbc2 --- /dev/null +++ b/projects/hexagonal-architecture/src/lib.rs @@ -0,0 +1,150 @@ +pub mod app; + +pub mod ui_types; + +#[cfg(feature = "ssr")] +pub mod config; +#[cfg(feature = "ssr")] +pub mod middleware; +#[cfg(feature = "ssr")] +pub mod server_types; +#[cfg(feature = "ssr")] +pub mod trait_impl; +#[cfg(feature = "ssr")] +pub mod traits; + +#[cfg(feature = "hydrate")] +#[wasm_bindgen::prelude::wasm_bindgen] +pub fn hydrate() { + use crate::app::*; + console_error_panic_hook::set_once(); + leptos::mount::hydrate_body(App); +} + +#[cfg(test)] +pub mod tests { + use super::server_types::*; + use super::traits::*; + use std::error::Error; + + #[tokio::test] + pub async fn test_subdomain_1_with_mocks() -> Result<(), Box<dyn Error>> { + let mut mock_external_service_1 = MockExternalServiceTrait1::new(); + mock_external_service_1 + .expect_external_service_1_method() + .returning(|| { + println!("Mock external service 1"); + Ok(ExternalService1Data) + }); + let mut mock_external_service_2 = MockExternalServiceTrait2::new(); + mock_external_service_2 + .expect_external_service_2_method() + .returning(|| { + println!("Mock external service 2"); + Ok(ExternalService2Data) + }); + let real_subdomain_1_with_mock_externals = SubDomainStruct1 { + external_service_1: mock_external_service_1, + external_service_2: mock_external_service_2, + }; + let data = real_subdomain_1_with_mock_externals + .sub_domain_1_method() + .await?; + assert_eq!(data, SubDomain1Data); + Ok(()) + } + + #[tokio::test] + pub async fn test_subdomain_2_with_mocks() -> Result<(), Box<dyn Error>> { + let mut mock_external_service_1 = MockExternalServiceTrait1::new(); + mock_external_service_1 + .expect_external_service_1_method() + .returning(|| { + println!("Mock external service 1 AGAIN"); + Ok(ExternalService1Data) + }); + let real_subdomain_2_with_mock_externals = SubDomainStruct2 { + external_service_1: mock_external_service_1, + }; + let data = real_subdomain_2_with_mock_externals + .sub_domain_2_method() + .await?; + assert_eq!(data, SubDomain2Data); + Ok(()) + } + + #[tokio::test] + pub async fn test_handler_with_mocks() -> Result<(), Box<dyn Error>> { + let mut mock_subdomain_1_trait = MockSubDomainTrait1::new(); + mock_subdomain_1_trait + .expect_sub_domain_1_method() + .returning(|| { + println!("Mock Subdomain 1"); + Ok(SubDomain1Data) + }); + let mut mock_subdomain_2_trait = MockSubDomainTrait2::new(); + mock_subdomain_2_trait + .expect_sub_domain_2_method() + .returning(|| { + println!("Mock Subdomain 2"); + Ok(SubDomain2Data) + }); + let real_handler_with_mock_subdomains = HandlerStruct { + sub_domain_1: mock_subdomain_1_trait, + sub_domain_2: mock_subdomain_2_trait, + }; + let data = real_handler_with_mock_subdomains.server_fn_1().await?; + assert_eq!(data, DomainData); + let data = real_handler_with_mock_subdomains.server_fn_2().await?; + assert_eq!(data, DomainData2); + let data = real_handler_with_mock_subdomains.server_fn_3().await?; + assert_eq!(data, DomainData3); + Ok(()) + } + + fn mock_subdomain_1() -> SubDomainStruct1<MockExternalServiceTrait1, MockExternalServiceTrait2> + { + let mut mock_external_service_1 = MockExternalServiceTrait1::new(); + mock_external_service_1 + .expect_external_service_1_method() + .returning(|| { + println!("Mock external service 1"); + Ok(ExternalService1Data) + }); + let mut mock_external_service_2 = MockExternalServiceTrait2::new(); + mock_external_service_2 + .expect_external_service_2_method() + .returning(|| { + println!("Mock external service 2"); + Ok(ExternalService2Data) + }); + let real_subdomain_1_with_mock_externals = SubDomainStruct1 { + external_service_1: mock_external_service_1, + external_service_2: mock_external_service_2, + }; + real_subdomain_1_with_mock_externals + } + + #[tokio::test] + pub async fn test_handler_with_mock_and_real_mix() -> Result<(), Box<dyn Error>> { + let sub_domain_1 = mock_subdomain_1(); + let mut mock_subdomain_2_trait = MockSubDomainTrait2::new(); + mock_subdomain_2_trait + .expect_sub_domain_2_method() + .returning(|| { + println!("Mock Subdomain 2"); + Ok(SubDomain2Data) + }); + let real_handler = HandlerStruct { + sub_domain_1, + sub_domain_2: mock_subdomain_2_trait, + }; + let data = real_handler.server_fn_1().await?; + assert_eq!(data, DomainData); + let data = real_handler.server_fn_2().await?; + assert_eq!(data, DomainData2); + let data = real_handler.server_fn_3().await?; + assert_eq!(data, DomainData3); + Ok(()) + } +} diff --git a/projects/hexagonal-architecture/src/main.rs b/projects/hexagonal-architecture/src/main.rs new file mode 100644 index 0000000000..9b70ed4967 --- /dev/null +++ b/projects/hexagonal-architecture/src/main.rs @@ -0,0 +1,52 @@ +#[cfg(feature = "ssr")] +#[tokio::main] +async fn main() { + use axum::Router; + use leptos::logging::log; + use leptos::prelude::*; + use leptos_axum::{generate_route_list, LeptosRoutes}; + use leptos_hexagonal_design::{ + app::*, + config::config, + server_types::{HandlerStructAlias, ServerState}, + }; + + let conf = get_configuration(None).unwrap(); + let addr = conf.leptos_options.site_addr; + let leptos_options = conf.leptos_options; + let routes = generate_route_list(App); + let handler = config(); + let handler_c = handler.clone(); + let server_state = ServerState { + handler, + leptos_options: leptos_options.clone(), + }; + let app = Router::new() + .leptos_routes_with_context( + &server_state, + routes, + move || provide_context(handler_c.clone()), + { + let leptos_options = leptos_options.clone(); + move || shell(leptos_options.clone()) + }, + ) + .fallback(leptos_axum::file_and_error_handler::< + ServerState<HandlerStructAlias>, + _, + >(shell)) + .with_state(server_state); + + log!("listening on http://{}", &addr); + let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); + axum::serve(listener, app.into_make_service()) + .await + .unwrap(); +} + +#[cfg(not(feature = "ssr"))] +pub fn main() { + // no client-side main function + // unless we want this to work with e.g., Trunk for pure client-side testing + // see lib.rs for hydration function instead +} diff --git a/projects/hexagonal-architecture/src/middleware.rs b/projects/hexagonal-architecture/src/middleware.rs new file mode 100644 index 0000000000..8ef135ab3e --- /dev/null +++ b/projects/hexagonal-architecture/src/middleware.rs @@ -0,0 +1,84 @@ +use axum::{ + body::Body, + http::{Request, Response}, +}; +use leptos::prelude::expect_context; +use std::{ + future::Future, + pin::Pin, + task::{Context, Poll}, +}; +use tower::{Layer, Service}; + +use crate::{ + server_types::{HandlerStructAlias, ServerState}, + traits::SubDomainTrait1, +}; +use pin_project_lite::pin_project; + +#[derive(Clone)] +pub struct SubDomain1Layer; + +impl<S> Layer<S> for SubDomain1Layer { + type Service = SubDomain1MiddleWare<S>; + + fn layer(&self, inner: S) -> Self::Service { + SubDomain1MiddleWare { inner } + } +} + +pub struct SubDomain1MiddleWare<S> { + inner: S, +} + +impl<S, ReqBody> Service<Request<ReqBody>> for SubDomain1MiddleWare<S> +where + S: Service<Request<ReqBody>, Response = Response<Body>>, + S::Error: std::fmt::Debug, + S::Future: Send + 'static, +{ + type Response = S::Response; + type Error = S::Error; + type Future = SubDomain1Future<S::Future>; + + fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> { + self.inner.poll_ready(cx) + } + + fn call(&mut self, req: Request<ReqBody>) -> Self::Future { + let req_fut = self.inner.call(req); + SubDomain1Future { req_fut } + } +} +pin_project! { + pub struct SubDomain1Future<F> { + #[pin] + req_fut: F, + } +} + +impl<F, Err> Future for SubDomain1Future<F> +where + F: Future<Output = Result<Response<Body>, Err>>, +{ + type Output = Result<Response<Body>, Err>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> { + let this = self.project(); + let subdomain_1 = expect_context::<ServerState<HandlerStructAlias>>() + .handler + .sub_domain_1; + let mut subdomain_1_fut = subdomain_1.sub_domain_1_method(); + match Pin::as_mut(&mut subdomain_1_fut).poll(cx) { + Poll::Ready(Ok(_)) => { + println!("Middleware for Subdomain 1 Passed, calling request..."); + this.req_fut.poll(cx) + } + Poll::Ready(Err(_)) => Poll::Ready(Ok(Response::builder() + .status(http::StatusCode::FORBIDDEN) + .body(Body::from("Access denied")) + .unwrap())), + Poll::Pending => Poll::Pending, + } + } +} diff --git a/projects/hexagonal-architecture/src/server_types.rs b/projects/hexagonal-architecture/src/server_types.rs new file mode 100644 index 0000000000..9d3e19db4a --- /dev/null +++ b/projects/hexagonal-architecture/src/server_types.rs @@ -0,0 +1,102 @@ +use super::traits::*; +use leptos::config::LeptosOptions; +use thiserror::Error; + +#[derive(Clone)] +pub struct ServerState<Handler: HandlerTrait> { + pub handler: Handler, + pub leptos_options: LeptosOptions, +} + +#[cfg(feature = "config_1")] +pub type HandlerStructAlias = HandlerStruct< + SubDomainStruct1<ExternalService1_1, ExternalService2_1>, + SubDomainStruct2<ExternalService1_1>, +>; +#[cfg(not(feature = "config_1"))] +pub type HandlerStructAlias = HandlerStruct< + SubDomainStruct1<ExternalService1_2, ExternalService2_2>, + SubDomainStruct2<ExternalService1_2>, +>; + +#[derive(Clone, Default)] +pub struct HandlerStruct<SubDomain1: SubDomainTrait1, SubDomain2: SubDomainTrait2> { + pub sub_domain_1: SubDomain1, + pub sub_domain_2: SubDomain2, +} +#[derive(Clone, Default)] +pub struct SubDomainStruct1< + ExternalService1: ExternalServiceTrait1, + ExternalService2: ExternalServiceTrait2, +> { + pub external_service_1: ExternalService1, + pub external_service_2: ExternalService2, +} + +#[derive(Clone, Default)] +pub struct SubDomainStruct2<ExternalService1: ExternalServiceTrait1> { + pub external_service_1: ExternalService1, +} + +#[derive(Clone, Default)] +pub struct ExternalService1_1; +#[derive(Clone, Default)] +pub struct ExternalService1_2; +#[derive(Clone, Default)] +pub struct ExternalService2_1; +#[derive(Clone, Default)] +pub struct ExternalService2_2; +#[derive(Clone, Default)] +pub struct ExternalService1; + +#[derive(Clone, PartialEq, Debug)] +pub struct DomainData; +#[derive(Clone, PartialEq, Debug)] +pub struct DomainData2; +#[derive(Clone, PartialEq, Debug)] +pub struct DomainData3; +#[derive(Clone, PartialEq, Debug)] +pub struct SubDomain1Data; +#[derive(Clone, PartialEq, Debug)] +pub struct SubDomain2Data; +#[derive(Clone)] +pub struct ExternalService1Data; +#[derive(Clone)] +pub struct ExternalService2Data; + +#[derive(Clone, Error, Debug)] +pub enum DomainError { + #[error("Underlying Subdomain 1 Error")] + SubDomain1Error(#[from] SubDomain1Error), + #[error("Underlying Subdomain 2 Error")] + SubDomain2Error(#[from] SubDomain2Error), +} + +#[derive(Clone, Error, Debug)] +pub enum SubDomain1Error { + #[error("Sub Domain 1 Error")] + SubDomain1Error, + #[error("Underlying Service 1")] + ExternalService1Error(#[from] ExternalService1Error), + #[error("Underlying Service 2")] + ExternalService2Error(#[from] ExternalService2Error), +} +#[derive(Clone, Error, Debug)] +pub enum SubDomain2Error { + #[error("Sub Domain 2 Error")] + SubDomain2Error, + #[error("Underlying Service 1")] + ExternalService1Error(#[from] ExternalService1Error), +} + +#[derive(Clone, Error, Debug)] +pub enum ExternalService1Error { + #[error("Service 1 Error")] + Error, +} + +#[derive(Clone, Error, Debug)] +pub enum ExternalService2Error { + #[error("Service 2 Error")] + Error, +} diff --git a/projects/hexagonal-architecture/src/trait_impl.rs b/projects/hexagonal-architecture/src/trait_impl.rs new file mode 100644 index 0000000000..41a58ed212 --- /dev/null +++ b/projects/hexagonal-architecture/src/trait_impl.rs @@ -0,0 +1,149 @@ +use crate::ui_types::*; + +use super::server_types::*; +use super::traits::*; +use axum::async_trait; +use axum::extract::FromRef; +use leptos::config::LeptosOptions; + +// So we can pass our server state as state into our leptos router. +impl<Handler: HandlerTrait + Clone> FromRef<ServerState<Handler>> for LeptosOptions { + fn from_ref(input: &ServerState<Handler>) -> Self { + input.leptos_options.clone() + } +} + +#[async_trait] +impl<SubDomain1, SubDomain2> HandlerTrait for HandlerStruct<SubDomain1, SubDomain2> +where + SubDomain1: SubDomainTrait1 + Send + Sync, + SubDomain2: SubDomainTrait2 + Send + Sync, +{ + async fn server_fn_1(&self) -> Result<DomainData, DomainError> { + Ok(self.sub_domain_1.sub_domain_1_method().await?.into()) + } + + async fn server_fn_2(&self) -> Result<DomainData2, DomainError> { + Ok(self.sub_domain_2.sub_domain_2_method().await?.into()) + } + + async fn server_fn_3(&self) -> Result<DomainData3, DomainError> { + Ok(( + self.sub_domain_1.sub_domain_1_method().await?, + self.sub_domain_2.sub_domain_2_method().await?, + ) + .into()) + } +} + +#[async_trait] +impl<ExternalService1, ExternalService2> SubDomainTrait1 + for SubDomainStruct1<ExternalService1, ExternalService2> +where + ExternalService1: ExternalServiceTrait1 + Send + Sync, + ExternalService2: ExternalServiceTrait2 + Send + Sync, +{ + async fn sub_domain_1_method(&self) -> Result<SubDomain1Data, SubDomain1Error> { + Ok(( + self.external_service_1.external_service_1_method().await?, + self.external_service_2.external_service_2_method().await?, + ) + .into()) + } +} + +#[async_trait] +impl<ExternalService1> SubDomainTrait2 for SubDomainStruct2<ExternalService1> +where + ExternalService1: ExternalServiceTrait1 + Send + Sync, +{ + async fn sub_domain_2_method(&self) -> Result<SubDomain2Data, SubDomain2Error> { + Ok(self + .external_service_1 + .external_service_1_method() + .await? + .into()) + } +} + +#[async_trait] +impl ExternalServiceTrait1 for ExternalService1_1 { + async fn external_service_1_method( + &self, + ) -> Result<ExternalService1Data, ExternalService1Error> { + println!("External Service 1 From External Service 1_1"); + Ok(ExternalService1Data) + } +} +#[async_trait] +impl ExternalServiceTrait1 for ExternalService1_2 { + async fn external_service_1_method( + &self, + ) -> Result<ExternalService1Data, ExternalService1Error> { + println!("External Service 1 From External Service 1_2"); + Ok(ExternalService1Data) + } +} +#[async_trait] +impl ExternalServiceTrait2 for ExternalService2_1 { + async fn external_service_2_method( + &self, + ) -> Result<ExternalService2Data, ExternalService2Error> { + println!("External Service 2 From External Service 2_1"); + Ok(ExternalService2Data) + } +} +#[async_trait] +impl ExternalServiceTrait2 for ExternalService2_2 { + async fn external_service_2_method( + &self, + ) -> Result<ExternalService2Data, ExternalService2Error> { + println!("External Service 2 From External Service 2_2"); + Ok(ExternalService2Data) + } +} + +// Sub Domain mapping +impl From<(ExternalService1Data, ExternalService2Data)> for SubDomain1Data { + fn from(_: (ExternalService1Data, ExternalService2Data)) -> Self { + Self + } +} +impl From<ExternalService1Data> for SubDomain2Data { + fn from(_: ExternalService1Data) -> Self { + Self + } +} +// Domain Mapping +impl From<SubDomain1Data> for DomainData { + fn from(_: SubDomain1Data) -> Self { + Self + } +} +impl From<SubDomain2Data> for DomainData2 { + fn from(_: SubDomain2Data) -> Self { + Self + } +} +impl From<(SubDomain1Data, SubDomain2Data)> for DomainData3 { + fn from(_: (SubDomain1Data, SubDomain2Data)) -> Self { + Self + } +} + +// Ui Mapping +impl From<DomainData> for UiMappingFromDomainData { + fn from(_: DomainData) -> Self { + Self + } +} +impl From<DomainData2> for UiMappingFromDomainData2 { + fn from(_: DomainData2) -> Self { + Self + } +} +impl From<DomainData3> for UiMappingFromDomainData3 { + fn from(_: DomainData3) -> Self { + Self + } +} diff --git a/projects/hexagonal-architecture/src/traits.rs b/projects/hexagonal-architecture/src/traits.rs new file mode 100644 index 0000000000..2e9b98f9a1 --- /dev/null +++ b/projects/hexagonal-architecture/src/traits.rs @@ -0,0 +1,42 @@ +use super::server_types::*; +use axum::async_trait; +use mockall::automock; +pub trait New { + fn new() -> Self; +} + +#[automock] +#[async_trait] +pub trait HandlerTrait { + async fn server_fn_1(&self) -> Result<DomainData, DomainError>; + async fn server_fn_2(&self) -> Result<DomainData2, DomainError>; + async fn server_fn_3(&self) -> Result<DomainData3, DomainError>; +} + +#[automock] +#[async_trait] +pub trait SubDomainTrait1 { + async fn sub_domain_1_method(&self) -> Result<SubDomain1Data, SubDomain1Error>; +} + +#[automock] +#[async_trait] +pub trait SubDomainTrait2 { + async fn sub_domain_2_method(&self) -> Result<SubDomain2Data, SubDomain2Error>; +} + +#[automock] +#[async_trait] +pub trait ExternalServiceTrait1 { + async fn external_service_1_method( + &self, + ) -> Result<ExternalService1Data, ExternalService1Error>; +} + +#[automock] +#[async_trait] +pub trait ExternalServiceTrait2 { + async fn external_service_2_method( + &self, + ) -> Result<ExternalService2Data, ExternalService2Error>; +} diff --git a/projects/hexagonal-architecture/src/ui_types.rs b/projects/hexagonal-architecture/src/ui_types.rs new file mode 100644 index 0000000000..30be0dee90 --- /dev/null +++ b/projects/hexagonal-architecture/src/ui_types.rs @@ -0,0 +1,8 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize)] +pub struct UiMappingFromDomainData; +#[derive(Serialize, Deserialize)] +pub struct UiMappingFromDomainData2; +#[derive(Serialize, Deserialize)] +pub struct UiMappingFromDomainData3; diff --git a/projects/hexagonal-architecture/style/main.scss b/projects/hexagonal-architecture/style/main.scss new file mode 100644 index 0000000000..e4538e156f --- /dev/null +++ b/projects/hexagonal-architecture/style/main.scss @@ -0,0 +1,4 @@ +body { + font-family: sans-serif; + text-align: center; +} \ No newline at end of file