Initial commit with Claude created service skeleton

This commit is contained in:
Alex Selimov 2026-03-17 09:38:52 -04:00
commit 09e538872d
13 changed files with 848 additions and 0 deletions

7
src/votes/dto.rs Normal file
View file

@ -0,0 +1,7 @@
use serde::{Deserialize, Serialize};
#[derive(Deserialize)]
pub struct CreateVoteRequest {}
#[derive(Serialize)]
pub struct VoteResponse {}

29
src/votes/handlers.rs Normal file
View file

@ -0,0 +1,29 @@
use std::sync::Arc;
use axum::{
Router,
extract::{Path, State},
routing::{get, post},
};
use super::{dto::CreateVoteRequest, service::VoteService};
pub fn router(service: Arc<VoteService>) -> Router {
Router::new()
.route("/votes", get(list))
.route("/votes/{id}", get(get_by_id))
.route("/votes", post(create))
.with_state(service)
}
async fn list(State(service): State<Arc<VoteService>>) {
todo!()
}
async fn get_by_id(State(service): State<Arc<VoteService>>, Path(id): Path<u64>) {
todo!()
}
async fn create(State(service): State<Arc<VoteService>>, body: axum::Json<CreateVoteRequest>) {
todo!()
}

5
src/votes/mod.rs Normal file
View file

@ -0,0 +1,5 @@
pub mod dto;
pub mod handlers;
pub mod model;
pub mod repository;
pub mod service;

1
src/votes/model.rs Normal file
View file

@ -0,0 +1 @@
pub struct Vote {}

9
src/votes/repository.rs Normal file
View file

@ -0,0 +1,9 @@
use super::model::Vote;
pub struct VoteRepository {}
impl VoteRepository {
pub fn new() -> Self {
Self {}
}
}

14
src/votes/service.rs Normal file
View file

@ -0,0 +1,14 @@
use super::{
dto::{CreateVoteRequest, VoteResponse},
repository::VoteRepository,
};
pub struct VoteService {
repository: VoteRepository,
}
impl VoteService {
pub fn new(repository: VoteRepository) -> Self {
Self { repository }
}
}