mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-31 23:26:23 -05:00
Refactored to handle single service permission
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user