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
426 changes: 0 additions & 426 deletions mpt_api_client/resources/billing/mixins.py

This file was deleted.

33 changes: 33 additions & 0 deletions mpt_api_client/resources/billing/mixins/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from mpt_api_client.resources.billing.mixins.acceptable_mixin import (
AcceptableMixin,
AsyncAcceptableMixin,
)
from mpt_api_client.resources.billing.mixins.attachment_mixin import (
AsyncAttachmentMixin,
AttachmentMixin,
)
from mpt_api_client.resources.billing.mixins.issuable_mixin import (
AsyncIssuableMixin,
IssuableMixin,
)
from mpt_api_client.resources.billing.mixins.recalculatable_mixin import (
AsyncRecalculatableMixin,
RecalculatableMixin,
)
from mpt_api_client.resources.billing.mixins.regeneratable_mixin import (
AsyncRegeneratableMixin,
RegeneratableMixin,
)

__all__ = [ # noqa: WPS410
"AcceptableMixin",
"AsyncAcceptableMixin",
"AsyncAttachmentMixin",
"AsyncIssuableMixin",
"AsyncRecalculatableMixin",
"AsyncRegeneratableMixin",
"AttachmentMixin",
"IssuableMixin",
"RecalculatableMixin",
"RegeneratableMixin",
]
53 changes: 53 additions & 0 deletions mpt_api_client/resources/billing/mixins/acceptable_mixin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
from mpt_api_client.models import ResourceData


class AcceptableMixin[Model]:
"""Acceptable mixin adds the ability to accept resources."""

def accept(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Accept resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "accept", json=resource_data
)

def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)


class AsyncAcceptableMixin[Model]:
"""Acceptable mixin adds the ability to accept resources."""

async def accept(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Accept resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "accept", json=resource_data
)

async def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)
32 changes: 32 additions & 0 deletions mpt_api_client/resources/billing/mixins/attachment_mixin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
from mpt_api_client.http.mixins import (
AsyncCreateFileMixin,
AsyncDeleteMixin,
AsyncDownloadFileMixin,
AsyncGetMixin,
AsyncUpdateMixin,
CreateFileMixin,
DeleteMixin,
DownloadFileMixin,
GetMixin,
UpdateMixin,
)


class AttachmentMixin[Model](
CreateFileMixin[Model],
UpdateMixin[Model],
DeleteMixin,
DownloadFileMixin[Model],
GetMixin[Model],
):
"""Attachment mixin."""


class AsyncAttachmentMixin[Model](
AsyncCreateFileMixin[Model],
AsyncUpdateMixin[Model],
AsyncDeleteMixin,
AsyncDownloadFileMixin[Model],
AsyncGetMixin[Model],
):
"""Async Attachment mixin."""
165 changes: 165 additions & 0 deletions mpt_api_client/resources/billing/mixins/issuable_mixin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
from mpt_api_client.models import ResourceData


class IssuableMixin[Model]:
"""Issuable mixin adds the ability to issue resources."""

def issue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Issue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "issue", json=resource_data
)

def cancel(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Cancel resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "cancel", json=resource_data
)

def error(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Error resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "error", json=resource_data
)

def pending(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Pending resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "pending", json=resource_data
)

def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)

def retry(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Retry resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "retry", json=resource_data
)

def recalculate(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Recalculate resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "recalculate", json=resource_data
)


class AsyncIssuableMixin[Model]:
"""Issuable mixin adds the ability to issue resources."""

async def issue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Issue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "issue", json=resource_data
)

async def cancel(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Cancel resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "cancel", json=resource_data
)

async def error(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Error resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "error", json=resource_data
)

async def pending(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Pending resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "pending", json=resource_data
)

async def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)

async def retry(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Retry resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "retry", json=resource_data
)

async def recalculate(
self, resource_id: str, resource_data: ResourceData | None = None
) -> Model:
"""Recalculate resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "recalculate", json=resource_data
)
77 changes: 77 additions & 0 deletions mpt_api_client/resources/billing/mixins/recalculatable_mixin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
from mpt_api_client.models import ResourceData


class RecalculatableMixin[Model]:
"""Recalculatable mixin adds the ability to recalculate resources."""

def recalculate(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Recalculate resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "recalculate", json=resource_data
)

def accept(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Accept resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "accept", json=resource_data
)

def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)


class AsyncRecalculatableMixin[Model]:
"""Recalculatable mixin adds the ability to recalculate resources."""

async def recalculate(
self, resource_id: str, resource_data: ResourceData | None = None
) -> Model:
"""Recalculate resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "recalculate", json=resource_data
)

async def accept(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Accept resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "accept", json=resource_data
)

async def queue(self, resource_id: str, resource_data: ResourceData | None = None) -> Model:
"""Queue resource.

Args:
resource_id: Resource ID
resource_data: Resource data will be updated
"""
return await self._resource_action( # type: ignore[attr-defined, no-any-return]
resource_id, "POST", "queue", json=resource_data
)
Loading