Refactored dao_update_organisation

This commit is contained in:
Ken Tsang
2017-07-11 18:18:23 +01:00
parent 106d59006b
commit 0c77f2d010
3 changed files with 19 additions and 8 deletions

View File

@@ -14,3 +14,10 @@ def dao_get_organisation_by_id(org_id):
@transactional @transactional
def dao_create_organisation(organisation): def dao_create_organisation(organisation):
db.session.add(organisation) db.session.add(organisation)
@transactional
def dao_update_organisation(organisation, **kwargs):
for key, value in kwargs.items():
setattr(organisation, key, value)
db.session.add(organisation)

View File

@@ -4,6 +4,7 @@ from app.dao.organisations_dao import (
dao_create_organisation, dao_create_organisation,
dao_get_organisations, dao_get_organisations,
dao_get_organisation_by_id, dao_get_organisation_by_id,
dao_update_organisation
) )
from app.errors import register_errors from app.errors import register_errors
from app.models import Organisation from app.models import Organisation
@@ -45,7 +46,6 @@ def update_organisation(organisation_id):
validate(data, post_update_organisation_schema) validate(data, post_update_organisation_schema)
fetched_organisation = dao_get_organisation_by_id(organisation_id) fetched_organisation = dao_get_organisation_by_id(organisation_id)
for key in data.keys(): dao_update_organisation(fetched_organisation, **data)
setattr(fetched_organisation, key, data[key])
return jsonify(data=fetched_organisation.serialize()), 200 return jsonify(data=fetched_organisation.serialize()), 200

View File

@@ -4,7 +4,8 @@ from sqlalchemy.exc import IntegrityError
from app.dao.organisations_dao import ( from app.dao.organisations_dao import (
dao_create_organisation, dao_create_organisation,
dao_get_organisations, dao_get_organisations,
dao_get_organisation_by_id dao_get_organisation_by_id,
dao_update_organisation,
) )
from app.models import Organisation from app.models import Organisation
@@ -57,11 +58,14 @@ def test_update_organisation(notify_db, notify_db_session):
updated_name = 'new name' updated_name = 'new name'
organisation = create_organisation() organisation = create_organisation()
organisation_from_db = Organisation.query.first() organisations_1 = Organisation.query.all()
assert organisation_from_db.name != updated_name
setattr(organisation_from_db, 'name', updated_name) assert len(organisations_1) == 1
assert organisations_1[0].name != updated_name
organisation_from_db_again = Organisation.query.first() dao_update_organisation(organisations_1[0], name=updated_name)
assert organisation_from_db_again.name == updated_name organisations_2 = Organisation.query.all()
assert len(organisations_2) == 1
assert organisations_2[0].name == updated_name