Skip to content

Commit

Permalink
move attributes around
Browse files Browse the repository at this point in the history
  • Loading branch information
loechel committed Apr 23, 2024
1 parent f4d137b commit 246a3e4
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 40 deletions.
16 changes: 11 additions & 5 deletions src/edutap/wallet_google/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -376,13 +376,19 @@ def save_link(
if isinstance(obj, dict) and "id" in obj and len(obj.keys()) <= 2:
obj = GoogleWalletObjectWithClassReference.model_validate(obj)
if isinstance(obj, GoogleWalletObjectWithClassReference):
payload[name].append(obj.model_dump(exclude_none=True, mode="json"))
payload[name].append(
obj.model_dump_json(
exclude_none=True,
exclude_unset=True,
exclude_defaults=True,
)
)
continue

# otherwise it must be a registered model
model = lookup_model_by_plural_name(name)
obj = _validate_data(model, obj)
obj_json = obj.model_dump(exclude_none=True, mode="json")
obj_json = obj.model_dump_json(exclude_none=True)
payload[name].append(obj_json)
claims = {
"iat": "",
Expand All @@ -394,9 +400,9 @@ def save_link(
}
signer = crypt.RSASigner.from_service_account_file(session_manager.credentials_file)
jwt_string = jwt.encode(signer, claims).decode("utf-8")
logger.debug(
"JWT-Length: %d, is less than recommenden 1800: %s",
logger.warning(
"JWT-Length: %d, is larger than recommenden 1800: %s",
len(jwt_string),
len(jwt_string) <= 1800,
len(jwt_string) >= 1800,
)
return f"{session_manager.save_url}/{jwt_string}"
21 changes: 0 additions & 21 deletions src/edutap/wallet_google/modelbase.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,6 @@
from pydantic import Field


# class GoogleWalletModel(BaseModel):
# """
# Base model for all Google Wallet models.
# """

# model_config = ConfigDict(
# extra="forbid",
# # extra="ignore",
# use_enum_values=True,
# )


# class GoogleWalletWithIdModel(GoogleWalletModel):
# """
# Base model for Google Wallet models with an identifier.
# """

# kind: str | None = Field(description="deprecated", exclude=True, default=None)
# id: str


class GoogleWalletClassModel(GoogleWalletWithIdModel):
"""
Base model for all Google Wallet Class models.
Expand Down
6 changes: 4 additions & 2 deletions src/edutap/wallet_google/models/jwt.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
)
class JwtResource(GoogleWalletModel):
"""
see: https://developers.google.com/wallet/tickets/events/rest/v1/jwt
see: https://developers.google.com/wallet/reference/rest/v1/jwt
https://developers.google.com/wallet/tickets/events/rest/v1/jwt
https://developers.google.com/wallet/generic/web/javascript-button#google-pay-api-for-passes-jwt
"""

Expand All @@ -28,7 +29,8 @@ class JwtResource(GoogleWalletModel):

class Resources(GoogleWalletModel):
"""
see: https://developers.google.com/wallet/tickets/events/rest/v1/jwt/insert#resources
see: https://developers.google.com/wallet/reference/rest/v1/jwt/insert
https://developers.google.com/wallet/tickets/events/rest/v1/jwt/insert#resources
"""

# the documentation says nothing about GenericClass/Object here
Expand Down
2 changes: 1 addition & 1 deletion src/edutap/wallet_google/models/retail.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
from .primitives.enums import ViewUnlockRequirement
from .primitives.localized_string import LocalizedString
from .primitives.location import LatLongPoint
from .primitives.message import Message
from .primitives.money import Money
from .primitives.notification import Message
from .primitives.retail import DiscoverableProgram
from .primitives.review import Review
from pydantic import BaseModel
Expand Down
22 changes: 11 additions & 11 deletions src/edutap/wallet_google/models/tickets_and_transit.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,17 @@ class EventDateTime(GoogleWalletWithKindModel):
customDoorsOpenLabel: LocalizedString | None = None


class EventSeat(BaseModel):
seat: LocalizedString | None = None
row: LocalizedString | None = None
section: LocalizedString | None = None
gate: LocalizedString | None = None


class EventReservationInfo(BaseModel):
confirmationCode: str | None = None


@register_model(
"EventTicketClass",
url_part="eventTicketClass",
Expand Down Expand Up @@ -98,17 +109,6 @@ class EventTicketClass(GoogleWalletClassModel, GoogleWalletMessageable):
countryCode: str | None = None


class EventSeat(BaseModel):
seat: LocalizedString | None = None
row: LocalizedString | None = None
section: LocalizedString | None = None
gate: LocalizedString | None = None


class EventReservationInfo(BaseModel):
confirmationCode: str | None = None


@register_model(
"EventTicketObject",
url_part="eventTicketObject",
Expand Down

0 comments on commit 246a3e4

Please sign in to comment.