@@ -7,29 +7,38 @@ import {
77} from '../../db/ChangeLogType.js'
88import { GQLContext } from '../../types.js'
99
10+ const DEFAULT_LIMIT = 50
11+ const MAX_LIMIT = 500
12+
1013const HistoryQueries = {
1114 getChangeHistory : async ( _ , { filter } , { dataSources } : GQLContext ) : Promise < any > => {
1215 const { history } = dataSources
13- const { uuidList } : GetHistoryInputFilterType = filter ?? { }
16+ const { uuidList, limit , offset } : GetHistoryInputFilterType = filter ?? { }
1417 // Note: userUuid, fromDate, toDate filters don't currently work.
1518 // Note: though we pull uuidList, we don't use it either.
1619
1720 // Convert array of uuid in string to UUID[]
1821 const muidList = uuidList ?. map ( entry => muid . from ( entry ) ) ?? [ ]
19- return await history . getChangeSets ( muidList )
22+ const safeLimit = Math . min ( limit ?? DEFAULT_LIMIT , MAX_LIMIT )
23+ const safeOffset = offset ?? 0
24+ return await history . getChangeSets ( muidList , safeLimit , safeOffset )
2025 } ,
2126
2227 getAreaHistory : async ( _ , { filter } , { dataSources } : GQLContext ) : Promise < any > => {
2328 const { history } = dataSources
24- const { areaId } : GetAreaHistoryInputFilterType = filter ?? { }
25- const id = muid . from ( areaId )
26- return await history . getAreaChangeSets ( id )
29+ const { areaId, limit, offset } : GetAreaHistoryInputFilterType = filter ?? { }
30+ const id = areaId != null ? muid . from ( areaId ) : undefined
31+ const safeLimit = Math . min ( limit ?? DEFAULT_LIMIT , MAX_LIMIT )
32+ const safeOffset = offset ?? 0
33+ return await history . getAreaChangeSets ( id , safeLimit , safeOffset )
2734 } ,
2835
2936 getOrganizationHistory : async ( _ , { filter } , { dataSources } : GQLContext ) : Promise < any > => {
3037 const { history } = dataSources
31- const { orgId } : GetOrganizationHistoryInputFilterType = filter ?? { }
32- return await history . getOrganizationChangeSets ( orgId )
38+ const { orgId, limit, offset } : GetOrganizationHistoryInputFilterType = filter ?? { }
39+ const safeLimit = Math . min ( limit ?? DEFAULT_LIMIT , MAX_LIMIT )
40+ const safeOffset = offset ?? 0
41+ return await history . getOrganizationChangeSets ( orgId , safeLimit , safeOffset )
3342 }
3443}
3544
0 commit comments