Skip to content
This repository was archived by the owner on Feb 11, 2026. It is now read-only.

Commit 3e33019

Browse files
committed
Добавлен метод для добавления контакта по номеру телефона и соответствующий класс для полезной нагрузки
1 parent 586018f commit 3e33019

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

src/pymax/mixins/user.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from pymax.exceptions import Error, ResponseError, ResponseStructureError
44
from pymax.payloads import (
5+
AddContactByPhonePayload,
56
ContactActionPayload,
67
FetchContactsPayload,
78
SearchByPhonePayload,
@@ -190,6 +191,34 @@ async def add_contact(self, contact_id: int) -> Contact:
190191
return Contact.from_dict(contact_dict)
191192
raise ResponseStructureError("Wrong contact structure in response")
192193

194+
async def add_contact_by_phone(self, phone: str, first_name: str) -> Contact:
195+
"""
196+
Добавляет контакт в список контактов по номеру телефона
197+
198+
:param phone: Номер телефона контакта
199+
:type phone: str
200+
:param first_name: Имя контакта
201+
:type first_name: str
202+
:return: Объект контакта
203+
:rtype: Contact
204+
:raises ResponseStructureError: Если структура ответа неверна
205+
206+
"""
207+
208+
payload = AddContactByPhonePayload(phone=phone, first_name=first_name).model_dump(
209+
by_alias=True
210+
)
211+
212+
data = await self._send_and_wait(
213+
opcode=Opcode.CONTACT_ADD_BY_PHONE,
214+
payload=payload,
215+
)
216+
217+
if data.get("payload", {}).get("error"):
218+
MixinsUtils.handle_error(data)
219+
220+
return Contact.from_dict(data["payload"]["contact"])
221+
193222
async def remove_contact(self, contact_id: int) -> Literal[True]:
194223
"""
195224
Удаляет контакт из списка контактов

src/pymax/payloads.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,3 +400,8 @@ class RequestEmailCodePayload(CamelModel):
400400
class SendEmailCodePayload(CamelModel):
401401
track_id: str
402402
verify_code: str
403+
404+
405+
class AddContactByPhonePayload(CamelModel):
406+
phone: str
407+
first_name: str

0 commit comments

Comments
 (0)