def newFile(req, resourceId): if not can_edit(req.user, resourceId): return HttpResponseForbidden('You do not have permission to edit this resource') register_openers() theFile = req.FILES['upload-file'] kwargs = { 'name': 'upload-file', 'filename': theFile.name, 'filetype': theFile.content_type, 'filesize': theFile.size, 'fileobj': theFile } params = MultipartParam(**kwargs) datagen, headers = multipart_encode([ params ]) url = '/'.join([ metadataServerUrl, 'metadata/record', resourceId, 'file/' ]) request = urllib2.Request(url, datagen, headers) response = urllib2.urlopen(request) clientResponse = HttpResponse() clientResponse.status_code = response.code clientResponse['Location'] = response.info()['Location'] return clientResponse
def deleteFile(req, resourceId, fileName): if not can_edit(req.user, resourceId): return HttpResponseForbidden('You do not have permission to edit this resource') kwargs = { 'path': '/metadata/record/' + resourceId + '/file/' + fileName, 'method': req.method } return proxyRequest(**kwargs)
def updateResource(req, resourceType, resourceId): if not can_edit(req.user, resourceId, resourceType): return HttpResponseForbidden('You do not have permission to edit this resource') kwargs = { 'path': '/metadata/' + resourceType + '/' + resourceId + '/', 'method': req.method, 'body': req.body, 'headers': { 'Content-Type': 'application/json' } } response = proxyRequest(**kwargs) if response.status_code == 204: kwargs = { 'user': req.user, 'resourceId': resourceId, 'content': json.loads(req.body), 'resourceType': resourceType } track_resource(**kwargs) return response
def deleteResource(req, resourceType, resourceId): if not can_edit(req.user, resourceId, resourceType): return HttpResponseForbidden('You do not have permission to edit this resource') kwargs = { 'path': '/metadata/' + resourceType + '/' + resourceId + '/', 'method': req.method } original = proxyRequest(kwargs['path'], 'GET') if original.status_code == 200: content = json.loads(original.content) response = proxyRequest(**kwargs) if response.status_code == 204: kwargs = { 'user': req.user, 'resourceId': resourceId, 'content': content, 'resourceType': resourceType, 'isDelete': True } track_resource(**kwargs) return response