Skip to content

Commit 6d26284

Browse files
fix: builders (query builder, notebooks) fetch all buckets now (#3137)
1 parent 9edf248 commit 6d26284

File tree

5 files changed

+34
-35
lines changed

5 files changed

+34
-35
lines changed

src/buckets/actions/thunks.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe('buckets thunks', () => {
5656
it('should return results upon success', async () => {
5757
mockGetBuckets(true)
5858

59-
const bucks = await fetchAllBuckets('ord01')
59+
const {normalizedBuckets: bucks} = await fetchAllBuckets('ord01')
6060
expect(bucks.result).toContain('custom-id')
6161
expect(bucks.result).toContain('demo-bucket')
6262
})

src/buckets/actions/thunks.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,17 @@ export const getBuckets = () => async (
9090
}
9191
const org = getOrg(state)
9292

93-
let buckets
93+
let bucketsResponse
9494
if (isFlagEnabled('fetchAllBuckets')) {
9595
// a limit of -1 means fetch all buckets for this org
96-
buckets = await fetchAllBuckets(org.id, -1)
96+
bucketsResponse = await fetchAllBuckets(org.id, -1)
9797
} else {
98-
buckets = await fetchAllBuckets(org.id)
98+
bucketsResponse = await fetchAllBuckets(org.id)
9999
}
100-
dispatch(setBuckets(RemoteDataState.Done, buckets))
100+
dispatch(
101+
setBuckets(RemoteDataState.Done, bucketsResponse.normalizedBuckets)
102+
)
101103
} catch (error) {
102-
console.error(error)
103104
dispatch(setBuckets(RemoteDataState.Error))
104105
dispatch(notify(getBucketsFailed()))
105106
}

src/buckets/api/index.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,12 @@ export const fetchAllBuckets = async (orgID: string, limit = BUCKET_LIMIT) => {
2424
demoDataBuckets = await fetchDemoDataBuckets()
2525
}
2626

27-
return normalize<Bucket, BucketEntities, string[]>(
28-
[...resp.data.buckets, ...demoDataBuckets],
29-
arrayOfBuckets
30-
)
27+
return {
28+
buckets: resp.data.buckets,
29+
demoDataBuckets: demoDataBuckets,
30+
normalizedBuckets: normalize<Bucket, BucketEntities, string[]>(
31+
[...resp.data.buckets, ...demoDataBuckets],
32+
arrayOfBuckets
33+
),
34+
}
3135
}

src/external/monaco.flux.server.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ export class LSPServer {
164164
limit = -1
165165
}
166166

167-
const buckets = await fetchAllBuckets(org.id, limit)
168-
return Object.values(buckets.entities.buckets).map(b => b.name)
167+
const {normalizedBuckets} = await fetchAllBuckets(org.id, limit)
168+
return Object.values(normalizedBuckets.entities.buckets).map(b => b.name)
169169
} catch (e) {
170170
console.error(e)
171171
return []

src/timeMachine/actions/queryBuilderThunks.ts

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
import {Dispatch} from 'react'
2+
import {get} from 'lodash'
23

34
import {queryBuilderFetcher} from 'src/timeMachine/apis/QueryBuilderFetcher'
45

56
// Utils
67
import {event} from 'src/cloud/utils/reporting'
78
import {prohibitedDeselect} from 'src/shared/copy/notifications'
9+
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
10+
811
// API
9-
import {normalize} from 'normalizr'
10-
import {get} from 'lodash'
11-
import {fetchDemoDataBuckets} from 'src/cloud/apis/demodata'
12-
import * as api from 'src/client'
12+
import {fetchAllBuckets} from 'src/buckets/api'
1313

1414
// Types
1515
import {
1616
Bucket,
17-
BucketEntities,
1817
GetState,
1918
RemoteDataState,
2019
ResourceType,
@@ -57,13 +56,10 @@ import {
5756
} from 'src/timeMachine/actions/queryBuilder'
5857
import {setBuckets} from 'src/buckets/actions/creators'
5958
import {notify} from 'src/shared/actions/notifications'
59+
6060
// Constants
61-
import {LIMIT} from 'src/resources/constants'
6261
import {AGG_WINDOW_AUTO} from 'src/timeMachine/constants/queryBuilder'
6362

64-
// Schemas
65-
import {arrayOfBuckets} from 'src/schemas'
66-
6763
export const removeTagSelector = (index: number) => (
6864
dispatch: Dispatch<Action>
6965
) => {
@@ -232,25 +228,23 @@ export const loadBuckets = () => async (
232228
const orgID = getOrg(getState()).id
233229
dispatch(setBuilderBucketsStatus(RemoteDataState.Loading))
234230

231+
let bucketsResponse
235232
try {
236-
const resp = await api.getBuckets({query: {orgID, limit: LIMIT}})
237-
238-
if (resp.status !== 200) {
239-
throw new Error(resp.data.message)
233+
if (isFlagEnabled('fetchAllBuckets')) {
234+
// a limit of -1 means fetch all buckets for this org
235+
bucketsResponse = await fetchAllBuckets(orgID, -1)
236+
} else {
237+
bucketsResponse = await fetchAllBuckets(orgID)
240238
}
241239

242-
const demoDataBuckets = await fetchDemoDataBuckets()
243-
244-
const normalizedBuckets = normalize<Bucket, BucketEntities, string[]>(
245-
[...resp.data.buckets, ...demoDataBuckets],
246-
arrayOfBuckets
240+
dispatch(
241+
setBuckets(RemoteDataState.Done, bucketsResponse.normalizedBuckets)
247242
)
248243

249-
dispatch(setBuckets(RemoteDataState.Done, normalizedBuckets))
250-
251-
const allBuckets = [...resp.data.buckets, ...demoDataBuckets].map(
252-
b => b.name
253-
)
244+
const allBuckets = [
245+
...bucketsResponse.buckets,
246+
...bucketsResponse.demoDataBuckets,
247+
].map(b => b.name)
254248

255249
const systemBuckets = allBuckets.filter(b => b.startsWith('_'))
256250
const userBuckets = allBuckets.filter(b => !b.startsWith('_'))

0 commit comments

Comments
 (0)