Skip to content
Snippets Groups Projects
Commit e50757fc authored by Podosochnyy Maxim's avatar Podosochnyy Maxim
Browse files

В метод fetch_all класса PerxisDataProvider добавлены fields, изменена логика...

В метод fetch_all класса PerxisDataProvider добавлены fields, изменена логика работы с идентификаторами пространства и окружения в методах класса PerxisDataProvider
parent 782768f5
No related branches found
No related tags found
1 merge request!97В метод fetch_all класса PerxisDataProvider добавлены fields, изменена логика работы с идентификаторами пространства и окружения в методах класса PerxisDataProvider
......@@ -15,6 +15,9 @@
- `Provider` работает только с конкретным.
"""
import inspect
import warnings
from google.protobuf.struct_pb2 import Struct
from google.protobuf.empty_pb2 import Empty
from perxis.common import common_pb2
......@@ -925,6 +928,23 @@ class PerxisDataProvider:
items=items_pb2_grpc.ItemsStub(self.channel.channel),
)
@classmethod
def __warn_about_space_and_env_id(cls, method_name: str):
"""
Метод для отображения предупреждения о deprecated аргументах space_id и env_id
Arguments:
method_name (str): Название метода
"""
warnings.warn(
(
f"При вызове метода {method_name} "
f"класса {cls.__name__} были указаны параметры space_id или "
"env_id. Они являются устаревшими и в дальнейшем будут удалены"
),
DeprecationWarning
)
async def get(self, item_id: str, collection_id: str) -> items_pb2.GetResponse:
"""Получение записи по идентификатору.
......@@ -1155,6 +1175,7 @@ class PerxisDataProvider:
self,
collection_id: str,
filters: list[str] | str = None,
fields: list[str] | None = None,
sort_by: list[str] | str = None,
page_size: int | None = DEFAULT_PAGE_SIZE,
) -> items_pb2.FindResponse:
......@@ -1163,6 +1184,7 @@ class PerxisDataProvider:
Arguments:
collection_id (str): Идентификатор коллекции для поиска.
filters (list[str] | None): Фильтры для поиска записей.
fields (list[str] | None): Поля, которые необходимо вернуть.
sort_by (list[str] | None): Поля для сортировки результатов.
page_size (int | None): Размер страницы.
Returns:
......@@ -1173,6 +1195,7 @@ class PerxisDataProvider:
space_id=self.space_id,
env_id=self.env_id,
filters=filters,
fields=fields,
sort_by=sort_by,
page_size=page_size,
)
......@@ -1197,8 +1220,8 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
update_attrs: bool = False,
erase: bool = True,
**kwargs,
......@@ -1208,19 +1231,24 @@ class PerxisDataProvider:
Arguments:
item_id (str): Идентификатор записи для удаления.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
update_attrs (bool): Обновить системные поля `created_by`, `created_at`,
`created_rev_at`, `updated_by`, `updated_at`.
erase (bool): Полностью удалить запись.
Returns:
Empty: Пустой ответ при успешном удалении.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.delete(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
update_attrs=update_attrs,
erase=erase,
**kwargs,
......@@ -1231,8 +1259,8 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
update_attrs: bool = False,
**kwargs,
) -> Empty:
......@@ -1241,18 +1269,23 @@ class PerxisDataProvider:
Arguments:
item_id (str): Идентификатор записи для восстановления.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
update_attrs (bool): Обновить системные поля `created_by`, `created_at`,
`created_rev_at`, `updated_by`, `updated_at`.
Returns:
Empty: Пустой ответ при успешном восстановлении.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.undelete(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
update_attrs=update_attrs,
**kwargs,
)
......@@ -1262,8 +1295,8 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
locale_id: str | None = None,
) -> items_pb2.GetPublishedResponse:
"""Получает опубликованные записи.
......@@ -1271,18 +1304,23 @@ class PerxisDataProvider:
Arguments:
item_id (str): Идентификатор записи.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
locale_id (str | None): Идентификатор языка перевода который будет использоваться.
Если не указан, то возвращаются данные для языка по умолчанию.
Returns:
items_pb2.GetPublishedResponse: Ответ с опубликованными данными.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.get_published(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
locale_id=locale_id,
)
return message
......@@ -1290,8 +1328,8 @@ class PerxisDataProvider:
async def aggregate(
self,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
aggregate_options: dict[str, str] | None = None,
filters: list[str] | None = None,
) -> items_pb2.AggregateResponse:
......@@ -1299,17 +1337,22 @@ class PerxisDataProvider:
Arguments:
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
aggregate_options (dict[str, str] | None): Опции агрегации.
filters (list[str] | None): Фильтры для агрегации.
Returns:
items_pb2.AggregateResponse: Ответ с результатами агрегации.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.aggregate(
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
aggregate_options=aggregate_options,
filters=filters,
)
......@@ -1318,8 +1361,8 @@ class PerxisDataProvider:
async def aggregate_published(
self,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
aggregate_options: dict[str, str] | None = None,
filters: list[str] | None = None,
) -> items_pb2.AggregatePublishedResponse:
......@@ -1327,17 +1370,22 @@ class PerxisDataProvider:
Arguments:
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
aggregate_options (dict[str, str] | None): Опции агрегации.
filters (list[str] | None): Фильтры для агрегации.
Returns:
items_pb2.AggregatePublishedResponse: Ответ с результатами агрегации опубликованных данных.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.aggregate_published(
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
aggregate_options=aggregate_options,
filters=filters,
)
......@@ -1348,8 +1396,8 @@ class PerxisDataProvider:
item_id: str,
revision_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
) -> items_pb2.GetRevisionResponse:
"""Получает ревизию записи.
......@@ -1357,17 +1405,22 @@ class PerxisDataProvider:
item_id (str): Идентификатор записи.
revision_id (str): Идентификатор ревизии.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
Returns:
items_pb2.GetRevisionResponse: Ответ с данными ревизии.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.get_revision(
item_id=item_id,
revision_id=revision_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
)
return message
......@@ -1375,8 +1428,8 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
sort_by: list[str] | None = None,
fields: list[str] | None = None,
exclude_fields: bool = False,
......@@ -1388,8 +1441,8 @@ class PerxisDataProvider:
Arguments:
item_id (str): Идентификатор записи.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
sort_by (list[str] | None): Поля для сортировки.
fields (list[str] | None): Поля, которые необходимо вернуть.
exclude_fields (bool): Исключить указанные поля из результата.
......@@ -1398,11 +1451,16 @@ class PerxisDataProvider:
Returns:
items_pb2.ListRevisionsResponse: Ответ с данными ревизий.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.list_revisions(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
sort_by=sort_by,
fields=fields,
exclude_fields=exclude_fields,
......@@ -1415,24 +1473,29 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
) -> Empty:
"""Архивирует запись.
Arguments:
item_id (str): Идентификатор записи.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
Returns:
Empty: Пустой ответ при успешной архивации.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.archive(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
)
return message
......@@ -1440,32 +1503,37 @@ class PerxisDataProvider:
self,
item_id: str,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
) -> Empty:
"""Восстанавливает запись из архива.
Arguments:
item_id (str): Идентификатор записи.
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
Returns:
Empty: Пустой ответ при успешном восстановлении.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.archive(
item_id=item_id,
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
)
return message
async def find_archived(
self,
collection_id: str,
space_id: str,
env_id: str,
space_id: str | None = None,
env_id: str | None = None,
filters: list[str] | None = None,
sort_by: list[str] | None = None,
fields: list[str] | None = None,
......@@ -1477,8 +1545,8 @@ class PerxisDataProvider:
Arguments:
collection_id (str): Идентификатор коллекции.
space_id (str): Идентификатор пространства.
env_id (str): Идентификатор окружения.
space_id (str | None): Идентификатор пространства. DEPRECATED
env_id (str | None): Идентификатор окружения. DEPRECATED
filters (list[str] | None): Фильтры для поиска архивированных записей.
sort_by (list[str] | None): Поля для сортировки результатов.
fields (list[str] | None): Поля, которые необходимо вернуть.
......@@ -1489,10 +1557,15 @@ class PerxisDataProvider:
Returns:
items_pb2.FindArchivedResponse: Ответ с найденными архивированными записями.
"""
if any((space_id, env_id)):
self.__warn_about_space_and_env_id(
method_name=inspect.currentframe().f_code.co_name,
)
message = await self.items_wrapper.find_archived(
collection_id=collection_id,
space_id=space_id,
env_id=env_id,
space_id=space_id or self.space_id,
env_id=env_id or self.env_id,
filters=filters,
sort_by=sort_by,
fields=fields,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment