Skip to content

Commit 39340b8

Browse files
committed
feat(events): update daily events portion to support new assignee filtering and pagination structure
1 parent 7dcbc3e commit 39340b8

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
lines changed

src/models/eventsFactory.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,11 @@ class EventsFactory extends Factory {
203203
*
204204
* @param {Number} limit - events count limitations
205205
* @param {DailyEventsCursor} paginationCursor - object that contains boundary values of the last event in the previous portion
206-
* @param {'BY_DATE' | 'BY_COUNT'} sort - events sort order
207-
* @param {EventsFilters} filters - marks by which events should be filtered
206+
* @param {'BY_DATE' | 'BY_COUNT' | 'BY_AFFECTED_USERS'} sort - events sort order
207+
* @param {EventsFilters} filters - marks by which events should be filtered (resolved, starred, ignored only; assignee is separate)
208208
* @param {String} search - Search query
209-
* @param {String} release - release name
209+
* @param {String|undefined} release - release name
210+
* @param {String|undefined} assignee - user id or __filter_unassigned__ / __filter_any_assignee__
210211
*
211212
* @return {DaylyEventsPortionSchema}
212213
*/

src/resolvers/project.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -571,17 +571,19 @@ module.exports = {
571571
},
572572

573573
/**
574-
* Returns recent Events grouped by day
574+
* Returns a paginated portion of daily-grouped events
575575
*
576-
* @param {ProjectDBScheme} project - result of parent resolver
577-
* @param {Number} limit - limit for events count
578-
* @param {DailyEventsCursor} cursor - object with boundary values of the first event in the next portion
579-
* @param {'BY_DATE' | 'BY_COUNT'} sort - events sort order
580-
* @param {EventsFilters} filters - marks by which events should be filtered
581-
* @param {String} release - release name
582-
* @param {String} search - search query
583-
*
584-
* @return {Promise<RecentEventSchema[]>}
576+
* @param {ProjectDBScheme} project - parent resolver result
577+
* @param {object} args - GraphQL arguments
578+
* @param {number} args.limit - max rows in portion
579+
* @param {object|null} args.nextCursor - pagination cursor
580+
* @param {string} args.sort - BY_DATE | BY_COUNT | BY_AFFECTED_USERS (mapped in factory)
581+
* @param {object} args.filters - mark filters only: resolved, starred, ignored (assignee uses args.assignee)
582+
* @param {string} args.search - search query
583+
* @param {string|undefined} args.release - optional release label filter
584+
* @param {string|undefined} args.assignee - user id or __filter_unassigned__ / __filter_any_assignee__
585+
* @param {object} context - GraphQL context
586+
* @returns {Promise<object>} dailyEventsPortion payload from factory
585587
*/
586588
async dailyEventsPortion(project, { limit, nextCursor, sort, filters, search, release, assignee }, context) {
587589
if (search) {

src/typeDefs/project.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,6 @@ input EventsFiltersInput {
123123
If True, includes events with ignored mark to the output
124124
"""
125125
ignored: Boolean
126-
"""
127-
Includes only events assigned to passed user id
128-
"""
129-
assignee: ID
130126
}
131127
132128
"""

test/resolvers/project-daily-events-portion.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ describe('Project resolver dailyEventsPortion', () => {
8787
);
8888
});
8989

90-
it('should keep old call shape when assignee is not provided', async () => {
90+
it('should call factory with undefined assignee when assignee argument is omitted', async () => {
9191
const findDailyEventsPortion = jest.fn().mockResolvedValue({
9292
nextCursor: null,
9393
dailyEvents: [],

0 commit comments

Comments
 (0)