From c9ebe2cb82f06891f54e7a859a8988d16c4f94d8 Mon Sep 17 00:00:00 2001 From: Vishnu Tejas Date: Sun, 16 Feb 2025 14:28:38 +0530 Subject: [PATCH] Fix: Attendance not being logged --- src/graphql/mutations/attendance_mutations.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/graphql/mutations/attendance_mutations.rs b/src/graphql/mutations/attendance_mutations.rs index 75bb471..259f271 100644 --- a/src/graphql/mutations/attendance_mutations.rs +++ b/src/graphql/mutations/attendance_mutations.rs @@ -44,17 +44,15 @@ impl AttendanceMutations { let now = Local::now().with_timezone(&Kolkata).time(); let attendance = sqlx::query_as::<_, Attendance>( - "UPDATE Attendance SET time_in = CASE - WHEN time_in IS NULL THEN $1 - ELSE time_in END, - time_out = $1, - is_present = TRUE - WHERE member_id = $2 AND date = $3 RETURNING * - ", + "INSERT INTO Attendance (member_id, date, is_present, time_in, time_out) + VALUES ($1, $2, TRUE, $3, $3) + ON CONFLICT (member_id, date) DO UPDATE SET + time_out = $3 + RETURNING *", ) - .bind(now) .bind(input.member_id) .bind(input.date) + .bind(now) .fetch_one(pool.as_ref()) .await?;