feat(backend): initial /api/v1/users endpoint
This commit is contained in:
		
							parent
							
								
									5e7df2e074
								
							
						
					
					
						commit
						7791c91960
					
				
					 20 changed files with 385 additions and 4 deletions
				
			
		|  | @ -22,6 +22,7 @@ using Foxnouns.Backend.Services; | |||
| using Foxnouns.Backend.Utils; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using XidNet; | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Controllers; | ||||
| 
 | ||||
|  | @ -64,6 +65,7 @@ public class FlagsController( | |||
|         var flag = new PrideFlag | ||||
|         { | ||||
|             Id = snowflakeGenerator.GenerateSnowflake(), | ||||
|             LegacyId = Xid.NewXid().ToString(), | ||||
|             UserId = CurrentUser!.Id, | ||||
|             Name = req.Name, | ||||
|             Description = req.Description, | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ using Microsoft.AspNetCore.Mvc; | |||
| using Microsoft.EntityFrameworkCore; | ||||
| using Microsoft.EntityFrameworkCore.Storage; | ||||
| using NodaTime; | ||||
| using XidNet; | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Controllers; | ||||
| 
 | ||||
|  | @ -101,6 +102,7 @@ public class MembersController( | |||
|         var member = new Member | ||||
|         { | ||||
|             Id = snowflakeGenerator.GenerateSnowflake(), | ||||
|             LegacyId = Xid.NewXid().ToString(), | ||||
|             User = CurrentUser!, | ||||
|             Name = req.Name, | ||||
|             DisplayName = req.DisplayName, | ||||
|  |  | |||
|  | @ -222,7 +222,7 @@ public class UsersController( | |||
|             .CustomPreferences.Where(x => req.Any(r => r.Id == x.Key)) | ||||
|             .ToDictionary(); | ||||
| 
 | ||||
|         foreach (CustomPreferenceUpdateRequest? r in req) | ||||
|         foreach (CustomPreferenceUpdateRequest r in req) | ||||
|         { | ||||
|             if (r.Id != null && preferences.ContainsKey(r.Id.Value)) | ||||
|             { | ||||
|  | @ -233,6 +233,7 @@ public class UsersController( | |||
|                     Muted = r.Muted, | ||||
|                     Size = r.Size, | ||||
|                     Tooltip = r.Tooltip, | ||||
|                     LegacyId = preferences[r.Id.Value].LegacyId, | ||||
|                 }; | ||||
|             } | ||||
|             else | ||||
|  | @ -244,6 +245,7 @@ public class UsersController( | |||
|                     Muted = r.Muted, | ||||
|                     Size = r.Size, | ||||
|                     Tooltip = r.Tooltip, | ||||
|                     LegacyId = Guid.NewGuid(), | ||||
|                 }; | ||||
|             } | ||||
|         } | ||||
|  |  | |||
							
								
								
									
										16
									
								
								Foxnouns.Backend/Controllers/V1/UsersV1Controller.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Foxnouns.Backend/Controllers/V1/UsersV1Controller.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | |||
| using Foxnouns.Backend.Database.Models; | ||||
| using Foxnouns.Backend.Services.V1; | ||||
| using Microsoft.AspNetCore.Mvc; | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Controllers.V1; | ||||
| 
 | ||||
| [Route("/api/v1/users")] | ||||
| public class UsersV1Controller(UsersV1Service usersV1Service) : ApiControllerBase | ||||
| { | ||||
|     [HttpGet("{userRef}")] | ||||
|     public async Task<IActionResult> GetUserAsync(string userRef, CancellationToken ct = default) | ||||
|     { | ||||
|         User user = await usersV1Service.ResolveUserAsync(userRef, CurrentToken, ct); | ||||
|         return Ok(await usersV1Service.RenderUserAsync(user)); | ||||
|     } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue