Implementation:
- Added iter_all() method to all sync endpoints
- PagesEndpoint.iter_all() - automatic pagination for pages
- UsersEndpoint.iter_all() - automatic pagination for users
- GroupsEndpoint.iter_all() - iterate over all groups
- AssetsEndpoint.iter_all() - iterate over all assets
- Added async iter_all() to all async endpoints
- AsyncPagesEndpoint - async generator with pagination
- AsyncUsersEndpoint - async generator with pagination
- AsyncGroupsEndpoint - async iterator
- AsyncAssetsEndpoint - async iterator
Features:
- Automatic batch fetching (configurable batch size, default: 50)
- Transparent pagination - users don't manage offsets
- Memory efficient - fetches data in chunks
- Filtering support - pass through all filter parameters
- Consistent interface across all endpoints
Usage:
# Sync iteration
for page in client.pages.iter_all(batch_size=100):
print(page.title)
# Async iteration
async for user in client.users.iter_all():
print(user.name)
Tests:
- 7 comprehensive pagination tests
- Single batch, multiple batch, and empty result scenarios
- Both sync and async iterator testing
- All tests passing (100%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implementation:
- Group data models (wikijs/models/group.py)
- Group, GroupCreate, GroupUpdate models
- GroupPermission, GroupPageRule, GroupUser models
- GroupAssignUser, GroupUnassignUser models
- Field validation and normalization
- Sync GroupsEndpoint (wikijs/endpoints/groups.py)
- list() - List all groups with users
- get(group_id) - Get single group
- create(group_data) - Create new group
- update(group_id, group_data) - Update existing group
- delete(group_id) - Delete group
- assign_user(group_id, user_id) - Add user to group
- unassign_user(group_id, user_id) - Remove user from group
- Async AsyncGroupsEndpoint (wikijs/aio/endpoints/groups.py)
- Complete async implementation
- Identical interface to sync version
- All CRUD operations + user management
- Integration with clients
- WikiJSClient.groups
- AsyncWikiJSClient.groups
GraphQL operations for all group management features.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>