Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
from http import HTTPStatus
from typing import Any
from urllib.parse import quote

import httpx

from ... import errors
from ...client import AuthenticatedClient, Client
from ...models.consolidation_worksheet_request import ConsolidationWorksheetRequest
from ...models.error_response import ErrorResponse
from ...models.operation_envelope_consolidation_worksheet_response import (
OperationEnvelopeConsolidationWorksheetResponse,
)
from ...types import UNSET, Response, Unset


def _get_kwargs(
graph_id: str,
*,
body: ConsolidationWorksheetRequest,
idempotency_key: None | str | Unset = UNSET,
) -> dict[str, Any]:
headers: dict[str, Any] = {}
if not isinstance(idempotency_key, Unset):
headers["Idempotency-Key"] = idempotency_key

_kwargs: dict[str, Any] = {
"method": "post",
"url": "/extensions/roboledger/{graph_id}/operations/consolidation-worksheet".format(
graph_id=quote(str(graph_id), safe=""),
),
}

_kwargs["json"] = body.to_dict()

headers["Content-Type"] = "application/json"

_kwargs["headers"] = headers
return _kwargs


def _parse_response(
*, client: AuthenticatedClient | Client, response: httpx.Response
) -> ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse | None:
if response.status_code == 200:
response_200 = OperationEnvelopeConsolidationWorksheetResponse.from_dict(
response.json()
)

return response_200

if response.status_code == 400:
response_400 = ErrorResponse.from_dict(response.json())

return response_400

if response.status_code == 401:
response_401 = ErrorResponse.from_dict(response.json())

return response_401

if response.status_code == 403:
response_403 = ErrorResponse.from_dict(response.json())

return response_403

if response.status_code == 404:
response_404 = ErrorResponse.from_dict(response.json())

return response_404

if response.status_code == 409:
response_409 = ErrorResponse.from_dict(response.json())

return response_409

if response.status_code == 422:
response_422 = ErrorResponse.from_dict(response.json())

return response_422

if response.status_code == 429:
response_429 = ErrorResponse.from_dict(response.json())

return response_429

if response.status_code == 500:
response_500 = ErrorResponse.from_dict(response.json())

return response_500

if client.raise_on_unexpected_status:
raise errors.UnexpectedStatus(response.status_code, response.content)
else:
return None


def _build_response(
*, client: AuthenticatedClient | Client, response: httpx.Response
) -> Response[ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse]:
return Response(
status_code=HTTPStatus(response.status_code),
content=response.content,
headers=response.headers,
parsed=_parse_response(client=client, response=response),
)


def sync_detailed(
graph_id: str,
*,
client: AuthenticatedClient,
body: ConsolidationWorksheetRequest,
idempotency_key: None | str | Unset = UNSET,
) -> Response[ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse]:
"""Consolidation Worksheet

The group's statement for one window with the entity as the column, read live from the tenant's OLTP
ledger: the parent and each member consolidated in full, their combined sum, the consolidation
entity's adjustments, the consolidated total, and each equity-method or cost member beside the sum,
never in it. Every column renders under the group parent's Reporting Style. Rejected on shared-
repository graphs.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours
return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

Args:
graph_id (str):
idempotency_key (None | str | Unset):
body (ConsolidationWorksheetRequest): Request for consolidation-worksheet (OLTP, entity
graphs only).

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
Response[ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse]
"""

kwargs = _get_kwargs(
graph_id=graph_id,
body=body,
idempotency_key=idempotency_key,
)

response = client.get_httpx_client().request(
**kwargs,
)

return _build_response(client=client, response=response)


def sync(
graph_id: str,
*,
client: AuthenticatedClient,
body: ConsolidationWorksheetRequest,
idempotency_key: None | str | Unset = UNSET,
) -> ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse | None:
"""Consolidation Worksheet

The group's statement for one window with the entity as the column, read live from the tenant's OLTP
ledger: the parent and each member consolidated in full, their combined sum, the consolidation
entity's adjustments, the consolidated total, and each equity-method or cost member beside the sum,
never in it. Every column renders under the group parent's Reporting Style. Rejected on shared-
repository graphs.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours
return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

Args:
graph_id (str):
idempotency_key (None | str | Unset):
body (ConsolidationWorksheetRequest): Request for consolidation-worksheet (OLTP, entity
graphs only).

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse
"""

return sync_detailed(
graph_id=graph_id,
client=client,
body=body,
idempotency_key=idempotency_key,
).parsed


async def asyncio_detailed(
graph_id: str,
*,
client: AuthenticatedClient,
body: ConsolidationWorksheetRequest,
idempotency_key: None | str | Unset = UNSET,
) -> Response[ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse]:
"""Consolidation Worksheet

The group's statement for one window with the entity as the column, read live from the tenant's OLTP
ledger: the parent and each member consolidated in full, their combined sum, the consolidation
entity's adjustments, the consolidated total, and each equity-method or cost member beside the sum,
never in it. Every column renders under the group parent's Reporting Style. Rejected on shared-
repository graphs.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours
return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

Args:
graph_id (str):
idempotency_key (None | str | Unset):
body (ConsolidationWorksheetRequest): Request for consolidation-worksheet (OLTP, entity
graphs only).

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
Response[ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse]
"""

kwargs = _get_kwargs(
graph_id=graph_id,
body=body,
idempotency_key=idempotency_key,
)

response = await client.get_async_httpx_client().request(**kwargs)

return _build_response(client=client, response=response)


