Skip to content

Commit

Permalink
fix(client): explicit add status code for all response
Browse files Browse the repository at this point in the history
  • Loading branch information
GG-Yanne committed Dec 19, 2024
1 parent 20b1624 commit b87bc42
Show file tree
Hide file tree
Showing 23 changed files with 72 additions and 62 deletions.
30 changes: 18 additions & 12 deletions pygitguardian/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@
from .models import (
APITokensResponse,
CreateInvitation,
CreateInvitationParameter,
CreateInvitationParameters,
CreateTeam,
CreateTeamInvitation,
CreateTeamMember,
CreateTeamMemberParameter,
CreateTeamMemberParameters,
DeleteMemberParameters,
Detail,
Document,
Expand All @@ -40,7 +40,7 @@
HoneytokenResponse,
HoneytokenWithContextResponse,
Invitation,
InvitationParameter,
InvitationParameters,
JWTResponse,
JWTService,
Member,
Expand All @@ -56,11 +56,11 @@
SourceParameters,
Team,
TeamInvitation,
TeamInvitationParameter,
TeamInvitationParameters,
TeamMember,
TeamMemberParameter,
TeamMemberParameters,
TeamSourceParameters,
TeamsParameter,
TeamsParameters,
UpdateMember,
UpdateTeam,
UpdateTeamSource,
Expand Down Expand Up @@ -1005,7 +1005,7 @@ def delete_member(

def list_teams(
self,
parameters: Optional[TeamsParameter] = None,
parameters: Optional[TeamsParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, CursorPaginatedResponse[Team]]:
params = parameters.to_dict() if parameters else {}
Expand All @@ -1021,6 +1021,7 @@ def list_teams(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def get_team(
Expand Down Expand Up @@ -1100,7 +1101,7 @@ def delete_team(
def list_team_invitations(
self,
team_id: int,
parameters: Optional[TeamInvitationParameter] = None,
parameters: Optional[TeamInvitationParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, CursorPaginatedResponse[TeamInvitation]]:
response = self.get(
Expand All @@ -1117,6 +1118,7 @@ def list_team_invitations(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def create_team_invitation(
Expand Down Expand Up @@ -1157,7 +1159,7 @@ def delete_team_invitation(
def list_team_members(
self,
team_id: int,
parameters: Optional[TeamMemberParameter] = None,
parameters: Optional[TeamMemberParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, CursorPaginatedResponse[TeamMember]]:
response = self.get(
Expand All @@ -1174,13 +1176,14 @@ def list_team_members(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def create_team_member(
self,
team_id: int,
member: CreateTeamMember,
parameters: Optional[CreateTeamMemberParameter] = None,
parameters: Optional[CreateTeamMemberParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, TeamMember]:
response = self.post(
Expand Down Expand Up @@ -1230,6 +1233,7 @@ def list_sources(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def list_team_sources(
Expand All @@ -1250,6 +1254,7 @@ def list_team_sources(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def update_team_source(
Expand All @@ -1272,7 +1277,7 @@ def update_team_source(

def list_invitations(
self,
parameters: Optional[InvitationParameter] = None,
parameters: Optional[InvitationParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, CursorPaginatedResponse[Invitation]]:
response = self.get(
Expand All @@ -1289,12 +1294,13 @@ def list_invitations(
else:
obj = load_detail(response)

obj.status_code = response.status_code
return obj

def create_invitation(
self,
invitation: CreateInvitation,
parameters: Optional[CreateInvitationParameter] = None,
parameters: Optional[CreateInvitationParameters] = None,
extra_headers: Optional[Dict[str, str]] = None,
) -> Union[Detail, Invitation]:
response = self.post(
Expand Down
34 changes: 17 additions & 17 deletions pygitguardian/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -1207,15 +1207,15 @@ class DeleteMemberParameters(Base, FromDictMixin):


@dataclass
class TeamsParameter(PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin):
class TeamsParameters(PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin):
is_global: Optional[bool] = None


TeamsParameterSchema = cast(
Type[BaseSchema],
marshmallow_dataclass.class_schema(TeamsParameter, base_schema=BaseSchema),
marshmallow_dataclass.class_schema(TeamsParameters, base_schema=BaseSchema),
)
TeamsParameter.SCHEMA = TeamsParameterSchema()
TeamsParameters.SCHEMA = TeamsParameterSchema()


@dataclass
Expand Down Expand Up @@ -1275,7 +1275,7 @@ class IncidentPermission(str, Enum):


@dataclass
class TeamInvitationParameter(PaginationParameter, ToDictMixin):
class TeamInvitationParameters(PaginationParameter, ToDictMixin):
invitation_id: Optional[int] = None
is_team_leader: Optional[bool] = None
incident_permission: Optional[IncidentPermission] = None
Expand All @@ -1292,7 +1292,7 @@ class Meta:
exclude_none = True


TeamInvitationParameter.SCHEMA = TeamInvitationParameterSchema()
TeamInvitationParameters.SCHEMA = TeamInvitationParameterSchema()


@dataclass
Expand Down Expand Up @@ -1351,7 +1351,7 @@ class Meta:


@dataclass
class TeamMemberParameter(PaginationParameter, SearchParameter, ToDictMixin):
class TeamMemberParameters(PaginationParameter, SearchParameter, ToDictMixin):
is_team_leader: Optional[bool] = None
incident_permission: Optional[IncidentPermission] = None
member_id: Optional[int] = None
Expand All @@ -1366,13 +1366,13 @@ class TeamMembershipParameterSchema(BaseSchema):

@post_load
def make_team_member_parameter(self, data: Dict[str, Any], **kwargs: Any):
return TeamMemberParameter(**data)
return TeamMemberParameters(**data)

class Meta:
exclude_none = True


TeamMemberParameter.SCHEMA = TeamMembershipParameterSchema()
TeamMemberParameters.SCHEMA = TeamMembershipParameterSchema()


@dataclass
Expand Down Expand Up @@ -1402,17 +1402,17 @@ def make_team_member(self, data: Dict[str, Any], **kwargs: Any):


@dataclass
class CreateTeamMemberParameter(ToDictMixin):
send_email: bool
class CreateTeamMemberParameters(ToDictMixin):
send_email: Optional[bool] = None


CreateTeamMemberParameterSchema = cast(
Type[BaseSchema],
marshmallow_dataclass.class_schema(
CreateTeamMemberParameter, base_schema=BaseSchema
CreateTeamMemberParameters, base_schema=BaseSchema
),
)
CreateTeamMemberParameter.SCHEMA = CreateTeamMemberParameterSchema()
CreateTeamMemberParameters.SCHEMA = CreateTeamMemberParameterSchema()


@dataclass
Expand Down Expand Up @@ -1483,10 +1483,10 @@ class SourceParameters(TeamSourceParameters):


@dataclass
class InvitationParameter(
class InvitationParameters(
PaginationParameter, SearchParameter, FromDictMixin, ToDictMixin
):
ordering: Literal["date", "-date"]
ordering: Optional[Literal["date", "-date"]] = None


@dataclass
Expand All @@ -1512,17 +1512,17 @@ def make_invitation(self, data: Dict[str, Any], **kwargs: Any):


@dataclass
class CreateInvitationParameter(FromDictMixin, ToDictMixin):
class CreateInvitationParameters(FromDictMixin, ToDictMixin):
send_email: Optional[bool] = None


CreateInvitationParameterSchema = cast(
Type[BaseSchema],
marshmallow_dataclass.class_schema(
CreateInvitationParameter, base_schema=BaseSchema
CreateInvitationParameters, base_schema=BaseSchema
),
)
CreateInvitationParameter.SCHEMA = CreateInvitationParameterSchema()
CreateInvitationParameters.SCHEMA = CreateInvitationParameterSchema()


@dataclass
Expand Down
2 changes: 2 additions & 0 deletions pygitguardian/models_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,15 @@ def __bool__(self) -> bool:
return self.status_code == 200


@dataclass
class PaginationParameter(ToDictMixin):
"""Pagination mixin used for endpoints that support pagination."""

cursor: str = ""
per_page: int = 20


@dataclass
class SearchParameter(ToDictMixin):
search: Optional[str] = None

Expand Down
4 changes: 2 additions & 2 deletions tests/cassettes/test_add_team_sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down Expand Up @@ -200,7 +200,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams/19/sources?type=azure_devops
uri: https://api.gitguardian.com/v1/teams/19/sources?cursor=&per_page=20&type=azure_devops
response:
body:
string: '[{"id":124,"type":"azure_devops","full_name":"gg-integration-test /
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_create_team_invitation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_create_team_member.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_create_team_member_parameters.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_delete_team.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_delete_team_invitation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_delete_team_member.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_delete_team_sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_get_team.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_global_team.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=True
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=True
response:
body:
string: '[{"id":6,"is_global":true,"name":"All incidents","description":null,"gitguardian_url":"http://localhost:3000/workspace/6/settings/user/teams/6"}]'
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_list_team_invitations.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_list_team_members.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
2 changes: 1 addition & 1 deletion tests/cassettes/test_list_teams_sources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ interactions:
User-Agent:
- pygitguardian/1.18.0 (Darwin;py3.11.8)
method: GET
uri: https://api.gitguardian.com/v1/teams?is_global=False
uri: https://api.gitguardian.com/v1/teams?cursor=&per_page=20&is_global=False
response:
body:
string:
Expand Down
Loading

0 comments on commit b87bc42

Please sign in to comment.