Skip to content

Commit

Permalink
feat: add Field validation
Browse files Browse the repository at this point in the history
  • Loading branch information
NafieAlhilaly committed Jul 13, 2022
1 parent 7084904 commit 6ec714f
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 29 deletions.
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ license = "MIT license"

[tool.poetry.dependencies]
python = "^3.10"
pydantic = "^1.9.1"

[tool.poetry.dev-dependencies]
six = "^1.16.0"
Expand Down
21 changes: 11 additions & 10 deletions wallet/PassInformation/PassInformation.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from wallet.PassProps import Field
from wallet.Schemas import FieldProps


class PassInformation:
Expand All @@ -13,50 +14,50 @@ def __init__(self):
self.backFields = []
self.auxiliaryFields = []

def add_header_field(self, **kwargs):
def add_header_field(self, field_props: FieldProps):
"""
Add Simple Field to Header
:param key:
:param value:
:param label: optional
"""
self.headerFields.append(Field(**kwargs))
self.headerFields.append(Field(field_props))

def add_primary_field(self, **kwargs):
def add_primary_field(self, field_props: FieldProps):
"""
Add Simple Primary Field
:param key:
:param value:
:param label: optional
"""
self.primaryFields.append(Field(**kwargs))
self.primaryFields.append(Field(field_props))

def add_secondary_field(self, **kwargs):
def add_secondary_field(self, field_props: FieldProps):
"""
Add Simple Secondary Field
:param key:
:param value:
:param label: optional
"""
self.secondaryFields.append(Field(**kwargs))
self.secondaryFields.append(Field(field_props))

def add_back_field(self, **kwargs):
def add_back_field(self, field_props: FieldProps):
"""
Add Simple Back Field
:param key:
:param value:
:param label: optional
"""
self.backFields.append(Field(**kwargs))
self.backFields.append(Field(field_props))

def add_auxiliary_field(self, **kwargs):
def add_auxiliary_field(self, field_props: FieldProps):
"""
Add Simple Auxilary Field
:param key:
:param value:
:param label: optional
"""
self.auxiliaryFields.append(Field(**kwargs))
self.auxiliaryFields.append(Field(field_props))

def json_dict(self):
"""
Expand Down
31 changes: 12 additions & 19 deletions wallet/PassProps/Field.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
from .Alignment import Alignment
from .DateStyle import DateStyle
from .NumberStyle import NumberStyle
from wallet.Schemas import FieldProps


class Field:
"""Wallet Text Field"""

def __init__(self, **kwargs):
def __init__(
self,
feild_props: FieldProps
) -> None:
"""
Initiate Field
Expand All @@ -19,23 +22,13 @@ def __init__(self, **kwargs):
:return: Nothing
"""

self.key = kwargs["key"]
if "attributed_value" in kwargs:
self.attributedValue = kwargs["attributed_value"]
self.value = kwargs["value"]
self.label = kwargs.get("label", "")
if "change_message" in kwargs:
self.changeMessage = kwargs[
"change_message"
] # Don't Populate key if not needed
self.textAlignment = {
"left": Alignment.LEFT,
"center": Alignment.CENTER,
"right": Alignment.RIGHT,
"justified": Alignment.JUSTIFIED,
"natural": Alignment.NATURAL,
}.get(kwargs.get("text_alignment", "left"))
self.key = feild_props.key
self.value = feild_props.value
self.label = feild_props.label
self.attributedValue = feild_props.attributed_value
if feild_props.change_message:
self.changeMessage = feild_props.change_message
self.textAlignment = feild_props.text_alignment

def json_dict(self):
"""Return dict object from class"""
Expand Down
14 changes: 14 additions & 0 deletions wallet/Schemas/FieldProps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from pydantic import BaseModel
from wallet.PassProps.Alignment import Alignment


class FieldProps(BaseModel):
key: str
value: str
label: str | None = None
attributed_value: str | None = None
change_message: str | None = None
text_alignment: Alignment | str = Alignment.LEFT

class Config:
arbitrary_types_allowed = True
Empty file added wallet/Schemas/__init__.py
Empty file.

0 comments on commit 6ec714f

Please sign in to comment.