WIP support fs.files

This commit is contained in:
Eibriel
2015-04-21 17:30:22 -03:00
parent 8c97922bb9
commit 9fc01b219c
4 changed files with 29 additions and 54 deletions

View File

@@ -3,5 +3,6 @@ from .nodes import Node
from .nodes import NodeType
from .users import User
from .files import File
from .binary_files import binaryFile
from .exceptions import ResourceNotFound, UnauthorizedAccess, MissingConfig
from .config import __version__, __pypi_packagename__

28
attractsdk/binary_files.py Executable file
View File

@@ -0,0 +1,28 @@
from .resource import List
from .resource import Find
from .resource import Create
from .resource import Post
from .resource import Update
from .resource import Delete
from .resource import Replace
from . import utils
class binaryFile(List, Find, Create, Post, Update, Delete, Replace):
"""binaryFile class wrapping the REST binary_files endpoint
"""
path = "binary_files"
def post_file(self, file_, api=None):
"""Stores a file on the database.
:param file: A file object
"""
api = api or self.api
url = utils.join_url(self.path)
files = {'data': file_}
print (files)
new_attributes = api.post(url, {}, {}, files)
# self.error = None
self.merge(new_attributes)
return self.success()

View File

@@ -6,36 +6,8 @@ from .resource import Update
from .resource import Delete
from .resource import Replace
from . import utils
class File(List, Find, Create, Post, Update, Delete, Replace):
"""Node class wrapping the REST nodes endpoint
"""
path = "files"
def replace_picture(self, picture_file, api=None):
"""Replaces the picture field in the node.
:param picture_file: A file object
"""
api = api or self.api
attributes = self.to_dict()
etag = attributes['_etag']
attributes.pop('_id')
attributes.pop('_etag')
attributes.pop('_created')
attributes.pop('_updated')
attributes.pop('_links')
if 'parent' in attributes:
attributes.pop('parent')
if 'properties' not in attributes:
attributes['properties'] = {}
url = utils.join_url(self.path, str(self['_id']))
headers = utils.merge_dict(
self.http_headers(),
{'If-Match': str(etag)})
files = {'picture': picture_file}
new_attributes = api.patch(url, attributes, headers, files)
self.error = None
self.merge(new_attributes)
return self.success()

View File

@@ -14,32 +14,6 @@ class Node(List, Find, Create, Post, Update, Delete, Replace):
"""
path = "nodes"
def replace_picture(self, picture_file, api=None):
"""Replaces the picture field in the node.
:param picture_file: A file object
"""
api = api or self.api
attributes = self.to_dict()
etag = attributes['_etag']
attributes.pop('_id')
attributes.pop('_etag')
attributes.pop('_created')
attributes.pop('_updated')
attributes.pop('_links')
if 'parent' in attributes:
attributes.pop('parent')
if 'properties' not in attributes:
attributes['properties'] = {}
url = utils.join_url(self.path, str(self['_id']))
headers = utils.merge_dict(
self.http_headers(),
{'If-Match': str(etag)})
files = {'picture': picture_file}
new_attributes = api.patch(url, attributes, headers, files)
self.error = None
self.merge(new_attributes)
return self.success()
class NodeType(List, Find, Create, Post, Delete):
"""NodeType class wrapping the REST node_types endpoint