feat(backend): return settings in GET /users/@me
This commit is contained in:
		
							parent
							
								
									3527acb8ba
								
							
						
					
					
						commit
						22be49976a
					
				
					 4 changed files with 18 additions and 12 deletions
				
			
		|  | @ -46,7 +46,15 @@ public class UsersController( | |||
|     { | ||||
|         User user = await db.ResolveUserAsync(userRef, CurrentToken, ct); | ||||
|         return Ok( | ||||
|             await userRenderer.RenderUserAsync(user, CurrentUser, CurrentToken, true, true, ct: ct) | ||||
|             await userRenderer.RenderUserAsync( | ||||
|                 user, | ||||
|                 CurrentUser, | ||||
|                 CurrentToken, | ||||
|                 renderMembers: true, | ||||
|                 renderAuthMethods: true, | ||||
|                 renderSettings: true, | ||||
|                 ct: ct | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|  | @ -261,15 +269,6 @@ public class UsersController( | |||
|         return Ok(user.CustomPreferences); | ||||
|     } | ||||
| 
 | ||||
|     [HttpGet("@me/settings")] | ||||
|     [Authorize("user.read_hidden")] | ||||
|     [ProducesResponseType<UserSettings>(statusCode: StatusCodes.Status200OK)] | ||||
|     public async Task<IActionResult> GetUserSettingsAsync(CancellationToken ct = default) | ||||
|     { | ||||
|         User user = await db.Users.FirstAsync(u => u.Id == CurrentUser!.Id, ct); | ||||
|         return Ok(user.Settings); | ||||
|     } | ||||
| 
 | ||||
|     [HttpPatch("@me/settings")] | ||||
|     [Authorize("user.read_hidden", "user.update")] | ||||
|     [ProducesResponseType<UserSettings>(statusCode: StatusCodes.Status200OK)] | ||||
|  |  | |||
|  | @ -49,7 +49,8 @@ public record UserResponse( | |||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] Instant? LastSidReroll, | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] string? Timezone, | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] bool? Suspended, | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] bool? Deleted | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] bool? Deleted, | ||||
|     [property: JsonProperty(NullValueHandling = NullValueHandling.Ignore)] UserSettings? Settings | ||||
| ); | ||||
| 
 | ||||
| public record CustomPreferenceResponse( | ||||
|  |  | |||
|  | @ -33,6 +33,7 @@ public class UserRendererService( | |||
|         bool renderMembers = true, | ||||
|         bool renderAuthMethods = false, | ||||
|         string? overrideSid = null, | ||||
|         bool renderSettings = false, | ||||
|         CancellationToken ct = default | ||||
|     ) => | ||||
|         await RenderUserInnerAsync( | ||||
|  | @ -42,6 +43,7 @@ public class UserRendererService( | |||
|             renderMembers, | ||||
|             renderAuthMethods, | ||||
|             overrideSid, | ||||
|             renderSettings, | ||||
|             ct | ||||
|         ); | ||||
| 
 | ||||
|  | @ -52,6 +54,7 @@ public class UserRendererService( | |||
|         bool renderMembers = true, | ||||
|         bool renderAuthMethods = false, | ||||
|         string? overrideSid = null, | ||||
|         bool renderSettings = false, | ||||
|         CancellationToken ct = default | ||||
|     ) | ||||
|     { | ||||
|  | @ -62,6 +65,7 @@ public class UserRendererService( | |||
| 
 | ||||
|         renderMembers = renderMembers && (!user.ListHidden || tokenCanReadHiddenMembers); | ||||
|         renderAuthMethods = renderAuthMethods && tokenPrivileged; | ||||
|         renderSettings = renderSettings && tokenHidden; | ||||
| 
 | ||||
|         IEnumerable<Member> members = renderMembers | ||||
|             ? await db.Members.Where(m => m.UserId == user.Id).OrderBy(m => m.Name).ToListAsync(ct) | ||||
|  | @ -117,7 +121,8 @@ public class UserRendererService( | |||
|             tokenHidden ? user.LastSidReroll : null, | ||||
|             tokenHidden ? user.Timezone ?? "<none>" : null, | ||||
|             tokenHidden ? user is { Deleted: true, DeletedBy: not null } : null, | ||||
|             tokenHidden ? user.Deleted : null | ||||
|             tokenHidden ? user.Deleted : null, | ||||
|             renderSettings ? user.Settings : null | ||||
|         ); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue