Ejemplo n.º 1
0
def update_user_survey_by_id(_id):
    """
    Update/replace existing survey by _id
    """
    survey = Survey()
    content = request.get_json(silent=True, force=True)
    old = 'NO OLD SURVEY FOUND!'
    try:
        old = survey.getByID(_id).serialize()
        return jsonify(success=bool(
            survey.updateByUniqueID(_id, content['survey'], content['tags'],
                                    content['ongoing'])))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except BadValueException as error:
        raise MethodNotAllowed(error.message)
    except SurveyNotFound as error:
        raise SurveyNotFound(_id)
    finally:
        add_to_audit_log(
            'update_user_survey_by_id',
            survey_id=_id,
            new=content,
            old=old,
        )
Ejemplo n.º 2
0
def get_survey_by_id(_id):
    survey = Survey()
    try:
        return jsonify(
            survey.getByUniqueIDAndID(stack.top.uniqueID, _id).serialize())
    except:
        raise SurveyNotFound(_id)
Ejemplo n.º 3
0
def get_all_surveys():
    """
    Get all surveys for all users.
    """
    survey = Survey()
    try:
        return jsonify(surveys=[ob.serialize() for ob in survey.getAll()])
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except BadValueException as error:
        raise MethodNotAllowed(error.message)
    finally:
        add_to_audit_log('get_all_surveys')
Ejemplo n.º 4
0
def get_survey():
    survey = Survey()
    try:
        return jsonify(surveys=[ob.serialize() for ob in survey.getAllByUniqueID(stack.top.uniqueID,
                                                                                 utils.Time.Iso8601ToDatetime(request.args.get('from', None)),
                                                                                 utils.Time.Iso8601ToDatetime(request.args.get('until', None)),
                                                                                 request.args.get('tags').split(',') if request.args.get('tags', None) is not None else None,
                                                                                 utils.json.Json._getJSONBool(request.args.get('ongoing', None)),
                                                                                 )])
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 5
0
def add_survey():
    survey = Survey()
    consent = request.get_json(silent=True, force=True)

    try:
        validate(consent, inputs.survey)
    except ValidationError as error:
        raise MethodNotAllowed(error.message)

    try:
        return jsonify(success=bool(
            survey.addByUniqueID(stack.top.uniqueID, consent['survey'],
                                 consent['tags'], consent['ongoing'])))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 6
0
def add_survey():
    survey = Survey()
    consent = request.get_json(silent=True, force=True)
    
    try:
        validate(consent, inputs.survey)
    except ValidationError as error:
        raise MethodNotAllowed(error.message)
    
    try:
        return jsonify(success=bool(survey.addByUniqueID(stack.top.uniqueID, 
                                                         consent['survey'],
                                                         consent['tags'],
                                                         consent['ongoing'])))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 7
0
def get_survey():
    survey = Survey()
    try:
        return jsonify(surveys=[
            ob.serialize() for ob in survey.getAllByUniqueID(
                stack.top.uniqueID,
                utils.Time.Iso8601ToDatetime(request.args.get('from', None)),
                utils.Time.Iso8601ToDatetime(request.args.get('until', None)),
                request.args.get('tags').split(',') if request.args.
                get('tags', None) is not None else None,
                utils.json.Json._getJSONBool(request.args.get('ongoing',
                                                              None)),
            )
        ])
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 8
0
def delete_survey_by_id(_id):
    """
    Delete existing survey by _id
    """
    survey = Survey()
    old = 'NO OLD SURVEY FOUND!'
    try:
        old = survey.getByID(_id).serialize()
        return jsonify(success=bool(survey.deleteByUniqueID(_id)))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except BadValueException as error:
        raise MethodNotAllowed(error.message)
    except SurveyNotFound as error:
        raise SurveyNotFound(_id)
    finally:
        add_to_audit_log(
            'delete_survey_by_id',
            survey_id=_id,
            old=old,
        )
Ejemplo n.º 9
0
def update_survey_by_id(_id):
    survey = Survey()
    consent = request.get_json(silent=True, force=True)
    
    try:
        survey.getByUniqueIDAndID(stack.top.uniqueID, _id).serialize()
    except:
        raise SurveyNotFound(_id)
    
    try:
        validate(consent, inputs.survey)
    except ValidationError as error:
        raise MethodNotAllowed(error.message)
    
    try:
        return jsonify(success=bool(survey.updateByUniqueIDAndID(stack.top.uniqueID, _id, 
                                                                 consent['survey'],
                                                                 consent['tags'],
                                                                 consent['ongoing'])))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 10
0
def update_survey_by_id(_id):
    survey = Survey()
    consent = request.get_json(silent=True, force=True)

    try:
        survey.getByUniqueIDAndID(stack.top.uniqueID, _id).serialize()
    except:
        raise SurveyNotFound(_id)

    try:
        validate(consent, inputs.survey)
    except ValidationError as error:
        raise MethodNotAllowed(error.message)

    try:
        return jsonify(success=bool(
            survey.updateByUniqueIDAndID(stack.top.uniqueID, _id,
                                         consent['survey'], consent['tags'],
                                         consent['ongoing'])))
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except db.BadValueException as error:
        raise MethodNotAllowed(error.message)
Ejemplo n.º 11
0
def get_all_surveys_by_user(_uid):
    """
    Get all surveys for a given user
    """
    survey = Survey()
    try:
        return jsonify(surveys=[
            ob.serialize() for ob in survey.getAllByUniqueID(
                _uid,
                utils.Time.Iso8601ToDatetime(request.args.get('from', None)),
                utils.Time.Iso8601ToDatetime(request.args.get('until', None)),
                (request.args.get('tags').split(',') if request.args.
                 get('tags', None) is not None else None),
                utils.json.Json._getJSONBool(request.args.get('ongoing',
                                                              None)))
        ])
    except ValueError as error:
        raise MethodNotAllowed(error.message)
    except BadValueException as error:
        raise MethodNotAllowed(error.message)
    except UserNotFound as error:
        raise UserNotFound(_uid)
    finally:
        add_to_audit_log('get_all_surveys_by_user', user_id=_uid)
Ejemplo n.º 12
0
async def get_next_task(survey_id: int,
                        db: Session = Depends(get_db),
                        current_user: User = Depends(get_current_active_user)):
    """Get next task for user"""
    if crud.survey.is_participant(db, survey_id=survey_id, user=current_user):
        task = crud.survey.get_next_task(db,
                                         survey_id=survey_id,
                                         user=current_user)
        return Task(id=task.id,
                    chart1=db_chart_to_model_chart(task.chart1),
                    chart2=db_chart_to_model_chart(task.chart2),
                    created=task.created,
                    survey=Survey(**task.survey.__dict__))
    else:
        raise HTTPException(
            status_code=403,
            detail="User does not have necessary permissions",
        )
Ejemplo n.º 13
0
def get_survey_by_id(_id):
    survey = Survey()
    try:
        return jsonify(survey.getByUniqueIDAndID(stack.top.uniqueID, _id).serialize())
    except:
        raise SurveyNotFound(_id)