Beispiel #1
0
def study_isatab(request, q, format=None):
    """
    Generate ISA-TAB archive for a study
    ---
    parameters:
        - name: q
          description: the primary id or doi of the study
          required: true
          type: string
          paramType: path

    produces:
        - application/zip
    """
    doi = _is_doi(DOI_PATTERN_STUDY, q)
    try:
        id = doi if doi else int(q)
        study = Study.objects.published().get(pk=id)
    except:
        return HttpResponse(status=404)

    isa_tab_file = export_isatab(study)
    zip_file = open(isa_tab_file, 'rb')
    response = FileResponse(zip_file, content_type='application/zip')
    #response = HttpResponse(FileWrapper(zip_file), content_type='application/zip',content_transfer_encoding='binary')
    response.setdefault('Content-Transfer-Encoding', 'binary')
    response[
        'Content-Disposition'] = 'attachment; filename="isatab_study_%s.zip"' % study.id
    os.unlink(isa_tab_file)
    return response
 def file_response():
     if not default_storage.exists(filename):
         raise FileNotFoundError
     if time.time() - default_storage.get_modified_time(
             filename).timestamp() > settings.ICS_EXPIRATION:
         raise ExpiredFileError
     response = FileResponse(default_storage.open(filename),
                             as_attachment=True,
                             content_type='text/calendar',
                             filename=f'{lc.username}.ics')
     response.setdefault('Content-Length', default_storage.size(filename))
     return response
Beispiel #3
0
def arapheno_db_archive(request, format=None):
    """
    Generate archive containing all studies in AraPheno
    ---
    produces:
        - application/zip
    """
    # Get all published studies IDs
    arapheno_db_file = _export_arapheno()

    zip_file = open(arapheno_db_file, 'rb')
    response = FileResponse(zip_file, content_type='application/zip')
    #response = HttpResponse(FileWrapper(zip_file), content_type='application/zip',content_transfer_encoding='binary')
    response.setdefault('Content-Transfer-Encoding', 'binary')
    response['Content-Disposition'] = 'attachment; filename="arapheno.zip"'
    os.unlink(arapheno_db_file)
    return response