public async Task GetPhotosByAlbum()

in Application/API/ImageRecognition.API/Controllers/PhotoController.cs [43:75]


        public async Task<JsonResult> GetPhotosByAlbum(string albumId)
        {
            var userId = Utilities.GetUsername(HttpContext.User);

            var photos = new List<Photo>();

            var photoQuery = _ddbContext.QueryAsync<Photo>(albumId,
                new DynamoDBOperationConfig {IndexName = "albumID-uploadTime-index"});
            foreach (var photo in await photoQuery.GetRemainingAsync().ConfigureAwait(false))
            {
                if (photo.Owner != userId) continue;

                photo.Thumbnail ??= new PhotoImage();
                photo.FullSize ??= new PhotoImage();

                photo.Thumbnail.Url = _s3Client.GetPreSignedURL(new GetPreSignedUrlRequest
                {
                    BucketName = _appOptions.PhotoStorageBucket,
                    Key = $"private/resized/{userId}/{photo.PhotoId}",
                    Expires = DateTime.UtcNow.AddHours(1)
                });
                photo.FullSize.Url = _s3Client.GetPreSignedURL(new GetPreSignedUrlRequest
                {
                    BucketName = _appOptions.PhotoStorageBucket,
                    Key = $"private/uploads/{userId}/{photo.PhotoId}",
                    Expires = DateTime.UtcNow.AddHours(1)
                });

                photos.Add(photo);
            }

            return new JsonResult(photos);
        }