Skip to content

Commit 2e988e5

Browse files
committed
Update SDK using contracts version 217e3ca644eb8ea2b0cd40ab6a2b923e065139e3
1 parent 332ef46 commit 2e988e5

10 files changed

Lines changed: 665 additions & 0 deletions

eolymp/commerce/product_pb2.py

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eolymp/commerce/product_pb2.pyi

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
from eolymp.ecm import content_pb2 as _content_pb2
2+
from google.protobuf.internal import containers as _containers
3+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
4+
from google.protobuf import descriptor as _descriptor
5+
from google.protobuf import message as _message
6+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
7+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
8+
9+
DESCRIPTOR: _descriptor.FileDescriptor
10+
11+
class Product(_message.Message):
12+
__slots__ = ("id", "name", "description", "images", "out_of_stock", "currency", "unit_price", "credit_equivalence", "attributes", "variants")
13+
class Extra(_message.Message):
14+
__slots__ = ()
15+
class Field(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
16+
__slots__ = ()
17+
UNKNOWN_FIELD: _ClassVar[Product.Extra.Field]
18+
DESCRIPTION_VALUE: _ClassVar[Product.Extra.Field]
19+
DESCRIPTION_RENDER: _ClassVar[Product.Extra.Field]
20+
UNKNOWN_FIELD: Product.Extra.Field
21+
DESCRIPTION_VALUE: Product.Extra.Field
22+
DESCRIPTION_RENDER: Product.Extra.Field
23+
def __init__(self) -> None: ...
24+
class Attribute(_message.Message):
25+
__slots__ = ("key", "label")
26+
KEY_FIELD_NUMBER: _ClassVar[int]
27+
LABEL_FIELD_NUMBER: _ClassVar[int]
28+
key: str
29+
label: str
30+
def __init__(self, key: _Optional[str] = ..., label: _Optional[str] = ...) -> None: ...
31+
class Variant(_message.Message):
32+
__slots__ = ("id", "values", "images", "out_of_stock")
33+
class ValuesEntry(_message.Message):
34+
__slots__ = ("key", "value")
35+
KEY_FIELD_NUMBER: _ClassVar[int]
36+
VALUE_FIELD_NUMBER: _ClassVar[int]
37+
key: str
38+
value: str
39+
def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
40+
ID_FIELD_NUMBER: _ClassVar[int]
41+
VALUES_FIELD_NUMBER: _ClassVar[int]
42+
IMAGES_FIELD_NUMBER: _ClassVar[int]
43+
OUT_OF_STOCK_FIELD_NUMBER: _ClassVar[int]
44+
id: str
45+
values: _containers.ScalarMap[str, str]
46+
images: _containers.RepeatedScalarFieldContainer[str]
47+
out_of_stock: bool
48+
def __init__(self, id: _Optional[str] = ..., values: _Optional[_Mapping[str, str]] = ..., images: _Optional[_Iterable[str]] = ..., out_of_stock: bool = ...) -> None: ...
49+
ID_FIELD_NUMBER: _ClassVar[int]
50+
NAME_FIELD_NUMBER: _ClassVar[int]
51+
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
52+
IMAGES_FIELD_NUMBER: _ClassVar[int]
53+
OUT_OF_STOCK_FIELD_NUMBER: _ClassVar[int]
54+
CURRENCY_FIELD_NUMBER: _ClassVar[int]
55+
UNIT_PRICE_FIELD_NUMBER: _ClassVar[int]
56+
CREDIT_EQUIVALENCE_FIELD_NUMBER: _ClassVar[int]
57+
ATTRIBUTES_FIELD_NUMBER: _ClassVar[int]
58+
VARIANTS_FIELD_NUMBER: _ClassVar[int]
59+
id: str
60+
name: str
61+
description: _content_pb2.Content
62+
images: _containers.RepeatedScalarFieldContainer[str]
63+
out_of_stock: bool
64+
currency: str
65+
unit_price: str
66+
credit_equivalence: str
67+
attributes: _containers.RepeatedCompositeFieldContainer[Product.Attribute]
68+
variants: _containers.RepeatedCompositeFieldContainer[Product.Variant]
69+
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[_Union[_content_pb2.Content, _Mapping]] = ..., images: _Optional[_Iterable[str]] = ..., out_of_stock: bool = ..., currency: _Optional[str] = ..., unit_price: _Optional[str] = ..., credit_equivalence: _Optional[str] = ..., attributes: _Optional[_Iterable[_Union[Product.Attribute, _Mapping]]] = ..., variants: _Optional[_Iterable[_Union[Product.Variant, _Mapping]]] = ...) -> None: ...
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# -*- coding: utf-8 -*-
2+
# Generated by the protocol buffer compiler. DO NOT EDIT!
3+
# See https://github.com/eolymp/contracts/tree/main/cmd/protoc-gen-python-esdk for more details.
4+
"""Generated protocol buffer code."""
5+
6+
import urllib.parse
7+
from google.protobuf import symbol_database as _symbol_database
8+
9+
_sym_db = _symbol_database.Default()
10+
11+
12+
class ProductServiceClient:
13+
def __init__(self, transport, url="https://api.eolymp.com"):
14+
self.transport = transport
15+
self.url = url
16+
17+
def DescribeProduct(self, request, **kwargs):
18+
path = "/products/"+urllib.parse.quote(request.product_id)
19+
20+
# Cleanup URL parameters to avoid any ambiguity
21+
request.product_id = ""
22+
23+
return self.transport.request(
24+
method="POST",
25+
url=self.url+path,
26+
request_data=request,
27+
response_symbol=_sym_db.GetSymbol("eolymp.commerce.DescribeProductOutput"),
28+
**kwargs,
29+
)
30+
31+
def ListProducts(self, request, **kwargs):
32+
path = "/products"
33+
34+
return self.transport.request(
35+
method="GET",
36+
url=self.url+path,
37+
request_data=request,
38+
response_symbol=_sym_db.GetSymbol("eolymp.commerce.ListProductsOutput"),
39+
**kwargs,
40+
)
41+

