summaryrefslogtreecommitdiffstats
path: root/server/src/Endpoints/V1/ApiTokens/GetTokensRoute.cs
blob: 59fd077eda356d473ff4f8ad722d19ea10236c7c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace IOL.GreatOffice.Api.Endpoints.V1.ApiTokens;

public class GetTokensRoute : RouteBaseSync.WithoutRequest.WithResult<ActionResult<List<ApiAccessToken.ApiAccessTokenDto>>>
{
	private readonly AppDbContext _context;

	public GetTokensRoute(AppDbContext context) {
		_context = context;
	}

	/// <summary>
	/// Get all tokens, both active and inactive.
	/// </summary>
	/// <returns>A list of tokens</returns>
	[ApiVersion(ApiSpecV1.VERSION_STRING)]
	[HttpGet("~/v{version:apiVersion}/api-tokens")]
	[ProducesResponseType(200, Type = typeof(List<ApiAccessToken.ApiAccessTokenDto>))]
	[ProducesResponseType(204)]
	public override ActionResult<List<ApiAccessToken.ApiAccessTokenDto>> Handle() {
		return Ok(_context.AccessTokens.Where(c => c.User.Id == LoggedInUser.Id).Select(c => c.AsDto));
	}
}