From f677224f5c3e42a941bbce50199f4262b52fe6de Mon Sep 17 00:00:00 2001 From: fitel17112 Date: Wed, 12 Mar 2025 20:09:34 +0530 Subject: [PATCH] 0010 --- README.md | 2 +- src/user_service.v | 34 ++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3a5fa78..ee4a9b8 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,6 @@ - [ ] Developed RESTful API for flight search and booking - [ ] User Authentication - [ ] Implemented comprehensive flight search functionality -- [ ] Implemented user registration and login functionality +- [x] Implemented user registration and login functionality - [ ] Implemented secure booking process - [x] Create database schema for flights, users, and bookings diff --git a/src/user_service.v b/src/user_service.v index bb22d0c..2a72506 100644 --- a/src/user_service.v +++ b/src/user_service.v @@ -41,13 +41,35 @@ fn (app &App) service_update_user(id ?string, first_name string, last_name strin return error('User ID is required') } - salt := auth.generate_salt() - hashed_password := auth.hash_password_with_salt(password, salt) - - sql app.db { - update User set first_name = first_name, last_name = last_name, password = hashed_password, - salt = salt where id == id + // Get current user data + current_user := sql app.db { + select from User where id == id limit 1 }! + if current_user.len == 0 { + return error('User not found') + } + + mut updates := []string{} + + // Check which fields have changed + if first_name != current_user[0].first_name { + sql app.db { + update User set first_name = first_name where id == id + }! + } + if last_name != current_user[0].last_name { + sql app.db { + update User set last_name = last_name where id == id + }! + } + if password != '' { // Only update password if a new one is provided + salt := auth.generate_salt() + hashed_password := auth.hash_password_with_salt(password, salt) + sql app.db { + update User set password = hashed_password, salt = salt where id == id + }! + } + return }