Issue Operations¶
Operations for managing issues and issue-related data.
API Reference¶
IssueOperations
¶
Bases: BaseOperations
Class to handle all operations related to issues.
Provides functionality to create, retrieve, list, and solve issues associated with meetings and users.
Methods:
-
details
–Retrieve detailed information about a specific issue.
-
list
–List issues filtered by user or meeting.
-
solve
–Mark an issue as completed/solved.
-
create
–Create a new issue in the system.
-
create_many
–Create multiple issues in a best-effort manner.
Functions¶
details
¶
Retrieve detailed information about a specific issue.
Parameters:
-
issue_id
(int
) –Unique identifier of the issue
Returns:
-
IssueDetails
–An IssueDetails model instance containing detailed information
-
IssueDetails
–about the issue
list
¶
List issues filtered by user or meeting.
Parameters:
-
user_id
(int | None
, default:None
) –Unique identifier of the user (optional)
-
meeting_id
(int | None
, default:None
) –Unique identifier of the meeting (optional)
Returns:
-
list[IssueListItem]
–A list of IssueListItem model instances matching the filter criteria
Raises:
-
ValueError
–When both user_id and meeting_id are provided
solve
¶
create
¶
create(meeting_id: int, title: str, user_id: int | None = None, notes: str | None = None) -> CreatedIssue
Create a new issue in the system.
Parameters:
-
meeting_id
(int
) –Unique identifier of the associated meeting
-
title
(str
) –Title/name of the issue
-
user_id
(int | None
, default:None
) –Unique identifier of the issue owner (defaults to current user)
-
notes
(str | None
, default:None
) –Additional notes or description for the issue (optional)
Returns:
-
CreatedIssue
–A CreatedIssue model instance containing the newly created issue details
create_many
¶
Create multiple issues in a best-effort manner.
Processes each issue sequentially to avoid rate limiting. Failed operations are captured and returned alongside successful ones.
Parameters:
-
issues
(list[dict[str, Any]]
) –List of dictionaries containing issue data. Each dict should have: - meeting_id (required): ID of the associated meeting - title (required): Title of the issue - user_id (optional): ID of the issue owner (defaults to current user) - notes (optional): Additional notes for the issue
Returns:
-
BulkCreateResult[CreatedIssue]
–BulkCreateResult containing: - successful: List of CreatedIssue instances for successful creations - failed: List of BulkCreateError instances for failed creations
Raises:
-
ValueError
–When required parameters are missing in issue data
Async Version¶
The async version AsyncIssueOperations
provides the same methods as above, but with async/await support:
AsyncIssueOperations
¶
Async class to handle all operations related to issues.
Initialize the async issue operations.
Parameters:
-
client
(AsyncClient
) –The async HTTP client to use for API requests.
Async Usage
All methods have the same parameters and return types as their sync counterparts. Simply add await
before each method call.
Usage Examples¶
from bloomy import Client
with Client(api_key="your-api-key") as client:
# Create a new issue
issue = client.issue.create(
meeting_id=123,
title="Server performance degradation",
notes="Response times increased by 50% during peak hours"
)
# Get issue details
details = client.issue.details(issue_id=issue.id)
print(f"Created: {details.created_at}")
print(f"Meeting: {details.meeting_title}")
print(f"Assigned to: {details.user_name}")
# List issues for current user
my_issues = client.issue.list()
# List issues for a specific meeting
meeting_issues = client.issue.list(meeting_id=123)
# Solve an issue (mark as completed)
client.issue.solve(issue_id=issue.id)
import asyncio
from bloomy import AsyncClient
async def main():
async with AsyncClient(api_key="your-api-key") as client:
# Create a new issue
issue = await client.issue.create(
meeting_id=123,
title="Server performance degradation",
notes="Response times increased by 50% during peak hours"
)
# Get issue details
details = await client.issue.details(issue_id=issue.id)
print(f"Created: {details.created_at}")
print(f"Meeting: {details.meeting_title}")
print(f"Assigned to: {details.user_name}")
# List issues for current user
my_issues = await client.issue.list()
# List issues for a specific meeting
meeting_issues = await client.issue.list(meeting_id=123)
# Solve an issue (mark as completed)
await client.issue.solve(issue_id=issue.id)
asyncio.run(main())
Available Methods¶
Method | Description | Parameters |
---|---|---|
details() |
Get detailed issue information | issue_id |
list() |
Get issues | user_id , meeting_id |
create() |
Create a new issue | meeting_id , title , user_id , notes |
solve() |
Mark an issue as solved | issue_id |
Issue Resolution
Issues can only be marked as solved, not deleted. Use the solve()
method to close an issue.