def zenodo_project_download_helper(is_record, project_name, project_helper, files):
    """
    Downloads a full project from Zenodo and returns the expected list of dictionaries.

    Parameters
    ----------
    is_record : bool
        Flag for if the resource is a published record
    project_name : str
        The name of the project.
    project_helper : dict
        JSON payload from Zenodo API
    files: list
        The list to append the file to.

    Returns
    -------
        The list of files.
    """
    if is_record is True:
        for resource in project_helper['files']:
            files.append({
                "file": resource['links']['self'],
                "hashes": {'md5': resource['checksum'].partition(':')[2]},
                "title": resource['key'],
                "path": "/{}/{}".format(project_name, resource['key']),
                "source_path": "/{}/{}".format(project_name, resource['key']),
                "extra_metadata": {}})
    else:
        for resource in project_helper['files']:
            files.append({
                "file": resource['links']['download'],
                "hashes": {'md5': resource['checksum']},
                "title": resource['filename'],
                "path": "/{}/{}".format(project_name, resource['filename']),
                "source_path": "/{}/{}".format(project_name, resource['filename']),
                "extra_metadata": {}})

    return files