mirror of
https://github.com/GSA/notifications-api.git
synced 2026-04-12 05:09:35 -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):
|
||||
service = Service.query.get(service_id)
|
||||
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,
|
||||
fetch_stats_by_date_range_for_all_services,
|
||||
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.models import (
|
||||
@@ -49,6 +50,7 @@ from app.models import (
|
||||
KEY_TYPE_TEST
|
||||
)
|
||||
|
||||
from tests.app.db import create_user
|
||||
from tests.app.conftest import (
|
||||
sample_notification as create_notification,
|
||||
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 str(template_one.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
|
||||
|
||||
|
||||
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 = {
|
||||
'id': uuid.uuid4(),
|
||||
'name': 'Test User',
|
||||
'email_address': email,
|
||||
'password': 'password',
|
||||
'mobile_number': mobile_number,
|
||||
'state': 'active'
|
||||
'state': state
|
||||
}
|
||||
user = User.query.filter_by(email_address=email).first()
|
||||
if not user:
|
||||
|
||||
Reference in New Issue
Block a user