mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-30 06:21:50 -05:00
Return all required org and services info for user
The admin app now needs to know a few extra things about orgs and services in order to list them. At the moment it does this by making multiple API calls. This commit adds extra fields to the existing response. Once the admin app is using this fields we’ll be able to remove: - `reponse['services_without_organisations']` - `reponse['organisations']['services']`
This commit is contained in:
@@ -835,38 +835,63 @@ def test_get_orgs_and_services_nests_services(admin_request, sample_user):
|
||||
|
||||
resp = admin_request.get('user.get_organisations_and_services_for_user', user_id=sample_user.id)
|
||||
|
||||
assert resp == {
|
||||
'organisations': [
|
||||
{
|
||||
'name': org1.name,
|
||||
'id': str(org1.id),
|
||||
'services': [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
},
|
||||
{
|
||||
'name': service2.name,
|
||||
'id': str(service2.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': org2.name,
|
||||
'id': str(org2.id),
|
||||
'services': []
|
||||
}
|
||||
],
|
||||
'services_without_organisations': [
|
||||
{
|
||||
'name': service3.name,
|
||||
'id': str(service3.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
assert set(resp.keys()) == {
|
||||
'organisations',
|
||||
'services_without_organisations',
|
||||
'services',
|
||||
}
|
||||
assert resp['organisations'] == [
|
||||
{
|
||||
'name': org1.name,
|
||||
'id': str(org1.id),
|
||||
'services': [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
},
|
||||
{
|
||||
'name': service2.name,
|
||||
'id': str(service2.id),
|
||||
'restricted': False,
|
||||
}
|
||||
],
|
||||
'count_of_live_services': 2,
|
||||
},
|
||||
{
|
||||
'name': org2.name,
|
||||
'id': str(org2.id),
|
||||
'services': [],
|
||||
'count_of_live_services': 0,
|
||||
},
|
||||
]
|
||||
assert resp['services_without_organisations'] == [
|
||||
{
|
||||
'name': service3.name,
|
||||
'id': str(service3.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
assert resp['services'] == [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
'organisation': str(org1.id),
|
||||
},
|
||||
{
|
||||
'name': service2.name,
|
||||
'id': str(service2.id),
|
||||
'restricted': False,
|
||||
'organisation': str(org1.id),
|
||||
},
|
||||
{
|
||||
'name': service3.name,
|
||||
'id': str(service3.id),
|
||||
'restricted': False,
|
||||
'organisation': None,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_get_orgs_and_services_only_returns_active(admin_request, sample_user):
|
||||
@@ -890,28 +915,52 @@ def test_get_orgs_and_services_only_returns_active(admin_request, sample_user):
|
||||
|
||||
resp = admin_request.get('user.get_organisations_and_services_for_user', user_id=sample_user.id)
|
||||
|
||||
assert resp == {
|
||||
'organisations': [
|
||||
{
|
||||
'name': org1.name,
|
||||
'id': str(org1.id),
|
||||
'services': [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
'services_without_organisations': [
|
||||
{
|
||||
'name': service4.name,
|
||||
'id': str(service4.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
assert set(resp.keys()) == {
|
||||
'organisations',
|
||||
'services_without_organisations',
|
||||
'services',
|
||||
}
|
||||
assert resp['organisations'] == [
|
||||
{
|
||||
'name': org1.name,
|
||||
'id': str(org1.id),
|
||||
'services': [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
}
|
||||
],
|
||||
'count_of_live_services': 1,
|
||||
}
|
||||
]
|
||||
assert resp['services_without_organisations'] == [
|
||||
{
|
||||
'name': service4.name,
|
||||
'id': str(service4.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
assert resp['services'] == [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
'organisation': str(org1.id)
|
||||
},
|
||||
{
|
||||
'name': service3.name,
|
||||
'id': str(service3.id),
|
||||
'restricted': False,
|
||||
'organisation': str(org2.id)
|
||||
},
|
||||
{
|
||||
'name': service4.name,
|
||||
'id': str(service4.id),
|
||||
'restricted': False,
|
||||
'organisation': None,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_get_orgs_and_services_only_shows_users_orgs_and_services(admin_request, sample_user):
|
||||
@@ -932,23 +981,37 @@ def test_get_orgs_and_services_only_shows_users_orgs_and_services(admin_request,
|
||||
|
||||
resp = admin_request.get('user.get_organisations_and_services_for_user', user_id=sample_user.id)
|
||||
|
||||
assert resp == {
|
||||
'organisations': [
|
||||
{
|
||||
'name': org2.name,
|
||||
'id': str(org2.id),
|
||||
'services': []
|
||||
}
|
||||
],
|
||||
# service1 belongs to org1, but the user doesn't know about org1
|
||||
'services_without_organisations': [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
assert set(resp.keys()) == {
|
||||
'organisations',
|
||||
'services_without_organisations',
|
||||
'services',
|
||||
}
|
||||
assert resp['organisations'] == [
|
||||
{
|
||||
'name': org2.name,
|
||||
'id': str(org2.id),
|
||||
'services': [],
|
||||
'count_of_live_services': 0,
|
||||
}
|
||||
]
|
||||
# service1 belongs to org1, but the user doesn't know about org1
|
||||
assert resp['services_without_organisations'] == [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
}
|
||||
]
|
||||
# 'services' always returns the org_id no matter whether the user
|
||||
# belongs to that org or not
|
||||
assert resp['services'] == [
|
||||
{
|
||||
'name': service1.name,
|
||||
'id': str(service1.id),
|
||||
'restricted': False,
|
||||
'organisation': str(org1.id),
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def test_find_users_by_email_finds_user_by_partial_email(notify_db, client):
|
||||
|
||||
Reference in New Issue
Block a user