feat(api): add movie CRUD API (#56)
This commit was merged in pull request #56.
This commit is contained in:
@@ -12,9 +12,11 @@ path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
arr-api = { workspace = true }
|
||||
arr-db = { workspace = true }
|
||||
axum = { workspace = true }
|
||||
reqwest = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
sqlx = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
tokio = { workspace = true }
|
||||
toml = { workspace = true }
|
||||
|
||||
@@ -5,6 +5,7 @@ mod config;
|
||||
use std::process::ExitCode;
|
||||
|
||||
use arr_api::{AppState, Upstreams};
|
||||
use arr_db::Db;
|
||||
use config::Config;
|
||||
use tower_http::trace::TraceLayer;
|
||||
|
||||
@@ -54,6 +55,10 @@ enum Error {
|
||||
Config(#[from] config::ConfigError),
|
||||
#[error("http client: {0}")]
|
||||
HttpClient(#[from] reqwest::Error),
|
||||
#[error("database: {0}")]
|
||||
Database(#[from] sqlx::Error),
|
||||
#[error("database migration: {0}")]
|
||||
Migration(#[from] sqlx::migrate::MigrateError),
|
||||
#[error("bind {addr}: {source}")]
|
||||
Bind {
|
||||
addr: std::net::SocketAddr,
|
||||
@@ -65,12 +70,15 @@ enum Error {
|
||||
|
||||
async fn run() -> Result<(), Error> {
|
||||
let config = Config::load()?;
|
||||
let database = Db::connect(&config.database_path).await?;
|
||||
database.migrate().await?;
|
||||
|
||||
let state = AppState::new(
|
||||
Upstreams::new(config.prowlarr_url, config.transmission_url)
|
||||
.with_prowlarr_api_key(config.prowlarr_api_key)
|
||||
.with_tmdb_api_key(config.tmdb_api_key),
|
||||
)?;
|
||||
)?
|
||||
.with_database(database);
|
||||
|
||||
let app = arr_api::router(state).layer(TraceLayer::new_for_http());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user