eolymp/commerce/product_service_pb2.py

Lines changed: 59 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
from eolymp.annotations import http_pb2 as _http_pb2
2+
from eolymp.annotations import ratelimit_pb2 as _ratelimit_pb2
3+
from eolymp.annotations import scope_pb2 as _scope_pb2
4+
from eolymp.commerce import product_pb2 as _product_pb2
5+
from eolymp.wellknown import direction_pb2 as _direction_pb2
6+
from eolymp.wellknown import expression_pb2 as _expression_pb2
7+
from google.protobuf.internal import containers as _containers
8+
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
9+
from google.protobuf import descriptor as _descriptor
10+
from google.protobuf import message as _message
11+
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
12+
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
13+
14+
DESCRIPTOR: _descriptor.FileDescriptor
15+
16+
class DescribeProductInput(_message.Message):
17+
__slots__ = ("product_id", "locale", "extra")
18+
PRODUCT_ID_FIELD_NUMBER: _ClassVar[int]
19+
LOCALE_FIELD_NUMBER: _ClassVar[int]
20+
EXTRA_FIELD_NUMBER: _ClassVar[int]
21+
product_id: str
22+
locale: str
23+
extra: _containers.RepeatedScalarFieldContainer[_product_pb2.Product.Extra.Field]
24+
def __init__(self, product_id: _Optional[str] = ..., locale: _Optional[str] = ..., extra: _Optional[_Iterable[_Union[_product_pb2.Product.Extra.Field, str]]] = ...) -> None: ...
25+
26+
class DescribeProductOutput(_message.Message):
27+
__slots__ = ("product",)
28+
PRODUCT_FIELD_NUMBER: _ClassVar[int]
29+
product: _product_pb2.Product
30+
def __init__(self, product: _Optional[_Union[_product_pb2.Product, _Mapping]] = ...) -> None: ...
31+
32+
class ListProductsInput(_message.Message):
33+
__slots__ = ("offset", "size", "search", "filters", "sort", "order", "locale", "extra")
34+
class Sortable(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
35+
__slots__ = ()
36+
DEFAULT: _ClassVar[ListProductsInput.Sortable]
37+
DEFAULT: ListProductsInput.Sortable
38+
class Filter(_message.Message):
39+
__slots__ = ("id", "name", "out_of_stock", "price")
40+
ID_FIELD_NUMBER: _ClassVar[int]
41+
NAME_FIELD_NUMBER: _ClassVar[int]
42+
OUT_OF_STOCK_FIELD_NUMBER: _ClassVar[int]
43+
PRICE_FIELD_NUMBER: _ClassVar[int]
44+
id: _containers.RepeatedCompositeFieldContainer[_expression_pb2.ExpressionID]
45+
name: _containers.RepeatedCompositeFieldContainer[_expression_pb2.ExpressionString]
46+
out_of_stock: _containers.RepeatedCompositeFieldContainer[_expression_pb2.ExpressionBool]
47+
price: _containers.RepeatedCompositeFieldContainer[_expression_pb2.ExpressionInt]
48+
def __init__(self, id: _Optional[_Iterable[_Union[_expression_pb2.ExpressionID, _Mapping]]] = ..., name: _Optional[_Iterable[_Union[_expression_pb2.ExpressionString, _Mapping]]] = ..., out_of_stock: _Optional[_Iterable[_Union[_expression_pb2.ExpressionBool, _Mapping]]] = ..., price: _Optional[_Iterable[_Union[_expression_pb2.ExpressionInt, _Mapping]]] = ...) -> None: ...
49+
OFFSET_FIELD_NUMBER: _ClassVar[int]
50+
SIZE_FIELD_NUMBER: _ClassVar[int]
51+
SEARCH_FIELD_NUMBER: _ClassVar[int]
52+
FILTERS_FIELD_NUMBER: _ClassVar[int]
53+
SORT_FIELD_NUMBER: _ClassVar[int]
54+
ORDER_FIELD_NUMBER: _ClassVar[int]
55+
LOCALE_FIELD_NUMBER: _ClassVar[int]
56+
EXTRA_FIELD_NUMBER: _ClassVar[int]
57+
offset: int
58+
size: int
59+
search: str
60+
filters: ListProductsInput.Filter
61+
sort: ListProductsInput.Sortable
62+
order: _direction_pb2.Direction
63+
locale: str
64+
extra: _containers.RepeatedCompositeFieldContainer[_product_pb2.Product.Extra]
65+
def __init__(self, offset: _Optional[int] = ..., size: _Optional[int] = ..., search: _Optional[str] = ..., filters: _Optional[_Union[ListProductsInput.Filter, _Mapping]] = ..., sort: _Optional[_Union[ListProductsInput.Sortable, str]] = ..., order: _Optional[_Union[_direction_pb2.Direction, str]] = ..., locale: _Optional[str] = ..., extra: _Optional[_Iterable[_Union[_product_pb2.Product.Extra, _Mapping]]] = ...) -> None: ...
66+
67+
class ListProductsOutput(_message.Message):
68+
__slots__ = ("total", "items")
69+
TOTAL_FIELD_NUMBER: _ClassVar[int]
70+
ITEMS_FIELD_NUMBER: _ClassVar[int]
71+
total: int
72+
items: _containers.RepeatedCompositeFieldContainer[_product_pb2.Product]
73+
def __init__(self, total: _Optional[int] = ..., items: _Optional[_Iterable[_Union[_product_pb2.Product, _Mapping]]] = ...) -> None: ...

0 commit comments

Comments
 (0)