From 0690c12b4743a3437fa8b3292688a615f4aee723 Mon Sep 17 00:00:00 2001 From: Leonid Gorbunov Date: Mon, 17 Jun 2024 10:37:15 +0300 Subject: [PATCH] feat: Added 10 fields into UserFromCSV --- pybotx/client/users_api/user_from_csv.py | 39 ++++++++++++++++++++- pybotx/models/users.py | 20 +++++++++++ pyproject.toml | 2 +- tests/client/users_api/test_users_as_csv.py | 26 ++++++++++++-- 4 files changed, 82 insertions(+), 5 deletions(-) diff --git a/pybotx/client/users_api/user_from_csv.py b/pybotx/client/users_api/user_from_csv.py index 3e058dcd..712fb0c1 100644 --- a/pybotx/client/users_api/user_from_csv.py +++ b/pybotx/client/users_api/user_from_csv.py @@ -25,9 +25,36 @@ class BotXAPIUserFromCSVResult(VerifiedPayloadBaseModel): company: Optional[str] = Field(alias="Company") department: Optional[str] = Field(alias="Department") position: Optional[str] = Field(alias="Position") + manager: Optional[str] = Field(alias="Manager") manager_huid: Optional[UUID] = Field(alias="Manager HUID") + personnel_number: Optional[str] = Field(alias="Personnel number") + description: Optional[str] = Field(alias="Description") + ip_phone: Optional[str] = Field(alias="IP phone") + other_ip_phone: Optional[str] = Field(alias="Other IP phone") + phone: Optional[str] = Field(alias="Phone") + other_phone: Optional[str] = Field(alias="Other phone") + avatar: Optional[str] = Field(alias="Avatar") + office: Optional[str] = Field(alias="Office") + avatar_preview: Optional[str] = Field(alias="Avatar preview") - @validator("email", "company", "department", "position", "manager_huid", pre=True) + @validator( + "email", + "company", + "department", + "position", + "manager", + "manager_huid", + "personnel_number", + "description", + "ip_phone", + "other_ip_phone", + "phone", + "other_phone", + "avatar", + "office", + "avatar_preview", + pre=True, + ) @classmethod def replace_empty_string_with_none(cls, field_value: str) -> Optional[str]: if field_value == "": @@ -48,5 +75,15 @@ def to_domain(self) -> UserFromCSV: company=self.company, department=self.department, position=self.position, + manager=self.manager, manager_huid=self.manager_huid, + personnel_number=self.personnel_number, + description=self.description, + ip_phone=self.ip_phone, + other_ip_phone=self.other_ip_phone, + phone=self.phone, + other_phone=self.other_phone, + avatar=self.avatar, + office=self.office, + avatar_preview=self.avatar_preview, ) diff --git a/pybotx/models/users.py b/pybotx/models/users.py index 6301ba85..47a27242 100644 --- a/pybotx/models/users.py +++ b/pybotx/models/users.py @@ -49,7 +49,17 @@ class UserFromCSV: company: User company. department: User department. position: User position. + manager: User's manager full name. manager_huid: User's manager huid. + personnel_number: User's tabel number. + description: Description. + ip_phone: Ip phone info. + other_ip_phone: Extra ip phone. + phone: Phone number. + other_phone: Extra phone number. + avatar: Src to full avatar. + office: Office info. + avatar_preview: Src to avatar. """ huid: UUID @@ -63,4 +73,14 @@ class UserFromCSV: company: Optional[str] = None department: Optional[str] = None position: Optional[str] = None + manager: Optional[str] = None manager_huid: Optional[UUID] = None + personnel_number: Optional[str] = None + description: Optional[str] = None + ip_phone: Optional[str] = None + other_ip_phone: Optional[str] = None + phone: Optional[str] = None + other_phone: Optional[str] = None + avatar: Optional[str] = None + office: Optional[str] = None + avatar_preview: Optional[str] = None diff --git a/pyproject.toml b/pyproject.toml index 015eb704..731023e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pybotx" -version = "0.68.0" +version = "0.68.1" description = "A python library for interacting with eXpress BotX API" authors = [ "Sidnev Nikolay ", diff --git a/tests/client/users_api/test_users_as_csv.py b/tests/client/users_api/test_users_as_csv.py index 9c49ff50..09768ef9 100644 --- a/tests/client/users_api/test_users_as_csv.py +++ b/tests/client/users_api/test_users_as_csv.py @@ -72,9 +72,9 @@ async def test__users_as_csv__succeed( return_value=httpx.Response( status_code=HTTPStatus.OK, content=( - b"HUID,AD Login,Domain,AD E-mail,Name,Sync source,Active,Kind,Company,Department,Position,Manager HUID\n" - b"dbc8934f-d0d7-4a9e-89df-d45c137a851c,test_user_17,cts.example.com,,test_user_17,ad,false,cts_user,Company,Department,Position,13a6909c-bce1-4dbf-8359-efb7ef8e5b34\n" - b"13a6909c-bce1-4dbf-8359-efb7ef8e5b34,test_user_18,cts.example.com,,test_user_18,unsupported,true,cts_user,,,," + b"HUID,AD Login,Domain,AD E-mail,Name,Sync source,Active,Kind,Company,Department,Position,Manager,Manager HUID,Personnel number,Description,IP phone,Other IP phone,Phone,Other phone,Avatar,Office,Avatar preview\n" + b"dbc8934f-d0d7-4a9e-89df-d45c137a851c,test_user_17,cts.example.com,,test_user_17,ad,false,cts_user,Company,Department,Position,Manager John,13a6909c-bce1-4dbf-8359-efb7ef8e5b34,Some number,Description,Ip_phone,Other_ip_phone,Phone,Other_phone,Avatar,Office,Avatar_preview\n" + b"13a6909c-bce1-4dbf-8359-efb7ef8e5b34,test_user_18,cts.example.com,,test_user_18,unsupported,true,cts_user,,,,,,,,,,,,,," ), ), ) @@ -103,7 +103,17 @@ async def test__users_as_csv__succeed( company="Company", department="Department", position="Position", + personnel_number="Some number", + manager="Manager John", manager_huid=UUID("13a6909c-bce1-4dbf-8359-efb7ef8e5b34"), + description="Description", + ip_phone="Ip_phone", + other_ip_phone="Other_ip_phone", + phone="Phone", + other_phone="Other_phone", + avatar="Avatar", + office="Office", + avatar_preview="Avatar_preview", ), UserFromCSV( huid=UUID("13a6909c-bce1-4dbf-8359-efb7ef8e5b34"), @@ -117,6 +127,16 @@ async def test__users_as_csv__succeed( company=None, department=None, position=None, + manager=None, manager_huid=None, + personnel_number=None, + description=None, + ip_phone=None, + other_ip_phone=None, + phone=None, + other_phone=None, + avatar=None, + office=None, + avatar_preview=None, ), ]