Skip to content

Commit c67520e

Browse files
Update models
1 parent 33d6a05 commit c67520e

File tree

4 files changed

+40
-51
lines changed

4 files changed

+40
-51
lines changed

solapi/message_service.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,12 @@ def send(
6565
},
6666
data=request.model_dump(exclude_none=True, by_alias=True),
6767
)
68+
print(response)
6869
deserialized_response: SendMessageResponse = SendMessageResponse.model_validate(
6970
response
7071
)
7172

72-
count = deserialized_response.count
73+
count = deserialized_response.group_info.count
7374
failed_messages = deserialized_response.failed_message_list
7475
registered_failed_count = count.registered_failed
7576
if len(failed_messages) > 0 and count.total == registered_failed_count:

solapi/model/message.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Any, Optional
44

55
from pydantic import BaseModel, ConfigDict, Field
6+
from pydantic.alias_generators import to_camel
67

78

89
class MessageType(Enum):
@@ -98,4 +99,6 @@ class Message(BaseModel):
9899
default=None, serialization_alias="faxOptions", validation_alias="faxOptions"
99100
)
100101

101-
model_config = ConfigDict(extra="ignore")
102+
model_config = ConfigDict(
103+
extra="ignore", populate_by_name=True, alias_generator=to_camel
104+
)
Lines changed: 23 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from datetime import datetime
2-
from typing import Any
2+
from typing import Any, Optional
33

44
from pydantic import BaseModel, ConfigDict, Field
5+
from pydantic.alias_generators import to_camel
56

67

78
class CountResponse(BaseModel):
@@ -18,10 +19,10 @@ class CountResponse(BaseModel):
1819

1920

2021
class CommonCashResponse(BaseModel):
21-
requested: int
22-
replacement: int
23-
refund: int
24-
sum: int
22+
requested: float
23+
replacement: float
24+
refund: float
25+
sum: float
2526

2627
model_config = ConfigDict(extra="ignore")
2728

@@ -43,45 +44,28 @@ class CountForChargeResponse(BaseModel):
4344

4445

4546
class GroupMessageResponse(BaseModel):
46-
# export type GroupMessageResponse = {
47-
# count: Count;
48-
# countForCharge: CountForCharge;
49-
# balance: CommonCashResponse;
50-
# point: CommonCashResponse;
51-
# app: App;
52-
# log: Log;
53-
# status: string;
54-
# allowDuplicates: boolean;
55-
# isRefunded: boolean;
56-
# accountId: string;
57-
# masterAccountId: string | null;
58-
# apiVersion: string;
59-
# groupId: string;
60-
# price: object;
61-
# dateCreated: string;
62-
# dateUpdated: string;
63-
# scheduledDate?: string;
64-
# dateSent?: string;
65-
# dateCompleted?: string;
66-
# };
6747
count: CountResponse
68-
count_for_charge: Any = Field(..., validation_alias="countForCharge")
48+
count_for_charge: Any
6949
balance: CommonCashResponse
7050
point: CommonCashResponse
7151
app: Any
7252
log: Any
7353
status: str
74-
allow_duplicates: bool = Field(..., validation_alias="allowDuplicates")
75-
is_refunded: bool = Field(..., validation_alias="isRefunded")
76-
account_id: str = Field(..., validation_alias="accountId")
77-
master_account_id: str = Field(..., validation_alias="masterAccountId")
78-
api_version: str = Field(..., validation_alias="apiVersion")
79-
group_id: str = Field(..., validation_alias="groupId")
54+
allow_duplicates: bool
55+
is_refunded: bool
56+
account_id: str
57+
master_account_id: Optional[str]
58+
api_version: str
59+
group_id: str
8060
price: Any
81-
date_created: datetime = Field(..., validation_alias="dateCreated")
82-
date_updated: datetime = Field(..., validation_alias="dateUpdated")
83-
scheduled_date: datetime = Field(..., validation_alias="scheduledDate")
84-
date_sent: datetime = Field(..., validation_alias="dateSent")
85-
date_completed: datetime = Field(..., validation_alias="dateCompleted")
61+
date_created: Optional[datetime]
62+
date_updated: Optional[datetime]
63+
scheduled_date: Optional[datetime] = Field(default=None)
64+
date_sent: Optional[datetime]
65+
date_completed: Optional[datetime]
8666

87-
model_config = ConfigDict(extra="ignore")
67+
model_config = ConfigDict(
68+
alias_generator=to_camel,
69+
populate_by_name=True,
70+
extra="ignore",
71+
)
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
11
from typing import Optional
22

3-
from pydantic import BaseModel, Field
3+
from pydantic import BaseModel, ConfigDict, Field
4+
from pydantic.alias_generators import to_camel
45

56
from solapi.model.response.common_response import GroupMessageResponse
67

78

89
class FailedMessage(BaseModel):
910
to: str
10-
from_: str = Field(..., alias="from")
11+
from_: str = Field(..., serialization_alias="from", validation_alias="from")
1112
type: str
1213
status_message: str = Field(..., alias="statusMessage")
1314
country: str
1415
message_id: str = Field(..., alias="messageId")
1516
status_code: str = Field(..., alias="statusCode")
1617
account_id: str = Field(..., alias="accountId")
17-
custom_fields: Optional[dict[str, str]] = Field(
18-
default=None, alias="customFields"
19-
)
18+
custom_fields: Optional[dict[str, str]] = Field(default=None)
19+
20+
model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True)
2021

2122

2223
class SendMessageResponse(BaseModel):
23-
failed_message_list: list[FailedMessage] = Field(
24-
..., alias="failedMessageList"
25-
)
26-
group_info: GroupMessageResponse = Field(..., alias="groupInfo")
27-
message_list: Optional[list] = Field(default=None, alias="messageList")
24+
failed_message_list: Optional[list[FailedMessage]] = None
25+
group_info: GroupMessageResponse
26+
message_list: Optional[list] = Field(default=None)
27+
28+
model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True)

0 commit comments

Comments
 (0)