From ab0b42ab2e3b31abc2d3cf18dadf294983749f3e Mon Sep 17 00:00:00 2001 From: Josh Scanlan Date: Tue, 5 May 2026 16:04:06 -0700 Subject: [PATCH 1/3] adds optional provider param to metadata by email --- magic_admin/resources/user.py | 11 +++++------ tests/unit/resources/user_test.py | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/magic_admin/resources/user.py b/magic_admin/resources/user.py index 2a2c6e0..4357562 100644 --- a/magic_admin/resources/user.py +++ b/magic_admin/resources/user.py @@ -9,12 +9,11 @@ class User(ResourceComponent): v1_user_logout = "/v1/admin/user/logout" v2_user_info = "/v2/admin/user" - def get_metadata_by_email(self, email): - return self.request( - "get", - self.v2_user_info, - params={"type": "email", "value": email}, - ) + def get_metadata_by_email(self, email, provider=None): + params = {"type": "email", "value": email} + if provider: + params["provider"] = provider + return self.request("get", self.v2_user_info, params=params) def get_metadata_by_issuer_and_wallet(self, issuer, wallet_type): return self.request( diff --git a/tests/unit/resources/user_test.py b/tests/unit/resources/user_test.py index 53afb77..b8b52ad 100644 --- a/tests/unit/resources/user_test.py +++ b/tests/unit/resources/user_test.py @@ -71,6 +71,23 @@ def test_get_metadata_by_email(self): params={"type": "email", "value": sentinel.email}, ) + def test_get_metadata_by_email_with_provider(self): + self.user.request = mock.Mock(return_value=self.metadata_no_wallets) + + assert ( + self.user.get_metadata_by_email( + sentinel.email, + provider="google", + ) + == self.metadata_no_wallets + ) + + self.user.request.assert_called_once_with( + "get", + self.user.v2_user_info, + params={"type": "email", "value": sentinel.email, "provider": "google"}, + ) + @pytest.fixture def mock_construct_issuer_with_public_address(self, mocker): return mocker.patch( From 7cb19634ef4b44a18ff6d3abfe2f0c394df03e78 Mon Sep 17 00:00:00 2001 From: Josh Scanlan Date: Tue, 5 May 2026 16:21:34 -0700 Subject: [PATCH 2/3] run pre-commit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fff8b6d..ac65a2e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: - id: codespell exclude: ^locale/ - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.10 + rev: v0.15.12 hooks: - id: ruff-check args: [--fix] From 1811dca72c7773a32365fb94f540bffee29e850b Mon Sep 17 00:00:00 2001 From: Josh Scanlan Date: Wed, 6 May 2026 08:29:32 -0700 Subject: [PATCH 3/3] bump version and adds changelog --- CHANGELOG.md | 10 ++++++++++ magic_admin/version.py | 2 +- pyproject.toml | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6cfbe0..d159556 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +## `2.4.0` - 2026-05-06 + +#### 🚀 New Features + +- **Added optional `provider` argument to `get_metadata_by_email`** + - Enables explicitly targeting OAuth users by provider when an email user with the same email also exists + - Example: `get_metadata_by_email(email, provider="google")` + +--- + ## `2.3.0` - 2026-04-14 #### 🚀 New Features diff --git a/magic_admin/version.py b/magic_admin/version.py index 707faad..02c476a 100644 --- a/magic_admin/version.py +++ b/magic_admin/version.py @@ -1 +1 @@ -VERSION = "2.3.0" +VERSION = "2.4.0" diff --git a/pyproject.toml b/pyproject.toml index 27e5508..a38c1df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "magic-admin" -version = "2.3.0" +version = "2.4.0" description = "Magic Python Library" readme = "README.md" authors = [