mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 07:35:34 -05:00
Working permissions and all tests passing.
Remove print statements. Fix for review comments.
This commit is contained in:
0
app/permission/__init__.py
Normal file
0
app/permission/__init__.py
Normal file
54
app/permission/rest.py
Normal file
54
app/permission/rest.py
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
from flask import (jsonify, request, abort, Blueprint, current_app)
|
||||
from app.schemas import permission_schema
|
||||
from app.errors import register_errors
|
||||
from app.dao.permissions_dao import permission_dao
|
||||
|
||||
permission = Blueprint('permission', __name__)
|
||||
register_errors(permission)
|
||||
|
||||
|
||||
@permission.route('', methods=['GET'])
|
||||
def get_permissions():
|
||||
data, errors = permission_schema.dump(
|
||||
permission_dao.get_query(filter_by_dict=request.args), many=True)
|
||||
if errors:
|
||||
abort(500, errors)
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@permission.route('/<permission_id>', methods=['GET'])
|
||||
def get_permission(permission_id):
|
||||
inst = permission_dao.get_query(filter_by_dict={'id': permission_id}).first()
|
||||
if not inst:
|
||||
abort(404, 'Permission not found for id: {permission_id}'.format(permission_id))
|
||||
data, errors = permission_schema.dump(inst)
|
||||
if errors:
|
||||
abort(500, errors)
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@permission.route('', methods=['POST'])
|
||||
def create_permission():
|
||||
inst, errors = permission_schema.load(request.get_json())
|
||||
if errors:
|
||||
abort(400, errors)
|
||||
# Commit instance to the database
|
||||
permission_dao.create_instance(inst)
|
||||
data, errors = permission_schema.dump(inst)
|
||||
if errors:
|
||||
abort(500, errors)
|
||||
return jsonify(data=data), 201
|
||||
|
||||
|
||||
@permission.route('/<permission_id>', methods=['DELETE'])
|
||||
def delete_permission(permission_id):
|
||||
inst = permission_dao.get_query(filter_by_dict={'id': permission_id}).first()
|
||||
if not inst:
|
||||
abort(404, 'Permission not found for id: {permission_id}'.format(permission_id))
|
||||
# Generate response first
|
||||
data, errors = permission_schema.dump(inst)
|
||||
permission_dao.delete_instance(inst)
|
||||
if errors:
|
||||
abort(500, errors)
|
||||
return jsonify(data=data), 200
|
||||
Reference in New Issue
Block a user