diff --git a/AobaCore/Services/AobaService.cs b/AobaCore/Services/AobaService.cs index 846715b..edd3d85 100644 --- a/AobaCore/Services/AobaService.cs +++ b/AobaCore/Services/AobaService.cs @@ -18,14 +18,17 @@ public class AobaService(IMongoDatabase db) return await _media.Find(m => m.Id == id).FirstOrDefaultAsync(cancellationToken); } - public async Task GetMediaFromFileAsync(ObjectId id, CancellationToken cancellationToken = default) - { - return await _media.Find(m => m.MediaId == id).FirstOrDefaultAsync(cancellationToken); - } - - public async Task> FindMediaAsync(string? query, int page = 1, int pageSize = 100) + public async Task GetMediaFromFileAsync(ObjectId id, CancellationToken cancellationToken = default) { - var filter = string.IsNullOrWhiteSpace(query) ? "{}" : Builders.Filter.Text(query); + return await _media.Find(m => m.MediaId == id).FirstOrDefaultAsync(cancellationToken); + } + + public async Task> FindMediaAsync(string? query, ObjectId userId, int page = 1, int pageSize = 100) + { + var filter = Builders.Filter.And([ + string.IsNullOrWhiteSpace(query) ? "{}" : Builders.Filter.Text(query), + Builders.Filter.Eq(m => m.Owner, userId) + ]); var sort = Builders.Sort.Descending(m => m.UploadDate); var find = _media.Find(filter); diff --git a/AobaServer/Services/AobaRpcService.cs b/AobaServer/Services/AobaRpcService.cs index 108783e..3626690 100644 --- a/AobaServer/Services/AobaRpcService.cs +++ b/AobaServer/Services/AobaRpcService.cs @@ -26,7 +26,8 @@ public class AobaRpcService(AobaService aobaService, AccountsService accountsSer public override async Task ListMedia(PageFilter request, ServerCallContext context) { - var result = await aobaService.FindMediaAsync(request.Query, request.HasPage ? request.Page : 1, request.HasPageSize ? request.PageSize : 100); + var user = context.GetUserId(); + var result = await aobaService.FindMediaAsync(request.Query, user, request.HasPage ? request.Page : 1, request.HasPageSize ? request.PageSize : 100); return result.ToResponse(); }