Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
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
Пример #6
0
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)