From 639eb16af544ea051d2e091111bcd6427a1644d0 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Tue, 25 Aug 2020 16:12:16 +0200 Subject: Add info about the event to the db and render landing page. --- src/models/event.rs | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/models/event.rs (limited to 'src/models/event.rs') diff --git a/src/models/event.rs b/src/models/event.rs new file mode 100644 index 0000000..0b31cbe --- /dev/null +++ b/src/models/event.rs @@ -0,0 +1,45 @@ +/* + Social program for Ramaskrik. + Copyright (C) 2019, 2020 Harald Eilertsen + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +use crate::db; +use crate::schema::*; +use diesel::prelude::*; +use serde::Serialize; + +#[derive(Identifiable, Queryable, Serialize)] +#[table_name = "event"] +pub struct Event { + pub id: i32, + pub name: String, + pub description: Option, +} + +impl Event { + pub fn get(db: &db::Connection) -> QueryResult { + use crate::schema::event::dsl::*; + event.first(&**db) + } + + pub fn create(db: &db::Connection, eventname: &str, desc: &str) -> QueryResult { + use crate::schema::event::dsl::*; + let new_event = (name.eq(&eventname), description.eq(&desc)); + diesel::insert_into(event) + .values(&new_event) + .execute(&**db) + } +} -- cgit v1.2.3