summaryrefslogtreecommitdiffstats
path: root/src/server/Api/Internal/Account/GetClaimsRoute.cs
blob: fde8887035b712ce866ee365918de16d2033c0be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace IOL.BookmarkThing.Server.Api.Internal.Account;

public class GetClaimsRoute : RouteBaseInternalSync.WithoutRequest.WithActionResult
{
	[HttpGet("~/v{apiVersion:apiVersion}/account/claims")]
	public override ActionResult Handle() {
		if (HttpContext.Request.Query.ContainsKey("download")) {
			var serializerOptions = new JsonSerializerOptions() {
					ReferenceHandler = ReferenceHandler.IgnoreCycles
			};
			return File(JsonSerializer.SerializeToUtf8Bytes(User.Claims, serializerOptions), "application/json", "claims_" + User.Identity?.Name + ".json");
		}

		return Ok(User.Claims);
	}
}