Refactored to handle single service permission

This commit is contained in:
Ken Tsang
2017-05-16 10:57:57 +01:00
parent 114d4d84d4
commit 54d801979c
3 changed files with 32 additions and 75 deletions

View File

@@ -10,29 +10,14 @@ def dao_fetch_service_permissions(service_id):
ServicePermission.service_id == service_id).all()
def make_service_permissions_list(service_id, permissions):
arr = []
for permission in permissions:
if permission not in SERVICE_PERMISSION_TYPES:
raise ValueError("'{}' not of service permission type: {}".format(permission, SERVICE_PERMISSION_TYPES))
service_permission = ServicePermission(service_id=service_id, permission=permission)
arr.append(service_permission)
return arr
@transactional
def dao_add_and_commit_service_permissions(service_id, permissions):
service_permissions = make_service_permissions_list(service_id, permissions)
def dao_add_and_commit_service_permission(service_id, permission):
if permission not in SERVICE_PERMISSION_TYPES:
raise ValueError("'{}' not of service permission type: {}".format(permission, SERVICE_PERMISSION_TYPES))
try:
db.session.add_all(service_permissions)
db.session.commit()
except exc.IntegrityError as e:
if "duplicate key value violates unique constraint" in str(e.orig):
raise ValueError(e.orig)
raise
service_permission = ServicePermission(service_id=service_id, permission=permission)
db.session.add(service_permission)
def dao_remove_service_permission(service_id, permission=None):