mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
160 lines
5.3 KiB
Python
160 lines
5.3 KiB
Python
from ..service import Service
|
|
|
|
|
|
class Database(Service):
|
|
|
|
def __init__(self, client):
|
|
super(Database, self).__init__(client)
|
|
|
|
def list_collections(self, search='', limit=25, offset=0, order_type='ASC'):
|
|
"""List Collections"""
|
|
|
|
params = {}
|
|
path = '/database/collections'
|
|
params['search'] = search
|
|
params['limit'] = limit
|
|
params['offset'] = offset
|
|
params['orderType'] = order_type
|
|
|
|
return self.client.call('get', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def create_collection(self, name, read, write, rules):
|
|
"""Create Collection"""
|
|
|
|
params = {}
|
|
path = '/database/collections'
|
|
params['name'] = name
|
|
params['read'] = read
|
|
params['write'] = write
|
|
params['rules'] = rules
|
|
|
|
return self.client.call('post', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def get_collection(self, collection_id):
|
|
"""Get Collection"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
|
|
return self.client.call('get', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def update_collection(self, collection_id, name, read, write, rules=[]):
|
|
"""Update Collection"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
params['name'] = name
|
|
params['read'] = read
|
|
params['write'] = write
|
|
params['rules'] = rules
|
|
|
|
return self.client.call('put', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def delete_collection(self, collection_id):
|
|
"""Delete Collection"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
|
|
return self.client.call('delete', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def list_documents(self, collection_id, filters=[], offset=0, limit=50, order_field='$id', order_type='ASC', order_cast='string', search='', first=0, last=0):
|
|
"""List Documents"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/documents'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
params['filters'] = filters
|
|
params['offset'] = offset
|
|
params['limit'] = limit
|
|
params['orderField'] = order_field
|
|
params['orderType'] = order_type
|
|
params['orderCast'] = order_cast
|
|
params['search'] = search
|
|
params['first'] = first
|
|
params['last'] = last
|
|
|
|
return self.client.call('get', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def create_document(self, collection_id, data, read, write, parent_document='', parent_property='', parent_property_type='assign'):
|
|
"""Create Document"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/documents'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
params['data'] = data
|
|
params['read'] = read
|
|
params['write'] = write
|
|
params['parentDocument'] = parent_document
|
|
params['parentProperty'] = parent_property
|
|
params['parentPropertyType'] = parent_property_type
|
|
|
|
return self.client.call('post', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def get_document(self, collection_id, document_id):
|
|
"""Get Document"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/documents/{documentId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
path = path.replace('{documentId}', document_id)
|
|
|
|
return self.client.call('get', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def update_document(self, collection_id, document_id, data, read, write):
|
|
"""Update Document"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/documents/{documentId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
path = path.replace('{documentId}', document_id)
|
|
params['data'] = data
|
|
params['read'] = read
|
|
params['write'] = write
|
|
|
|
return self.client.call('patch', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def delete_document(self, collection_id, document_id):
|
|
"""Delete Document"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/documents/{documentId}'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
path = path.replace('{documentId}', document_id)
|
|
|
|
return self.client.call('delete', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|
|
|
|
def get_collection_logs(self, collection_id):
|
|
"""Get Collection Logs"""
|
|
|
|
params = {}
|
|
path = '/database/collections/{collectionId}/logs'
|
|
path = path.replace('{collectionId}', collection_id)
|
|
|
|
return self.client.call('get', path, {
|
|
'content-type': 'application/json',
|
|
}, params)
|