Ejemplo n.º 1
0
    def get(self, request):
        # Check if file exists
        # print "GET: SIZE"
        response = HttpResponse()
        print request.GET['file']

        upload_id = request.GET.get('uid')
        token = request.GET.get('token')
        try:
            print jwt.decode(token, SECRET_KEY)
        except:
            return Response('Authentication expired', status=401)

        print upload_id
        if upload_id != '':
            # queryset = MyChunkedUpload.objects.all()
            # chunked_uploaded = queryset.filter(upload_id=upload_id)
            chunked_uploaded = get_object_or_404(MyChunkedUpload,
                                                 upload_id=upload_id)
            print chunked_uploaded
            try:
                print chunked_uploaded.file
                print type(chunked_uploaded.file)
                print chunked_uploaded.file.open
                size = chunked_uploaded.file.size
                print 'SIZE is: ' + str(size)
                return Response({'size': size}, status=200)
            except IOError:
                return Response({'size': 0}, status=200)
        else:
            return Response({'size': 0}, status=200)
Ejemplo n.º 2
0
 def get(self, request):
     token = request.GET['token']
     try:
         decoded = jwt.decode(token, SECRET_KEY)
     except:
         return Response('Authentication expired', status=404)
     all_meta = Metadata.objects.all()
     answer = []
     for meta in all_meta:
         entry = Metadata.objects.get(id=meta.id)
         data = serializers.serialize("json", [
             entry,
         ])
         struct = json.loads(data)[0]
         files = MyChunkedUpload.objects.filter(meta_id=meta.id)
         struct["fields"]["user"] = User.objects.get(
             id=meta.user_id).username
         struct["fields"]["n_files"] = len(files)
         struct["fields"]["files"] = [f.id for f in files]
         struct["fields"]["file_names"] = ' '.join(
             [f.filename for f in files])
         answer.append(struct)
     # t = json.dumps([[obj for meta in ibj] for obj in answer])
     # print t
     # data = serializers.serialize("json", answer, fields=('files','n_files', 'user_id'))
     return Response(json.dumps(answer), mimetype='application/json')
Ejemplo n.º 3
0
    def post(self, request):
        metadata = json.loads(request.POST.get('meta'))
        print metadata
        meta_uid = metadata['meta_uid']
        print meta_uid
        token = request.POST.get('token')
        print token
        upload_id = request.POST.get('upload_id')
        print upload_id
        try:
            decoded = jwt.decode(token, SECRET_KEY)
        except:
            return Response('Authentication expired', status=404)

        user = User.objects.get(id=decoded['user_id'])
        print 'Vamos a probar...'
        meta = Metadata.objects.filter(uid=meta_uid)
        if len(meta) == 0:
            print 'PRIMERA VEZ!!!'
            meta = Metadata(
                user=user,
                uid=meta_uid,
                sequencing_platform=metadata['sequencing_platform'],
                sequencing_type=metadata['sequencing_type'],
                pre_assembled=metadata['pre_assembled'],
                isolation_source=metadata['isolation_source'],
                pathogenic=metadata['pathogenic'],
                sample_name=metadata['sample_name'],
                longitude=metadata['longitude'],
                latitude=metadata['latitude'],
                organism=metadata['organism'],
                strain=metadata['strain'],
                subtype=metadata['subtype'],
                country=metadata['country'],
                region=metadata['region'],
                city=metadata['city'],
                zip_code=metadata['zip_code'],
                location_note=metadata['location_note'],
                source_note=metadata['source_note'],
                pathogenicity_note=metadata['pathogenicity_note'],
                collected_by=metadata['collected_by'],
                email_address=metadata['email_address'],
                notes=metadata['notes'],
                collection_date=metadata['collection_date'],
                release_date=metadata['release_date'])
            meta.save()
        else:
            print 'YA EXISTIAAAAA'
            meta = meta[0]
            print meta
        print meta_uid
        files = MyChunkedUpload.objects.filter(meta_uid=meta_uid)
        print files
        for file in files:
            print meta
            file.meta_id = meta
            file.save()
        return Response('Everything went accordint to plan...', status=200)
Ejemplo n.º 4
0
 def post(self, request, *args, **kwargs):
     """
     Handle POST requests.
     """
     try:
         self.check_permissions(request)
         try:
             print jwt.decode(request.POST.get('token'), SECRET_KEY)
         except:
             return Response('Authentication expired', status=401)
         return self._post(request, *args, **kwargs)
     except ChunkedUploadError as error:
         return Response(error.data, status=error.status_code)
Ejemplo n.º 5
0
 def post(self, request, *args, **kwargs):
     """
     Handle POST requests.
     """
     print "POST starts..."
     try:
         token = request.POST.get('token')
         try:
             print jwt.decode(token, SECRET_KEY)
             print "Everything fine..."
         except:
             return Response('Authentication expired', status=401)
         return self._post(request, *args, **kwargs)
         # return Response({}, status=200)
     except ChunkedUploadError as error:
         return Response(error.data, status=error.status_code)
