def ListDataApiView(request): """ List all data entries for the user """ if not hal.validate_version(request.META.get('HTTP_ACCEPT')): return Response('Invalid version requested', status=status.HTTP_406_NOT_ACCEPTABLE) listing_root_url = hal.get_abs_url_for_iwc( request ) # flake8: noqa TODO: Is Necessary? - Variable not being used in method data = hal.create_base_structure( request, hal.generate_content_type(request.accepted_media_type)) keys = model_access.get_all_keys(request.user.username) embedded_items = [] for k in keys: # remove the leading / k = k[1:] url = hal.get_abs_url_for_iwc(request) + 'self/data/' + k data = hal.add_link_item( url, data, hal.generate_content_type( renderers.DataObjectResourceRenderer.media_type)) # add data items to _embedded key = '/' + k try: instance = model_access.get_data_resource(request.user.username, key) if not instance: return Response(status=status.HTTP_404_NOT_FOUND) serializer = serializers.DataResourceSerializer(instance, data=request.data, context={ 'request': request, 'key': key }, partial=True) if not serializer.is_valid(): logger.error('{0!s}'.format(serializer.errors)) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) item = hal.add_hal_structure( serializer.data, request, hal.generate_content_type( renderers.DataObjectResourceRenderer.media_type)) item['_links']['self']['href'] += k embedded_items.append(item) except Exception as e: # TODO debug raise e data['_embedded']['item'] = embedded_items return Response(data)
def ListDataApiView(request): """ List all data entries for the user """ if not hal.validate_version(request.META.get('HTTP_ACCEPT')): return Response('Invalid version requested', status=status.HTTP_406_NOT_ACCEPTABLE) listing_root_url = hal.get_abs_url_for_iwc(request) data = hal.create_base_structure(request, hal.generate_content_type(request.accepted_media_type)) keys = model_access.get_all_keys(request.user.username) embedded_items = [] for k in keys: # remove the leading / k = k[1:] url = hal.get_abs_url_for_iwc(request) + 'self/data/' + k data = hal.add_link_item(url, data, hal.generate_content_type( renderers.DataObjectResourceRenderer.media_type)) # add data items to _embedded key = '/' + k try: instance = model_access.get_data_resource(request.user.username, key) if not instance: return Response(status=status.HTTP_404_NOT_FOUND) serializer = serializers.DataResourceSerializer(instance, data=request.data, context={'request': request, 'key': key}, partial=True) if not serializer.is_valid(): logger.error('%s' % serializer.errors) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) item = hal.add_hal_structure(serializer.data, request, hal.generate_content_type( renderers.DataObjectResourceRenderer.media_type)) item['_links']['self']['href'] += k embedded_items.append(item) except Exception as e: # TODO debug raise e data['_embedded']['item'] = embedded_items return Response(data)
def test_get_all_keys(self): keys = model_access.get_all_keys('wsmith') # flake8: noqa