diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2020-08-25 16:12:16 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2020-08-25 16:12:16 +0200 |
commit | 639eb16af544ea051d2e091111bcd6427a1644d0 (patch) | |
tree | de4546f8f075cc122d503a7750d989dbc87c6d3d /src/models | |
parent | ccf0703f753c66405683b17b4d1f5135c10c0ece (diff) | |
download | ramaskrik-social-639eb16af544ea051d2e091111bcd6427a1644d0.tar.gz ramaskrik-social-639eb16af544ea051d2e091111bcd6427a1644d0.tar.bz2 ramaskrik-social-639eb16af544ea051d2e091111bcd6427a1644d0.zip |
Add info about the event to the db and render landing page.
Diffstat (limited to 'src/models')
-rw-r--r-- | src/models/event.rs | 45 |
1 files changed, 45 insertions, 0 deletions
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 <haraldei@anduin.net> + + 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 <https://www.gnu.org/licenses/>. +*/ + +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<String>, +} + +impl Event { + pub fn get(db: &db::Connection) -> QueryResult<Event> { + use crate::schema::event::dsl::*; + event.first(&**db) + } + + pub fn create(db: &db::Connection, eventname: &str, desc: &str) -> QueryResult<usize> { + use crate::schema::event::dsl::*; + let new_event = (name.eq(&eventname), description.eq(&desc)); + diesel::insert_into(event) + .values(&new_event) + .execute(&**db) + } +} |