mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-23 15:56:45 -04:00
Add dao to get active users for service
This commit is contained in:
@@ -384,3 +384,12 @@ def dao_suspend_service(service_id):
|
|||||||
def dao_resume_service(service_id):
|
def dao_resume_service(service_id):
|
||||||
service = Service.query.get(service_id)
|
service = Service.query.get(service_id)
|
||||||
service.active = True
|
service.active = True
|
||||||
|
|
||||||
|
|
||||||
|
def dao_fetch_active_users_for_service(service_id):
|
||||||
|
query = User.query.filter(
|
||||||
|
User.user_to_service.any(id=service_id),
|
||||||
|
User.state == 'active'
|
||||||
|
)
|
||||||
|
|
||||||
|
return query.all()
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ from app.dao.services_dao import (
|
|||||||
dao_fetch_todays_stats_for_all_services,
|
dao_fetch_todays_stats_for_all_services,
|
||||||
fetch_stats_by_date_range_for_all_services,
|
fetch_stats_by_date_range_for_all_services,
|
||||||
dao_suspend_service,
|
dao_suspend_service,
|
||||||
dao_resume_service
|
dao_resume_service,
|
||||||
|
dao_fetch_active_users_for_service
|
||||||
)
|
)
|
||||||
from app.dao.users_dao import save_model_user
|
from app.dao.users_dao import save_model_user
|
||||||
from app.models import (
|
from app.models import (
|
||||||
@@ -49,6 +50,7 @@ from app.models import (
|
|||||||
KEY_TYPE_TEST
|
KEY_TYPE_TEST
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from tests.app.db import create_user
|
||||||
from tests.app.conftest import (
|
from tests.app.conftest import (
|
||||||
sample_notification as create_notification,
|
sample_notification as create_notification,
|
||||||
sample_notification_history as create_notification_history,
|
sample_notification_history as create_notification_history,
|
||||||
@@ -783,3 +785,11 @@ def test_fetch_monthly_historical_template_stats_for_service_separates_templates
|
|||||||
assert len(result.get('2016-04').keys()) == 2
|
assert len(result.get('2016-04').keys()) == 2
|
||||||
assert str(template_one.id) in result.get('2016-04').keys()
|
assert str(template_one.id) in result.get('2016-04').keys()
|
||||||
assert str(template_two.id) in result.get('2016-04').keys()
|
assert str(template_two.id) in result.get('2016-04').keys()
|
||||||
|
|
||||||
|
|
||||||
|
def test_dao_fetch_active_users_for_service_returns_active_only(sample_service):
|
||||||
|
pending_user = create_user(email='foo@bar.com', state='pending')
|
||||||
|
dao_add_user_to_service(sample_service, pending_user)
|
||||||
|
users = dao_fetch_active_users_for_service(sample_service.id)
|
||||||
|
|
||||||
|
assert len(users) == 1
|
||||||
|
|||||||
@@ -9,13 +9,14 @@ from app.dao.templates_dao import dao_create_template
|
|||||||
from app.dao.services_dao import dao_create_service
|
from app.dao.services_dao import dao_create_service
|
||||||
|
|
||||||
|
|
||||||
def create_user(mobile_number="+447700900986", email="notify@digital.cabinet-office.gov.uk"):
|
def create_user(mobile_number="+447700900986", email="notify@digital.cabinet-office.gov.uk", state='active'):
|
||||||
data = {
|
data = {
|
||||||
|
'id': uuid.uuid4(),
|
||||||
'name': 'Test User',
|
'name': 'Test User',
|
||||||
'email_address': email,
|
'email_address': email,
|
||||||
'password': 'password',
|
'password': 'password',
|
||||||
'mobile_number': mobile_number,
|
'mobile_number': mobile_number,
|
||||||
'state': 'active'
|
'state': state
|
||||||
}
|
}
|
||||||
user = User.query.filter_by(email_address=email).first()
|
user = User.query.filter_by(email_address=email).first()
|
||||||
if not user:
|
if not user:
|
||||||
|
|||||||
Reference in New Issue
Block a user