Refactoring to Rear #2

Merged
g4borg merged 3 commits from refactor_to_rear into main 2024-02-28 14:43:16 +01:00
9 changed files with 27 additions and 144 deletions
Showing only changes of commit 74eb3ac4c2 - Show all commits

108
Cargo.lock generated
View File

@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.7.7" version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
dependencies = [ dependencies = [
"getrandom", "getrandom",
"once_cell", "once_cell",
@ -30,9 +30,9 @@ dependencies = [
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.8.6" version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" checksum = "8b79b82693f705137f8fb9b37871d99e4f9a7df12b917eed79c3d3954830a60b"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"getrandom", "getrandom",
@ -792,41 +792,6 @@ dependencies = [
"typenum", "typenum",
] ]
[[package]]
name = "darling"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
dependencies = [
"darling_core",
"darling_macro",
]
[[package]]
name = "darling_core"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim",
"syn 1.0.109",
]
[[package]]
name = "darling_macro"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
dependencies = [
"darling_core",
"quote",
"syn 1.0.109",
]
[[package]] [[package]]
name = "der" name = "der"
version = "0.7.8" version = "0.7.8"
@ -859,37 +824,6 @@ dependencies = [
"syn 1.0.109", "syn 1.0.109",
] ]
[[package]]
name = "derive_builder"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "660047478bc508c0fde22c868991eec0c40a63e48d610befef466d48e2bee574"
dependencies = [
"derive_builder_macro",
]
[[package]]
name = "derive_builder_core"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b217e6dd1011a54d12f3b920a411b5abd44b1716ecfe94f5f2f2f7b52e08ab7"
dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "derive_builder_macro"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5f77d7e20ac9153428f7ca14a88aba652adfc7a0ef0a06d654386310ef663b"
dependencies = [
"derive_builder_core",
"syn 1.0.109",
]
[[package]] [[package]]
name = "deunicode" name = "deunicode"
version = "1.4.2" version = "1.4.2"
@ -1311,7 +1245,7 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
dependencies = [ dependencies = [
"ahash 0.7.7", "ahash 0.7.8",
] ]
[[package]] [[package]]
@ -1320,7 +1254,7 @@ version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
dependencies = [ dependencies = [
"ahash 0.8.6", "ahash 0.8.10",
"allocator-api2", "allocator-api2",
] ]
@ -1538,12 +1472,6 @@ dependencies = [
"cc", "cc",
] ]
[[package]]
name = "ident_case"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]] [[package]]
name = "idna" name = "idna"
version = "0.4.0" version = "0.4.0"
@ -1828,7 +1756,6 @@ dependencies = [
"async-trait", "async-trait",
"axum 0.7.4", "axum 0.7.4",
"barrel", "barrel",
"derive_builder",
"dotenvy", "dotenvy",
"dunce", "dunce",
"entity", "entity",
@ -1846,7 +1773,6 @@ dependencies = [
"serde_json", "serde_json",
"slug", "slug",
"sqlformat", "sqlformat",
"strinto",
"tokio", "tokio",
"tower-http", "tower-http",
"tracing", "tracing",
@ -2379,25 +2305,14 @@ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
"axum 0.7.4", "axum 0.7.4",
"barrel",
"derive_builder",
"dotenvy",
"dunce",
"env_logger",
"log", "log",
"mime_guess",
"minijinja", "minijinja",
"minijinja-autoreload", "minijinja-autoreload",
"once_cell",
"pulldown-cmark", "pulldown-cmark",
"rust-embed",
"sea-orm",
"serde", "serde",
"serde_json", "serde_json",
"slug", "slug",
"sqlformat",
"tokio", "tokio",
"tower-http",
"tracing", "tracing",
] ]
@ -3046,7 +2961,7 @@ version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd"
dependencies = [ dependencies = [
"ahash 0.8.6", "ahash 0.8.10",
"atoi", "atoi",
"bigdecimal", "bigdecimal",
"byteorder", "byteorder",
@ -3261,15 +3176,6 @@ dependencies = [
"unicode-normalization", "unicode-normalization",
] ]
[[package]]
name = "strinto"
version = "0.1.0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.48",
]
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.10.0" version = "0.10.0"

View File