async def asyncio(
graph_id: str,
*,
client: AuthenticatedClient,
body: ConsolidationWorksheetRequest,
idempotency_key: None | str | Unset = UNSET,
) -> ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse | None:
"""Consolidation Worksheet

The group's statement for one window with the entity as the column, read live from the tenant's OLTP
ledger: the parent and each member consolidated in full, their combined sum, the consolidation
entity's adjustments, the consolidated total, and each equity-method or cost member beside the sum,
never in it. Every column renders under the group parent's Reporting Style. Rejected on shared-
repository graphs.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours
return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

Args:
graph_id (str):
idempotency_key (None | str | Unset):
body (ConsolidationWorksheetRequest): Request for consolidation-worksheet (OLTP, entity
graphs only).

Raises:
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
httpx.TimeoutException: If the request takes longer than Client.timeout.

Returns:
ErrorResponse | OperationEnvelopeConsolidationWorksheetResponse
"""

return (
await asyncio_detailed(
graph_id=graph_id,
client=client,
body=body,
idempotency_key=idempotency_key,
)
).parsed
24 changes: 24 additions & 0 deletions robosystems_client/clients/ledger_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@
from ..api.robo_ledger_analytical_views.financial_statement_analysis import (
sync_detailed as op_financial_statement_analysis,
)
from ..api.robo_ledger_analytical_views.consolidation_worksheet import (
sync_detailed as op_consolidation_worksheet,
)
from ..api.robo_ledger_analytical_views.live_financial_statement import (
sync_detailed as op_live_financial_statement,
)
Expand Down Expand Up @@ -519,6 +522,8 @@
from ..models.financial_statement_analysis_request import (
FinancialStatementAnalysisRequest,
)
from ..models.consolidation_worksheet_request import ConsolidationWorksheetRequest
from ..models.consolidation_worksheet_response import ConsolidationWorksheetResponse
from ..models.live_financial_statement_request import LiveFinancialStatementRequest
from ..models.financial_statement_analysis_response import (
FinancialStatementAnalysisResponse,
Expand Down Expand Up @@ -2346,6 +2351,25 @@ def live_financial_statement(
"Live financial statement", envelope, LiveFinancialStatementResponse
)

def consolidation_worksheet(
self,
graph_id: str,
body: dict[str, Any],
) -> ConsolidationWorksheetResponse:
"""The group's statement for one window with the entity as the column:
each member consolidated in full, their combined sum, the consolidation
entity's adjustments, the consolidated total, and each equity-method or
cost member beside the sum. Read on the group parent.
"""
request = ConsolidationWorksheetRequest.from_dict(body)
response = op_consolidation_worksheet(
graph_id=graph_id, body=request, client=self._get_client()
)
envelope = self._call_op("Consolidation worksheet", response)
return self._typed_result(
"Consolidation worksheet", envelope, ConsolidationWorksheetResponse
)

def financial_statement_analysis(
self,
graph_id: str,
Expand Down
18 changes: 18 additions & 0 deletions robosystems_client/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@
from .connection_provider_info_provider import ConnectionProviderInfoProvider
from .connection_response import ConnectionResponse
from .connection_response_metadata import ConnectionResponseMetadata
from .consolidation_worksheet_request import ConsolidationWorksheetRequest
from .consolidation_worksheet_response import ConsolidationWorksheetResponse
from .content_limits import ContentLimits
from .copy_operation_limits import CopyOperationLimits
from .create_agent_request import CreateAgentRequest
Expand Down Expand Up @@ -533,6 +535,12 @@
from .operation_envelope_compute_metrics_response_status import (
OperationEnvelopeComputeMetricsResponseStatus,
)
from .operation_envelope_consolidation_worksheet_response import (
OperationEnvelopeConsolidationWorksheetResponse,
)
from .operation_envelope_consolidation_worksheet_response_status import (
OperationEnvelopeConsolidationWorksheetResponseStatus,
)
from .operation_envelope_delete_information_block_response import (
OperationEnvelopeDeleteInformationBlockResponse,
)
Expand Down Expand Up @@ -1169,6 +1177,9 @@
from .view_projections import ViewProjections
from .view_response import ViewResponse
from .view_response_summary_type_0 import ViewResponseSummaryType0
from .worksheet_column import WorksheetColumn
from .worksheet_column_kind import WorksheetColumnKind
from .worksheet_row import WorksheetRow

__all__ = (
"AcceptSuggestionLine",
Expand Down Expand Up @@ -1250,6 +1261,8 @@
"ConnectionProviderInfoProvider",
"ConnectionResponse",
"ConnectionResponseMetadata",
"ConsolidationWorksheetRequest",
"ConsolidationWorksheetResponse",
"ContentLimits",
"CopyOperationLimits",
"CreateAgentRequest",
Expand Down Expand Up @@ -1566,6 +1579,8 @@
"OperationEnvelopeComputeForecastResponseStatus",
"OperationEnvelopeComputeMetricsResponse",
"OperationEnvelopeComputeMetricsResponseStatus",
"OperationEnvelopeConsolidationWorksheetResponse",
"OperationEnvelopeConsolidationWorksheetResponseStatus",
"OperationEnvelopeDeleteInformationBlockResponse",
"OperationEnvelopeDeleteInformationBlockResponseStatus",
"OperationEnvelopeDeletePortfolioBlockResponse",
Expand Down Expand Up @@ -1956,4 +1971,7 @@
"ViewProjections",
"ViewResponse",
"ViewResponseSummaryType0",
"WorksheetColumn",
"WorksheetColumnKind",
"WorksheetRow",
)
Loading
Loading