def getStudentProfileForm():
    studentID = ObjectId(request.json['student_id'])
    form_id = ObjectId(request.json['form_id'])

    form_data = FormsDOM.getFormData(ObjectId(form_id))

    blank_form_id = FormsDOM.getBlankFormId(form_id)
    blank_form_data = blankFormsDOM.getFormData(blank_form_id)

    parent_id = FormsDOM.getInfo(form_id, 'parent_id')
    parent_profile = parentsDOM.getParentProfile(parent_id)
    cleaned_parent_profile = {}
    cleaned_parent_profile['first_name'] = parent_profile['first_name']
    cleaned_parent_profile['last_name'] = parent_profile['last_name']
    cleaned_parent_profile['email'] = parent_profile['email']

    form_info = {}
    form_info['name'] = blankFormsDOM.getFormName(blank_form_id)
    form_info['last_updated'] = FormsDOM.getLastUpdated(form_id)
    form_info['completed'] = FormsDOM.isComplete(form_id)

    isAuthorizedBool = isAuthorized(get_token_auth_header(),
                                    ['developer', 'admin'])
    return {
        'form_data': form_data,
        'blank_form_data': blank_form_data,
        'basic_info': studentsDOM.getBasicInfo(studentID),
        'parent_profile': cleaned_parent_profile,
        'form_info': form_info,
        'isAuthorized': isAuthorizedBool,
    }
def getStudentForms():
    student_id = ObjectId(request.json['student_id'])
    curr_link = request.json['parent_key']
    try:
        parentId = parentsDOM.get(currLink=curr_link)
    except AssertionError as e:
        raise AuthError({'wrong link': True}, 401)

    if studentsDOM.isArchived(student_id):
        raise AuthError({'archived': True}, 401)

    if parentsDOM.isExpired(parent_id):
        emailParent(parent_id, '', 'Your updated link is below:')
        raise AuthError({'expired': True}, 426)

    form_ids = studentsDOM.getAllFormIds(student_id)
    form_data = []
    for id in form_ids:
        if parent_id == FormsDOM.getParentId(id):
            blank_form_data = FormsDOM.getBlankFormId(
                id)  # will assert if formid does not exist
            form_data.append({
                'form_id': str(id),
                'form_name': FormsDOM.getFormName(id),
                'last_updated': FormsDOM.getLastUpdated(id),
                'last_viewed': FormsDOM.getLastViewed(id),
                'completed': FormsDOM.isComplete(id)
            })
    return {
        'form_data': form_data,
        'student_info': studentsDOM.getBasicInfo(student_id),
    }