Skip to content

Commit ecbda08

Browse files
authored
Merge pull request #73 from huntflow/INT-380_fix_optional_field_errors
[INT-380] Fix errors
2 parents faf3b36 + b1f2885 commit ecbda08

File tree

10 files changed

+242
-249
lines changed

10 files changed

+242
-249
lines changed

huntflow_api_client/models/consts.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,22 @@ class VacancyState(str, Enum):
2525
CREATED = "CREATED"
2626

2727

28+
class AvailableVacancyCreateState(str, Enum):
29+
OPEN = "OPEN"
30+
31+
32+
class AvailableMultiVacancyUpdateState(str, Enum):
33+
OPEN = "OPEN"
34+
CLOSED = "CLOSED"
35+
HOLD = "HOLD"
36+
37+
38+
class AvailableVacancyListParameter(str, Enum):
39+
OPEN = "OPEN"
40+
CLOSED = "CLOSED"
41+
HOLD = "HOLD"
42+
43+
2844
class FieldType(str, Enum):
2945
string = "string"
3046
integer = "integer"

huntflow_api_client/models/request/file.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Optional
22

3-
from pydantic import ConfigDict, Field, field_validator
3+
from pydantic import ConfigDict, Field, field_serializer
44

55
from huntflow_api_client.models.common import JsonRequestModel
66

@@ -27,9 +27,8 @@ class UploadFileHeaders(JsonRequestModel):
2727
alias="x-ignore-phone",
2828
)
2929

30-
@field_validator("file_parse")
31-
@classmethod
32-
def convert_bool_to_str(cls, value: bool) -> str:
33-
return str(value).lower()
34-
3530
model_config = ConfigDict(populate_by_name=True)
31+
32+
@field_serializer("file_parse")
33+
def serialize_file_parse(self, file_parse: bool) -> str:
34+
return str(file_parse)

huntflow_api_client/models/request/multi_vacancies.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
from pydantic import BaseModel, ConfigDict, Field, PositiveInt
44

55
from huntflow_api_client.models.common import EditedFillQuota, FillQuota, JsonRequestModel
6-
from huntflow_api_client.models.request.vacancies import VacancyCreateState, VacancyUpdateState
6+
from huntflow_api_client.models.consts import (
7+
AvailableMultiVacancyUpdateState,
8+
AvailableVacancyCreateState,
9+
)
710

811
HTML_TAGS = "ul, ol, li, p, br, a, strong, em, u, b, i"
912

