Skip to content

Commit 190b24b

Browse files
committed
Refactor backend /view endpoint.
1 parent 2f4f523 commit 190b24b

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

backend/Api/Controllers/GetWebdavItem/GetWebdavItemController.cs

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ namespace NzbWebDAV.Api.Controllers.GetWebdavItem;
99

1010
[ApiController]
1111
[Route("view/{*path}")]
12-
public class ListWebdavDirectoryController(DatabaseStore store) : BaseApiController
12+
public class ListWebdavDirectoryController(DatabaseStore store) : ControllerBase
1313
{
1414
private static readonly FileExtensionContentTypeProvider MimeTypeProvider = new();
1515

16-
protected override bool RequiresAuthentication => false;
17-
1816
private async Task<Stream> GetWebdavItem(GetWebdavItemRequest request)
1917
{
2018
var item = await store.GetItemAsync(request.Item, HttpContext.RequestAborted);
@@ -52,12 +50,19 @@ private async Task<Stream> GetWebdavItem(GetWebdavItemRequest request)
5250
return stream;
5351
}
5452

55-
protected override async Task<IActionResult> HandleRequest()
53+
[HttpGet]
54+
public async Task HandleRequest()
5655
{
57-
var request = new GetWebdavItemRequest(HttpContext);
58-
await using var response = await GetWebdavItem(request);
59-
await response.CopyToAsync(Response.Body, bufferSize: 1024, HttpContext.RequestAborted);
60-
return new EmptyResult();
56+
try
57+
{
58+
var request = new GetWebdavItemRequest(HttpContext);
59+
await using var response = await GetWebdavItem(request);
60+
await response.CopyToAsync(Response.Body, bufferSize: 1024, HttpContext.RequestAborted);
61+
}
62+
catch (UnauthorizedAccessException)
63+
{
64+
Response.StatusCode = 401;
65+
}
6166
}
6267

6368
private static string GetContentType(string item)

backend/Api/Controllers/GetWebdavItem/GetWebdavItemRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public GetWebdavItemRequest(HttpContext context)
2323
// skip auth check for now
2424
var downloadKey = context.Request.Query["downloadKey"];
2525
if (!VerifyDownloadKey(downloadKey, Item))
26-
throw new BadHttpRequestException("Invalid download key");
26+
throw new UnauthorizedAccessException("Invalid download key");
2727

2828

2929
// parse range header

0 commit comments

Comments
 (0)