Skip to content

Commit 96a0b49

Browse files
authored
Merge pull request #135 from Flagsmith/feat/get-identities-endpoint
feat: Add GET /api/v1/identities endpoint
2 parents fc8534b + 31eb419 commit 96a0b49

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/edge_proxy/server.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ async def identity(
9292
return ORJSONResponse(data)
9393

9494

95+
@app.get("/api/v1/identities/", response_class=ORJSONResponse)
96+
async def get_identities(
97+
identifier: str,
98+
x_environment_key: str = Header(None),
99+
) -> ORJSONResponse:
100+
data = environment_service.get_identity_response_data(
101+
IdentityWithTraits(identifier=identifier), x_environment_key
102+
)
103+
return ORJSONResponse(data)
104+
105+
95106
@app.on_event("startup")
96107
@repeat_every(
97108
seconds=settings.api_poll_frequency_seconds,

tests/test_server.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,30 @@ def test_post_identity__invalid_trait_data__expected_response(
259259
"constrained-str",
260260
]
261261
assert response.json()["detail"][-1]["type"] == "string_too_long"
262+
263+
264+
def test_get_identities(
265+
mocker: MockerFixture,
266+
client: TestClient,
267+
) -> None:
268+
x_environment_key = "test_environment_key"
269+
identifier = "test_identifier"
270+
271+
mocked_environment_cache = mocker.patch(
272+
"edge_proxy.server.environment_service.cache"
273+
)
274+
mocked_environment_cache.get_environment.return_value = environment_1
275+
mocked_environment_cache.get_identity.return_value = {
276+
"environment_api_key": x_environment_key,
277+
"identifier": identifier,
278+
}
279+
280+
response = client.get(
281+
"/api/v1/identities/",
282+
headers={"x-environment-key": x_environment_key},
283+
params={"identifier": identifier},
284+
)
285+
data = response.json()
286+
287+
assert response.status_code == 200
288+
assert data["traits"] == []

0 commit comments

Comments
 (0)