summaryrefslogtreecommitdiffstats
path: root/api/WhatApi/Middleware/UserLastSeenMiddleware.cs
diff options
context:
space:
mode:
authorivar <i@oiee.no>2025-10-26 22:58:52 +0100
committerivar <i@oiee.no>2025-10-26 22:58:52 +0100
commite4fb2a3c493cca456f1515bdaad39499eafc3348 (patch)
tree961aaa0aef410de292b6cd28c8cd7f4f59762cd3 /api/WhatApi/Middleware/UserLastSeenMiddleware.cs
parent842502e82c4ddfea05a5f77c361aaa27f75afc42 (diff)
downloadwhat-e4fb2a3c493cca456f1515bdaad39499eafc3348.tar.xz
what-e4fb2a3c493cca456f1515bdaad39499eafc3348.zip
Implement UserLastSeenMiddleware
Diffstat (limited to 'api/WhatApi/Middleware/UserLastSeenMiddleware.cs')
-rw-r--r--api/WhatApi/Middleware/UserLastSeenMiddleware.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/api/WhatApi/Middleware/UserLastSeenMiddleware.cs b/api/WhatApi/Middleware/UserLastSeenMiddleware.cs
index ef1b685..e52f890 100644
--- a/api/WhatApi/Middleware/UserLastSeenMiddleware.cs
+++ b/api/WhatApi/Middleware/UserLastSeenMiddleware.cs
@@ -1,8 +1,18 @@
+using System.Security.Claims;
+
namespace WhatApi.Middleware;
public class UserLastSeenMiddleware(RequestDelegate next, Database db)
{
public async Task InvokeAsync(HttpContext context) {
+ var userIdString = context.User.FindFirstValue(ClaimTypes.NameIdentifier);
+ if (Guid.TryParse(userIdString, out var userId)) {
+ var user = await db.Users.FirstOrDefaultAsync(c => c.Id == userId);
+ if (user is not null) {
+ user.LastSeen = DateTimeOffset.UtcNow;
+ await db.SaveChangesAsync();
+ }
+ }
await next(context);
}
} \ No newline at end of file