feat: switch Dioxus to fullstack, add a form for creating a project

This commit is contained in:
2024-08-17 00:30:17 +02:00
parent 283b3965db
commit 57705de44d
13 changed files with 944 additions and 50 deletions

21
src/server/projects.rs Normal file
View File

@@ -0,0 +1,21 @@
use crate::models::project::{NewProject, Project};
use crate::server::database_connection::establish_database_connection;
use diesel::{RunQueryDsl, SelectableHelper};
use dioxus::prelude::*;
#[server]
pub(crate) async fn create_project(title: String) -> Result<Project, ServerFnError> {
use crate::schema::projects;
let mut connection = establish_database_connection();
let new_project = NewProject {
title: title.as_str(),
};
Ok(diesel::insert_into(projects::table)
.values(&new_project)
.returning(Project::as_returning())
.get_result(&mut connection)
.expect("error saving a new project"))
}