Ejemplo n.º 6
0
    def _post(self, request, *args, **kwargs):
        upload_id = request.POST.get('upload_id')
        md5 = request.POST.get('md5')

        error_msg = None
        if self.do_md5_check:
            if not upload_id or not md5:
                error_msg = "Both 'upload_id' and 'md5' are required"
        elif not upload_id:
            error_msg = "'upload_id' is required"
        if error_msg:
            raise ChunkedUploadError(status=http_status.HTTP_400_BAD_REQUEST,
                                     detail=error_msg)

        chunked_upload = get_object_or_404(self.get_queryset(request),
                                           upload_id=upload_id)

        self.validate(request)
        self.is_valid_chunked_upload(chunked_upload)
        if self.do_md5_check:
            self.md5_check(chunked_upload, md5)

        chunked_upload.status = COMPLETE
        chunked_upload.completed_on = timezone.now()
        self._save(chunked_upload)
        self.on_completion(chunked_upload, request)

        return Response(self.get_response_data(chunked_upload, request),
                        status=http_status.HTTP_200_OK)
Ejemplo n.º 7
0
 def get(self, request):
     token = request.GET['token']
     file_id = request.GET['file_id']
     try:
         decoded = jwt.decode(token, SECRET_KEY)
     except:
         return Response('Authentication expired', status=404)
     fileUploaded = MyChunkedUpload.objects.get(id=file_id)
     fileToDownload = fileUploaded.get_uploaded_file()
     print fileUploaded.filename
     print fileUploaded.file.size
     response = StreamingHttpResponse(
         FileWrapper(fileToDownload, 1024 * 1024),
         content_type="application/octet-stream")
     response[
         'Content-Disposition'] = 'attachment; filename="' + fileUploaded.filename + '"'
     response['Content-Length'] = fileUploaded.file.size
     return response
Ejemplo n.º 8
0
 def options(request):
     # print "OPTIONS: SIZE"
     response = HttpResponse()
     return Response({'size': 0}, status=200)
Ejemplo n.º 9
0
    def on_completion(self, uploaded_file, request):
        # Do something with the uploaded file. E.g.:
        # * Store the uploaded file on another model:
        # SomeModel.objects.create(user=request.user, file=uploaded_file)
        # * Pass it as an argument to a function:
        # function_that_process_file(uploaded_file)
        upload_id = request.POST.get('upload_id')
        metadata = json.loads(request.POST.get('meta'))
        meta_uid = metadata['meta_uid']
        chunked_upload = get_object_or_404(self.get_queryset(request),
                                           upload_id=upload_id)
        chunked_upload.meta_uid = meta_uid
        chunked_upload.save()
        #  Save Metadata
        metadata = json.loads(request.POST.get('meta'))
        print metadata
        meta_uid = metadata['meta_uid']
        print meta_uid
        token = request.POST.get('token')
        print token
        upload_id = request.POST.get('upload_id')
        print upload_id
        try:
            decoded = jwt.decode(token, SECRET_KEY)
        except:
            return Response('Authentication expired', status=404)

        user = User.objects.get(id=decoded['user_id'])
        print 'Vamos a probar...'
        meta = Metadata.objects.filter(uid=meta_uid)
        if len(meta) == 0:
            print 'PRIMERA VEZ!!!'
            meta = Metadata(
                user=user,
                uid=meta_uid,
                sequencing_platform=metadata['sequencing_platform'],
                sequencing_type=metadata['sequencing_type'],
                pre_assembled=metadata['pre_assembled'],
                isolation_source=metadata['isolation_source'],
                pathogenic=metadata['pathogenic'],
                sample_name=metadata['sample_name'],
                longitude=metadata['longitude'],
                latitude=metadata['latitude'],
                organism=metadata['organism'],
                strain=metadata['strain'],
                subtype=metadata['subtype'],
                country=metadata['country'],
                region=metadata['region'],
                city=metadata['city'],
                zip_code=metadata['zip_code'],
                location_note=metadata['location_note'],
                source_note=metadata['source_note'],
                pathogenicity_note=metadata['pathogenicity_note'],
                collected_by=metadata['collected_by'],
                email_address=metadata['email_address'],
                notes=metadata['notes'],
                collection_date=metadata['collection_date'],
                release_date=metadata['release_date'])
            try:
              meta.save()
            except:
              print 'Pues ha dado error...'
              meta = Metadata.objects.filter(uid=meta_uid)
              meta = meta[0]
        else:
            print 'YA EXISTIAAAAA'
            meta = meta[0]
            print meta
        print meta_uid
        files = MyChunkedUpload.objects.filter(meta_uid=meta_uid)
        print files
        for file in files:
            print meta
            file.meta_id = meta
            file.save()
Ejemplo n.º 10
0
 def options(self, request):
     # print "OPTIONS CHUNKS..."
     return Response({'size': 0}, status=200)
Ejemplo n.º 11
0
 def post(self, request):
     request_json = json.loads(smart_text(request.body))
     print request_json
     token = request_json['token']
     new_payload = self.refresh(token)
     return Response(json.dumps(new_payload), mimetype='application/json')