Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ site/
.pyre/
.pytype/

# Test scripts
scripts/

# Distribution / packaging
.Python
*.pyc
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -411,7 +411,8 @@ MIT License - See LICENSE file for details.
| PUT /v1/console/card-templates/{id} | `console.update_template()` | Y |
| GET /v1/console/card-templates/{id} | `console.read_template()` | Y |
| GET /v1/console/card-templates/{id}/logs | `console.get_logs()` / `console.event_log()` | Y |
| GET /v1/console/pass-template-pairs | `console.list_pass_template_pairs()` | Y |
| GET /v1/console/card-template-pairs | `console.list_pass_template_pairs()` | Y |
| POST /v1/console/card-template-pairs | `console.create_pass_template_pair()` | Y |
| POST /v1/console/card-templates/{id}/ios_preflight | `console.ios_preflight()` | Y |
| GET /v1/console/ledger-items | `console.ledger_items()` | Y |
| GET /v1/console/landing-pages | `console.list_landing_pages()` | Y |
Expand Down
24 changes: 20 additions & 4 deletions accessgrid/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -600,16 +600,32 @@ def list_pass_template_pairs(self, **kwargs) -> Dict[str, Any]:
Returns:
Dict containing pass_template_pairs list and pagination info
"""
response = self._client._get("/v1/console/pass-template-pairs", params=kwargs)
response = self._client._get("/v1/console/card-template-pairs", params=kwargs)

if "pass_template_pairs" in response:
response["pass_template_pairs"] = [
if "card_template_pairs" in response:
response["card_template_pairs"] = [
PassTemplatePair(self._client, pair)
for pair in response["pass_template_pairs"]
for pair in response["card_template_pairs"]
]

return response

def create_pass_template_pair(self, **kwargs) -> PassTemplatePair:
"""
Create a new pass template pair linking an Apple (iOS)
and Google (Android) card template.

Args:
name: Name for the pair
apple_card_template_id: Apple card template ID
google_card_template_id: Google card template ID

Returns:
PassTemplatePair object
"""
response = self._client._post("/v1/console/card-template-pairs", kwargs)
return PassTemplatePair(self._client, response)


class AccessGrid:
def __init__(
Expand Down
6 changes: 3 additions & 3 deletions tests/test_accessgrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ def test_list_pass_template_pairs(self, mock_request, client):
mock_resp = Mock()
mock_resp.status_code = 200
mock_resp.json.return_value = {
"pass_template_pairs": [
"card_template_pairs": [
{
"id": "pair-1",
"name": "Employee Badge",
Expand Down Expand Up @@ -405,11 +405,11 @@ def test_list_pass_template_pairs(self, mock_request, client):

call_args = mock_request.call_args[1]
assert call_args["method"] == "GET"
assert call_args["url"] == f"{client.base_url}/v1/console/pass-template-pairs"
assert call_args["url"] == f"{client.base_url}/v1/console/card-template-pairs"
assert call_args["params"]["page"] == 1
assert call_args["params"]["per_page"] == 50

pairs = result["pass_template_pairs"]
pairs = result["card_template_pairs"]
assert len(pairs) == 2

# First pair — both platforms
Expand Down
Loading