Skip to content

Commit

Permalink
feat: allow disregarding size while fetching list of assets (#117)
Browse files Browse the repository at this point in the history
* feat: remove default assets size while fetching list of assets

* refactor: update size operator
  • Loading branch information
scortier authored Apr 26, 2022
1 parent db35f95 commit 22fdf96
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
8 changes: 4 additions & 4 deletions store/postgres/asset_repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ type AssetRepository struct {

// GetAll retrieves list of assets with filters
func (r *AssetRepository) GetAll(ctx context.Context, flt asset.Filter) ([]asset.Asset, error) {
builder := r.getAssetSQL().Offset(uint64(flt.Offset))
size := flt.Size
if size == 0 {
size = r.defaultGetMaxSize
}

builder := r.getAssetSQL().Limit(uint64(size)).Offset(uint64(flt.Offset))
if size > 0 {
builder = r.getAssetSQL().Limit(uint64(size)).Offset(uint64(flt.Offset))
}
builder = r.BuildFilterQuery(builder, flt)
builder = r.buildOrderQuery(builder, flt)
query, args, err := r.buildSQL(builder)
Expand Down
12 changes: 8 additions & 4 deletions store/postgres/asset_repository_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -208,17 +208,20 @@ func (r *AssetRepositoryTestSuite) TestBuildFilterQuery() {
func (r *AssetRepositoryTestSuite) TestGetAll() {
assets := r.insertRecord()

r.Run("should return all assets limited by default size", func() {
r.Run("should return all assets without filtering based on size", func() {
expectedSize := 8

results, err := r.repository.GetAll(r.ctx, asset.Filter{})
r.Require().NoError(err)
r.Require().Len(results, defaultGetMaxSize)
for i := 0; i < defaultGetMaxSize; i++ {
r.Require().Len(results, expectedSize)
for i := 0; i < expectedSize; i++ {
r.assertAsset(&assets[i], &results[i])
}
})

r.Run("should override default size using GetConfig.Size", func() {
size := 6

results, err := r.repository.GetAll(r.ctx, asset.Filter{
Size: size,
})
Expand All @@ -231,11 +234,12 @@ func (r *AssetRepositoryTestSuite) TestGetAll() {

r.Run("should fetch assets by offset defined in GetConfig.Offset", func() {
offset := 2

results, err := r.repository.GetAll(r.ctx, asset.Filter{
Offset: offset,
})
r.Require().NoError(err)
for i := offset; i > defaultGetMaxSize+offset; i++ {
for i := offset; i > len(results)+offset; i++ {
r.assertAsset(&assets[i], &results[i-offset])
}
})
Expand Down

0 comments on commit 22fdf96

Please sign in to comment.