Skip to content

Commit

Permalink
Add 1-on-1 action items API
Browse files Browse the repository at this point in the history
  • Loading branch information
recrsn committed Jan 25, 2021
1 parent 7f6d69c commit c63b6c8
Showing 1 changed file with 47 additions and 47 deletions.
94 changes: 47 additions & 47 deletions snowflake/controllers/api/one_on_ones.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@

@login_required
@blueprint.route('', methods=['GET'])
def list_all():
def list_all_one_on_one():
return one_on_one_schema.jsonify(OneOnOne.get_by_user(current_user), many=True)


@login_required
@blueprint.route('', methods=['PUT'])
def create():
def create_one_on_one():
if not request.is_json:
return bad_request()

Expand All @@ -47,7 +47,7 @@ def create():

@login_required
@blueprint.route('/<_id>', methods=['GET'])
def get(_id: int):
def get_one_on_one(_id: int):
one_on_one = OneOnOne.get(_id)

if not one_on_one:
Expand All @@ -60,44 +60,25 @@ def get(_id: int):


@login_required
@blueprint.route('/<one_on_one_id>/action_items', methods=['GET'])
def get_action_items(one_on_one_id: int):
one_on_one = OneOnOne.get(one_on_one_id)

if not one_on_one:
return not_found()

if not acl.can_view_one_on_one(one_on_one):
return unauthorized()

return one_on_one_action_item_schema.jsonify(one_on_one.action_items, many=True)


@login_required
@blueprint.route('/<one_on_one_id>/action_items/<action_item_id>', methods=['GET'])
def get_action_item(one_on_one_id: int, action_item_id: int):
one_on_one = OneOnOne.get(one_on_one_id)
@blueprint.route('/<_id>', methods=['DELETE'])
def delete_one_on_one(_id: int):
one_on_one = OneOnOne.get(_id)

if not one_on_one:
return not_found()

if not acl.can_view_one_on_one(one_on_one):
if not acl.can_delete_one_on_one(one_on_one):
return unauthorized()

action_item = OneOnOneActionItem.get(action_item_id)

if not action_item:
return not_found()

if not action_item.one_on_one_id == one_on_one.id:
return not_found()
with transaction():
db.session.remove(one_on_one)

return one_on_one_action_item_schema.jsonify(action_item)
return no_content()


@login_required
@blueprint.route('/<one_on_one_id>/action_items/<action_item_id>', methods=['DELETE'])
def delete_action_item(one_on_one_id: int, action_item_id: int):
@blueprint.route('/<one_on_one_id>/action_items', methods=['GET'])
def list_action_items(one_on_one_id: int):
one_on_one = OneOnOne.get(one_on_one_id)

if not one_on_one:
Expand All @@ -106,18 +87,7 @@ def delete_action_item(one_on_one_id: int, action_item_id: int):
if not acl.can_view_one_on_one(one_on_one):
return unauthorized()

action_item = OneOnOneActionItem.get(action_item_id)

if not action_item:
return not_found()

if not action_item.one_on_one_id == one_on_one.id:
return not_found()

with transaction():
db.session.remove(one_on_one)

return no_content()
return one_on_one_action_item_schema.jsonify(one_on_one.action_items, many=True)


@login_required
Expand Down Expand Up @@ -148,6 +118,28 @@ def create_action_item(one_on_one_id: int):
return validation_error(e.messages)


@login_required
@blueprint.route('/<one_on_one_id>/action_items/<action_item_id>', methods=['GET'])
def get_action_item(one_on_one_id: int, action_item_id: int):
one_on_one = OneOnOne.get(one_on_one_id)

if not one_on_one:
return not_found()

if not acl.can_view_one_on_one(one_on_one):
return unauthorized()

action_item = OneOnOneActionItem.get(action_item_id)

if not action_item:
return not_found()

if not action_item.one_on_one_id == one_on_one.id:
return not_found()

return one_on_one_action_item_schema.jsonify(action_item)


@login_required
@blueprint.route('/<one_on_one_id>/action_items/<action_item_id>', methods=['PATCH'])
def edit_action_item(one_on_one_id: int, action_item_id: int):
Expand Down Expand Up @@ -176,16 +168,24 @@ def edit_action_item(one_on_one_id: int, action_item_id: int):


@login_required
@blueprint.route('/<_id>', methods=['DELETE'])
def delete_one_on_one(_id: int):
one_on_one = OneOnOne.get(_id)
@blueprint.route('/<one_on_one_id>/action_items/<action_item_id>', methods=['DELETE'])
def delete_action_item(one_on_one_id: int, action_item_id: int):
one_on_one = OneOnOne.get(one_on_one_id)

if not one_on_one:
return not_found()

if not acl.can_delete_one_on_one(one_on_one):
if not acl.can_view_one_on_one(one_on_one):
return unauthorized()

action_item = OneOnOneActionItem.get(action_item_id)

if not action_item:
return not_found()

if not action_item.one_on_one_id == one_on_one.id:
return not_found()

with transaction():
db.session.remove(one_on_one)

Expand Down

0 comments on commit c63b6c8

Please sign in to comment.