feat(server): nested book components
feat(server): nested book components
Removes default sort order from "searchedBookComponents".
Adds loader for loading all BookComponents in a Division:
- ctx.loaders.BookComponent.inDivisions (not used so maybe delete)
Adds helper function "loadObjectAndCousins" which encapsulates the logic of:
- Preloading all children of a BookComponents siblings (because they will definitely be visited in the currenc request).
- Fetching the children for the current BookComponent.
Encapsulates the common logic for fetching multiple children for multiple BookComponents in "server.models.util.mapResultsToInputIds". Adds dataloaders which call "mapResultsToInputIds":
- "ctx.loaders.Issue.forBookComponents"
- "ctx.loaders.Team.forBookComponents"
- "ctx.loaders.file.sourceForBookComponents"
- "ctx.loaders.file.convertedForBookComponents"
Refactors "book.graphql":
- Removes misplaced arguments from "getBook" and moves them to where they belong.
- Adds "divisionLabels" argument to "Book.bookComponents" and "Book.divisions".
Refactors "book.resolvers.js":
- Removes "divisions" database query from "getBook".
- Adds "Book.divisions" resolver which handles "divisionLabels" argument.
- Adds "divisionLabels" argument and handling to "Book.bookComponents" resolver.
Refactors "division.graphql":
- Adds "input: SearchModelInput" argument to "Division.bookComponents".
- Changes "Division.bookComponents" return type to "BookComponentOutput!".
- Support for these changes has not been implemented yet. When it is, Division.bookComponents should share the logic used by "searchedBookComponents".
Implements paginated resolvers for:
- Division.bookComponents
- BookComponent.bookComponents
Implements common logic for the above resolvers:
- paginatedBookComponents
Adds "results[].activeSiblingIds" to "paginatedBookComponents.results". This is used to preload all issues relating to a BookComponent's immediate children (allows a child to preload its cousins). "results[].activeSiblingIds" will only contain BookComponent ids for BookComponents included in the current page.
Related to #1559 (closed)