[WIP] use correct dao function for adding user to service.

Check for no user returned from user dao and return correct
error message.
This commit is contained in:
Adam Shimali
2016-03-01 15:36:31 +00:00
parent 3b66745677
commit 993bdc8055
2 changed files with 32 additions and 3 deletions

View File

@@ -19,8 +19,10 @@ from app.dao.services_dao import (
dao_fetch_all_services, dao_fetch_all_services,
dao_create_service, dao_create_service,
dao_update_service, dao_update_service,
dao_fetch_all_services_by_user dao_fetch_all_services_by_user,
dao_add_user_to_service
) )
from app.dao.users_dao import get_model_users from app.dao.users_dao import get_model_users
from app.models import ApiKey from app.models import ApiKey
from app.schemas import ( from app.schemas import (
@@ -162,12 +164,15 @@ def add_user_to_service(service_id, user_id):
return _service_not_found(service_id) return _service_not_found(service_id)
user = get_model_users(user_id=user_id) user = get_model_users(user_id=user_id)
if not user:
return jsonify(result='error',
message='User not found for id: {}'.format(user_id)), 400
if user in service.users: if user in service.users:
return jsonify(result='error', return jsonify(result='error',
message='User id: {} already part of service id: {}'.format(user_id, service_id)), 400 message='User id: {} already part of service id: {}'.format(user_id, service_id)), 400
service.users.append(user) dao_add_user_to_service(service, user)
dao_update_service(service)
data, errors = service_schema.dump(service) data, errors = service_schema.dump(service)
return jsonify(data=data), 201 return jsonify(data=data), 201

View File

@@ -575,6 +575,30 @@ def test_add_existing_user_of_service_to_service_returns400(notify_api, notify_d
assert result['message'] == expected_message assert result['message'] == expected_message
def test_add_unknown_user_to_service_returns400(notify_api, notify_db, notify_db_session, sample_service):
with notify_api.test_request_context():
with notify_api.test_client() as client:
incorrect_id = 9876
auth_header = create_authorization_header(
path='/service/{}/users/{}'.format(sample_service.id, incorrect_id),
method='POST'
)
resp = client.post(
'/service/{}/users/{}'.format(sample_service.id, incorrect_id),
headers=[('Content-Type', 'application/json'), auth_header]
)
result = json.loads(resp.get_data(as_text=True))
expected_message = 'User not found for id: {}'.format(incorrect_id)
assert resp.status_code == 400
assert result['result'] == 'error'
assert result['message'] == expected_message
def _user_email_in_list(user_list, email_address): def _user_email_in_list(user_list, email_address):
for user in user_list: for user in user_list:
if user['email_address'] == email_address: if user['email_address'] == email_address: