diff --git a/src/main.rs b/src/main.rs index e753e7b4..db5103d4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -69,6 +69,8 @@ fn main() { routes::user::me, routes::user::details, + routes::user::edit, + routes::user::update, routes::user::follow, routes::user::activity_details, routes::user::outbox, diff --git a/src/models/users.rs b/src/models/users.rs index 4712441f..5d38f616 100644 --- a/src/models/users.rs +++ b/src/models/users.rs @@ -76,6 +76,17 @@ impl User { .expect("Error saving new user") } + pub fn update(&self, conn: &PgConnection, name: String, email: String, summary: String) -> User { + diesel::update(self) + .set(( + users::display_name.eq(name), + users::email.eq(email), + users::summary.eq(summary), + )).load::(conn) + .expect("Couldn't update user") + .into_iter().nth(0).unwrap() + } + pub fn get(conn: &PgConnection, id: i32) -> Option { users::table.filter(users::id.eq(id)) .limit(1) diff --git a/src/routes/user.rs b/src/routes/user.rs index 7c15e419..653e1c92 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -61,6 +61,34 @@ fn new(user: Option) -> Template { })) } +#[get("/@//edit")] +fn edit(name: String, user: User) -> Option