@ -17,7 +17,7 @@ use_barrel = ["barrel", "sqlformat"]
default = ["use_barrel"] default = ["use_barrel"]
[dependencies] [dependencies]
strinto = { path = "./strinto" } # strinto = { path = "./strinto" }
entity = { path = "./entity" } entity = { path = "./entity" }
rear = { path = "./rear" } rear = { path = "./rear" }
sea-orm = { version = "0.12.10", features = [ sea-orm = { version = "0.12.10", features = [
@ -51,7 +51,6 @@ log = "0.4.20"
env_logger = "0.11" env_logger = "0.11"
serde_json = "1.0.108" serde_json = "1.0.108"
slug = "0.1.5" slug = "0.1.5"
derive_builder = "0.13.0"
async-trait = "0.1.77" async-trait = "0.1.77"
tracing = "0.1.40" tracing = "0.1.40"
tower-http = { version = "0.5.1", features = ["trace"] } tower-http = { version = "0.5.1", features = ["trace"] }

View File

@ -278,3 +278,18 @@ or:
`rustup toolchain install stable-msvc` `rustup toolchain install stable-msvc`
activate toolchain with `rustup default` activate toolchain with `rustup default`
### udeps
https://github.com/est31/cargo-udeps
While compilation of this tool also works on Rust stable, it needs Rust nightly to actually run.
`cargo install cargo-udeps --locked`
cargo +nightly udeps
#### switching to nightly and back
rustup override set nightly

View File

@ -8,22 +8,9 @@ publish = false
name = "rear" name = "rear"
path = "src/lib.rs" path = "src/lib.rs"
[features]
# https://github.com/rust-db/barrel/blob/master/guides/diesel-setup.md
use_barrel = ["barrel", "sqlformat"]
default = ["use_barrel"]
[dependencies] [dependencies]
sea-orm = { version = "0.12.10", features = [
"runtime-tokio-native-tls",
"sqlx-postgres",
] }
sqlformat = { version = "0.2.2", optional = true }
anyhow = "1.0.75" anyhow = "1.0.75"
axum = "0.7" axum = "0.7"
barrel = { version = "0.7.0", optional = true, features = ["pg"] }
dotenvy = "0.15.7"
mime_guess = "2.0.4"
minijinja = { version = "1.0.11", features = [ minijinja = { version = "1.0.11", features = [
"loader", "loader",
"builtins", "builtins",
@ -31,21 +18,11 @@ minijinja = { version = "1.0.11", features = [
"deserialization", "deserialization",
] } ] }
minijinja-autoreload = "1.0.8" minijinja-autoreload = "1.0.8"
once_cell = "1.18.0"
pulldown-cmark = "0.9.3" pulldown-cmark = "0.9.3"
rust-embed = { version = "8.0.0", features = [
"axum",
"tokio",
"include-exclude",
] }
serde = { version = "1.0.188", features = ["derive"] } serde = { version = "1.0.188", features = ["derive"] }
tokio = { version = "1.32.0", features = ["full"] } tokio = { version = "1.32.0", features = ["full"] }
dunce = "1.0.4"
log = "0.4.20" log = "0.4.20"
env_logger = "0.11"
serde_json = "1.0.108" serde_json = "1.0.108"
slug = "0.1.5" slug = "0.1.5"
derive_builder = "0.13.0"
async-trait = "0.1.77" async-trait = "0.1.77"
tracing = "0.1.40" tracing = "0.1.40"
tower-http = { version = "0.5.1", features = ["trace"] }

View File

@ -50,12 +50,11 @@ mod dto {
} }
pub mod repository { pub mod repository {
use super::dto::{AdminApp, AdminModel}; use super::dto::AdminModel;
use async_trait::async_trait; use async_trait::async_trait;
use derive_builder::Builder;
use serde::{Serialize, Serializer}; use serde::{Serialize, Serializer};
use serde_json::Value; use serde_json::Value;
use std::{collections::HashMap, vec::IntoIter}; use std::vec::IntoIter;
pub type RepositoryContext = AdminModel; pub type RepositoryContext = AdminModel;

View File

@ -1,4 +1,4 @@
use axum::{routing::get, routing::post, Router}; use axum::{routing::get, Router};
pub mod domain; pub mod domain;
pub mod state; pub mod state;

View File

@ -1,5 +1,3 @@
use std::sync::Arc;
use axum::extract::Path; use axum::extract::Path;
use axum::http::HeaderMap; use axum::http::HeaderMap;
use axum::Form; use axum::Form;
@ -8,9 +6,7 @@ use log::info;
use serde_json::Value; use serde_json::Value;
use crate::admin::domain::{AdminApp, AdminModel}; use crate::admin::domain::{AdminApp, AdminModel};
use crate::admin::state;
use crate::admin::state::AdminState; use crate::admin::state::AdminState;
use crate::service::templates;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use super::domain::{LookupKey, RepositoryInfo, RepositoryItem, RepositoryList}; use super::domain::{LookupKey, RepositoryInfo, RepositoryItem, RepositoryList};

View File

@ -1,13 +1,6 @@
/* Default handlers */ /* Default handlers */
use crate::service::templates::Templates; use crate::service::templates::Templates;
use axum::{ use axum::{extract::State, http::StatusCode, response::IntoResponse};
body::Body,
extract::State,
http::{header, StatusCode, Uri},
response::{IntoResponse, Response},
};
use rust_embed::RustEmbed;
use std::marker::PhantomData;
// usage: .fallback(not_found_handler) // usage: .fallback(not_found_handler)
pub async fn not_found_handler( pub async fn not_found_handler(

View File

@ -1,10 +1,8 @@
use crate::service::error::Error; use crate::service::error::Error;
use axum::response::Html; use axum::response::Html;
use minijinja::value::ValueKind;
use minijinja::{path_loader, Environment, Value}; use minijinja::{path_loader, Environment, Value};
use minijinja_autoreload::AutoReloader; use minijinja_autoreload::AutoReloader;
use pulldown_cmark::Event; use pulldown_cmark::Event;
use serde::Deserializer;
use std::sync::Arc; use std::sync::Arc;
#[derive(Clone)] #[derive(Clone)]