def api_projects_moments(proj_id, moment_id): if not auth_consultant(): abort(401) if request.method == "DELETE": try: if not db_models.Project(proj_id).consultant_is_assigned( get_active_consultant()): abort(401) m = db_models.Moment(moment_id) if not m.parent_participant.project_id == int(proj_id): abort(400) return m.delete_from_db().to_json() except db_models.MomentNotFoundError: abort(404) except db_models.ProjectNotFound: abort(404) except: abort(400)
def api_project_moment_comment(proj_id, moment_id, comment_id): if not auth_consultant(): abort(401) if request.method == "DELETE": try: if not db_models.Project(proj_id).consultant_is_assigned( get_active_consultant()): abort(401) c = db_models.MomentComment(comment_id) if c.parent_moment_id != int(moment_id) or db_models.Moment( moment_id).parent_participant.project_id != int(proj_id): abort(400) c.delete_from_db() return "MomentComment ID {} deleted".format(c.id), 200 except db_models.MomentCommentNotFoundError: abort(404) except db_models.ProjectNotFound: abort(404) except db_models.MomentNotFoundError: abort(404) except: abort(400)
def add_participant_moment_comment(p_id, moment_id): if auth_participant(p_id): comment_text = request.values['text'] if len(comment_text) > 0: new_comment_id = db_models.Moment(moment_id).add_comment( comment_text) return json.dumps({'new_comment_id': new_comment_id}) else: abort(400) else: abort(401)
def set_project_moment_active_state(proj_id, moment_id): if not auth_consultant(): abort(401) try: m = db_models.Moment(moment_id) m.mark_for_download = 1 if request.values[ 'mark_download'] == 'true' else 0 m.update_in_db() return m.to_json() except db_models.MomentNotFoundError: abort(404)
def add_project_moment_comment(proj_id, moment_id): if not auth_consultant(): abort(401) consultant = get_active_consultant() try: comment_id = db_models.Moment(moment_id).add_comment( request.values['comment_text'], consultant) return str(comment_id) except db_models.ConsultantNotAssignedToProjectError: return 'Only assigned consultants can comment on project moments', 401
def delete_participant_moment(p_id, moment_id): if auth_consultant() or auth_participant(p_id): try: moment_to_delete = db_models.Moment(moment_id) if moment_to_delete.parent_participant_id != int(p_id): abort( 401) # Not the correct participant therefore cannot delete moment_to_delete.delete_from_db() return moment_to_delete.to_json() except db_models.MomentNotFoundError: abort(400) else: abort(401)