Added auth

This commit is contained in:
Connor Johnstone
2026-03-19 14:02:33 -04:00
parent 93392db27c
commit 421ec3199b
21 changed files with 719 additions and 26 deletions

View File

@@ -1,8 +1,10 @@
use actix_session::Session;
use actix_web::{HttpResponse, web};
use serde::Deserialize;
use shanty_search::SearchProvider;
use crate::auth;
use crate::error::ApiError;
use crate::state::AppState;
@@ -34,16 +36,20 @@ pub fn configure(cfg: &mut web::ServiceConfig) {
async fn search_artist(
state: web::Data<AppState>,
session: Session,
query: web::Query<ArtistSearchParams>,
) -> Result<HttpResponse, ApiError> {
auth::require_auth(&session)?;
let results = state.search.search_artist(&query.q, query.limit).await?;
Ok(HttpResponse::Ok().json(results))
}
async fn search_album(
state: web::Data<AppState>,
session: Session,
query: web::Query<AlbumTrackSearchParams>,
) -> Result<HttpResponse, ApiError> {
auth::require_auth(&session)?;
let results = state
.search
.search_album(&query.q, query.artist.as_deref(), query.limit)
@@ -53,8 +59,10 @@ async fn search_album(
async fn search_track(
state: web::Data<AppState>,
session: Session,
query: web::Query<AlbumTrackSearchParams>,
) -> Result<HttpResponse, ApiError> {
auth::require_auth(&session)?;
let results = state
.search
.search_track(&query.q, query.artist.as_deref(), query.limit)
@@ -64,8 +72,10 @@ async fn search_track(
async fn get_discography(
state: web::Data<AppState>,
session: Session,
path: web::Path<String>,
) -> Result<HttpResponse, ApiError> {
auth::require_auth(&session)?;
let artist_id = path.into_inner();
let disco = state.search.get_discography(&artist_id).await?;
Ok(HttpResponse::Ok().json(disco))