@@ -32,7 +35,10 @@ class MultiVacancyCreateRequest(JsonRequestModel):
3235
description="Department name (ignored if the divisions are enabled)",
3336
)
3437
hidden: bool = Field(False, description="Is the vacancy hidden from coworkers?")
35-
state: VacancyCreateState = Field(VacancyCreateState.OPEN, description="The state of a vacancy")
38+
state: AvailableVacancyCreateState = Field(
39+
AvailableVacancyCreateState.OPEN,
40+
description="The state of a vacancy",
41+
)
3642
coworkers: Optional[List[PositiveInt]] = Field(
3743
None,
3844
description="The list of coworker ID working with a vacancy",
@@ -75,7 +81,10 @@ class MultiVacancyUpdateRequest(JsonRequestModel):
7581
description="Department name (ignored if the divisions are enabled)",
7682
)
7783
hidden: bool = Field(False, description="Is the vacancy hidden from coworkers?")
78-
state: VacancyUpdateState = Field(VacancyUpdateState.OPEN, description="The state of a vacancy")
84+
state: AvailableMultiVacancyUpdateState = Field(
85+
AvailableMultiVacancyUpdateState.OPEN,
86+
description="The state of a vacancy",
87+
)
7988
body: Optional[str] = Field(
8089
None,
8190
description=(

huntflow_api_client/models/request/vacancies.py

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,19 @@
11
import datetime
2-
from enum import Enum
32
from typing import List, Optional, Union
43

54
from pydantic import BaseModel, ConfigDict, Field, PositiveInt
65

76
from huntflow_api_client.models.common import EditedFillQuota, FillQuota, JsonRequestModel, Vacancy
8-
9-
10-
class VacancyListState(str, Enum):
11-
OPEN = "OPEN"
12-
CLOSED = "CLOSED"
13-
HOLD = "HOLD"
14-
15-
16-
class VacancyUpdateState(str, Enum):
17-
OPEN = "OPEN"
18-
CLOSED = "CLOSED"
19-
HOLD = "HOLD"
20-
21-
22-
class VacancyCreateState(str, Enum):
23-
OPEN = "OPEN"
7+
from huntflow_api_client.models.consts import AvailableVacancyCreateState
248

259

2610
class VacancyCreateRequest(Vacancy, JsonRequestModel):
2711
account_applicant_offer: Optional[PositiveInt] = Field(
2812
None,
2913
description="Organization offer ID",
3014
)
31-
state: VacancyCreateState = Field( # type: ignore
32-
VacancyCreateState.OPEN,
15+
state: AvailableVacancyCreateState = Field( # type: ignore
16+
AvailableVacancyCreateState.OPEN,
3317
description="The state of a vacancy",
3418
)
3519
coworkers: Optional[List[PositiveInt]] = Field(

huntflow_api_client/models/response/resume.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class EducationInfoWithResult(BaseEducationInfo):
8484

8585
class ExtendedEducationInfo(BaseEducationInfo):
8686
faculty: t.Optional[str] = Field(None, description="Faculty name")
87-
form: t.Optional[ExternalEntity]
87+
form: t.Optional[ExternalEntity] = None
8888

8989

9090
class Experience(BaseModel):
@@ -103,11 +103,11 @@ class Experience(BaseModel):
103103

104104

105105
class Attestation(BaseModel):
106-
date: t.Optional[DateWithPrecision]
107-
name: t.Optional[str]
108-
organization: t.Optional[str]
109-
description: t.Optional[str]
110-
result: t.Optional[str]
106+
date: t.Optional[DateWithPrecision] = None
107+
name: t.Optional[str] = None
108+
organization: t.Optional[str] = None
109+
description: t.Optional[str] = None
110+
result: t.Optional[str] = None
111111

112112

113113
class Education(BaseModel):
@@ -147,10 +147,10 @@ class Certificate(BaseModel):
147147

148148

149149
class ContactFullValue(BaseModel):
150-
country: str = Field()
151-
city: str = Field()
152-
number: str = Field()
153-
formatted: str = Field()
150+
country: str
151+
city: str
152+
number: str
153+
formatted: str
154154

155155

156156
class Contact(BaseModel):
@@ -213,11 +213,11 @@ class Military(BaseModel):
213213

214214

215215
class SocialRating(BaseModel):
216-
kind: t.Optional[str]
217-
stats: t.Optional[t.Any]
218-
tags: t.Optional[t.List[str]]
219-
url: t.Optional[str]
220-
login: t.Optional[str]
216+
kind: t.Optional[str] = None
217+
stats: t.Optional[t.Any] = None
218+
tags: t.Optional[t.List[str]] = None
219+
url: t.Optional[str] = None
220+
login: t.Optional[str] = None
221221
registered_at: t.Optional[str] = Field(None, description="ISO datetime")
222222

223223

huntflow_api_client/models/response/vacancies.py

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class VacancyItem(Vacancy):
4040
)
4141
multiple: Optional[bool] = Field(
4242
None,
43-
description="Flag indicating if this vacancy is a " "multiple",
43+
description="Flag indicating if this vacancy is a multiple",
4444
)
4545
parent: Optional[PositiveInt] = Field(None, description="Vacancy parent ID")
4646
account_vacancy_status_group: Optional[PositiveInt] = Field(
@@ -50,10 +50,6 @@ class VacancyItem(Vacancy):
5050

5151
model_config = ConfigDict(extra="allow")
5252

53-
def dict(self, *args, **kwargs): # type: ignore
54-
include = set(self.__fields__) | set(self.additional_fields_list)
55-
return super().dict(include=include)
56-
5753

5854
class VacancyListResponse(PaginatedResponse):
5955
total_items: Optional[int] = Field(..., description="Total number of items")
@@ -91,10 +87,6 @@ class VacancyResponse(VacancyChild):
9187

9288
model_config = ConfigDict(extra="allow")
9389

94-
def dict(self, *args, **kwargs): # type: ignore
95-
include = set(self.__fields__) | set(self.additional_fields_list)
96-
return super().dict(include=include)
97-
9890

9991
class VacancyCreateResponse(Vacancy):
10092
id: PositiveInt = Field(..., description="Vacancy ID")

huntflow_api_client/models/response/vacancy_requests.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from __future__ import annotations
2-
31
import datetime
42
import typing as t
53

0 commit comments

Comments
 (0)