appwrite
Version:
Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API
407 lines (406 loc) • 26.1 kB
TypeScript
import { Client } from '../client';
import type { Models } from '../models';
export declare class Databases {
client: Client;
constructor(client: Client);
/**
* List transactions across all databases.
*
* @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries).
* @throws {AppwriteException}
* @returns {Promise<Models.TransactionList>}
*/
listTransactions(params?: {
queries?: string[];
}): Promise<Models.TransactionList>;
/**
* List transactions across all databases.
*
* @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries).
* @throws {AppwriteException}
* @returns {Promise<Models.TransactionList>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
listTransactions(queries?: string[]): Promise<Models.TransactionList>;
/**
* Create a new transaction.
*
* @param {number} params.ttl - Seconds before the transaction expires.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
*/
createTransaction(params?: {
ttl?: number;
}): Promise<Models.Transaction>;
/**
* Create a new transaction.
*
* @param {number} ttl - Seconds before the transaction expires.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
createTransaction(ttl?: number): Promise<Models.Transaction>;
/**
* Get a transaction by its unique ID.
*
* @param {string} params.transactionId - Transaction ID.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
*/
getTransaction(params: {
transactionId: string;
}): Promise<Models.Transaction>;
/**
* Get a transaction by its unique ID.
*
* @param {string} transactionId - Transaction ID.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
getTransaction(transactionId: string): Promise<Models.Transaction>;
/**
* Update a transaction, to either commit or roll back its operations.
*
* @param {string} params.transactionId - Transaction ID.
* @param {boolean} params.commit - Commit transaction?
* @param {boolean} params.rollback - Rollback transaction?
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
*/
updateTransaction(params: {
transactionId: string;
commit?: boolean;
rollback?: boolean;
}): Promise<Models.Transaction>;
/**
* Update a transaction, to either commit or roll back its operations.
*
* @param {string} transactionId - Transaction ID.
* @param {boolean} commit - Commit transaction?
* @param {boolean} rollback - Rollback transaction?
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
updateTransaction(transactionId: string, commit?: boolean, rollback?: boolean): Promise<Models.Transaction>;
/**
* Delete a transaction by its unique ID.
*
* @param {string} params.transactionId - Transaction ID.
* @throws {AppwriteException}
* @returns {Promise<{}>}
*/
deleteTransaction(params: {
transactionId: string;
}): Promise<{}>;
/**
* Delete a transaction by its unique ID.
*
* @param {string} transactionId - Transaction ID.
* @throws {AppwriteException}
* @returns {Promise<{}>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
deleteTransaction(transactionId: string): Promise<{}>;
/**
* Create multiple operations in a single transaction.
*
* @param {string} params.transactionId - Transaction ID.
* @param {object[]} params.operations - Array of staged operations.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
*/
createOperations(params: {
transactionId: string;
operations?: object[];
}): Promise<Models.Transaction>;
/**
* Create multiple operations in a single transaction.
*
* @param {string} transactionId - Transaction ID.
* @param {object[]} operations - Array of staged operations.
* @throws {AppwriteException}
* @returns {Promise<Models.Transaction>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
createOperations(transactionId: string, operations?: object[]): Promise<Models.Transaction>;
/**
* Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
* @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.
* @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.
* @param {number} params.ttl - TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).
* @throws {AppwriteException}
* @returns {Promise<Models.DocumentList<Document>>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.listRows` instead.
*/
listDocuments<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
queries?: string[];
transactionId?: string;
total?: boolean;
ttl?: number;
}): Promise<Models.DocumentList<Document>>;
/**
* Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
* @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.
* @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.
* @param {number} ttl - TTL (seconds) for cached responses when caching is enabled for select queries. Must be between 0 and 86400 (24 hours).
* @throws {AppwriteException}
* @returns {Promise<Models.DocumentList<Document>>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
listDocuments<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean, ttl?: number): Promise<Models.DocumentList<Document>>;
/**
* Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents.
* @param {string} params.documentId - Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>} params.data - Document data as JSON object.
* @param {string[]} params.permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.createRow` instead.
*/
createDocument<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>;
permissions?: string[];
transactionId?: string;
}): Promise<Document>;
/**
* Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection). Make sure to define attributes before creating documents.
* @param {string} documentId - Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>} data - Document data as JSON object.
* @param {string[]} permissions - An array of permissions strings. By default, only the current user is granted all permissions. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
createDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Omit<Document, keyof Models.Document>, permissions?: string[], transactionId?: string): Promise<Document>;
/**
* Get a document by its unique ID. This endpoint response returns a JSON object with the document data.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string} params.documentId - Document ID.
* @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
* @param {string} params.transactionId - Transaction ID to read uncommitted changes within the transaction.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.getRow` instead.
*/
getDocument<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
queries?: string[];
transactionId?: string;
}): Promise<Document>;
/**
* Get a document by its unique ID. This endpoint response returns a JSON object with the document data.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string} documentId - Document ID.
* @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long.
* @param {string} transactionId - Transaction ID to read uncommitted changes within the transaction.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
getDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, queries?: string[], transactionId?: string): Promise<Document>;
/**
* Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.documentId - Document ID.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} params.data - Document data as JSON object. Include all required attributes of the document to be created or updated.
* @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.upsertRow` instead.
*/
upsertDocument<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>;
permissions?: string[];
transactionId?: string;
}): Promise<Document>;
/**
* Create or update a Document. Before using this route, you should create a new collection resource using either a [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection) API or directly from your database console.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} documentId - Document ID.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} data - Document data as JSON object. Include all required attributes of the document to be created or updated.
* @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
upsertDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string): Promise<Document>;
/**
* Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.documentId - Document ID.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} params.data - Document data as JSON object. Include only attribute and value pairs to be updated.
* @param {string[]} params.permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.updateRow` instead.
*/
updateDocument<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>;
permissions?: string[];
transactionId?: string;
}): Promise<Document>;
/**
* Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} documentId - Document ID.
* @param {Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>} data - Document data as JSON object. Include only attribute and value pairs to be updated.
* @param {string[]} permissions - An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https://appwrite.io/docs/permissions).
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
updateDocument<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, data?: Document extends Models.DefaultDocument ? Partial<Models.Document> & Record<string, any> : Partial<Models.Document> & Partial<Omit<Document, keyof Models.Document>>, permissions?: string[], transactionId?: string): Promise<Document>;
/**
* Delete a document by its unique ID.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string} params.documentId - Document ID.
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<{}>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.deleteRow` instead.
*/
deleteDocument(params: {
databaseId: string;
collectionId: string;
documentId: string;
transactionId?: string;
}): Promise<{}>;
/**
* Delete a document by its unique ID.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID. You can create a new collection using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @param {string} documentId - Document ID.
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<{}>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
deleteDocument(databaseId: string, collectionId: string, documentId: string, transactionId?: string): Promise<{}>;
/**
* Decrement a specific attribute of a document by a given value.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.documentId - Document ID.
* @param {string} params.attribute - Attribute key.
* @param {number} params.value - Value to increment the attribute by. The value must be a number.
* @param {number} params.min - Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.decrementRowColumn` instead.
*/
decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
attribute: string;
value?: number;
min?: number;
transactionId?: string;
}): Promise<Document>;
/**
* Decrement a specific attribute of a document by a given value.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} documentId - Document ID.
* @param {string} attribute - Attribute key.
* @param {number} value - Value to increment the attribute by. The value must be a number.
* @param {number} min - Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
decrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, min?: number, transactionId?: string): Promise<Document>;
/**
* Increment a specific attribute of a document by a given value.
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.documentId - Document ID.
* @param {string} params.attribute - Attribute key.
* @param {number} params.value - Value to increment the attribute by. The value must be a number.
* @param {number} params.max - Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.
* @param {string} params.transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.incrementRowColumn` instead.
*/
incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(params: {
databaseId: string;
collectionId: string;
documentId: string;
attribute: string;
value?: number;
max?: number;
transactionId?: string;
}): Promise<Document>;
/**
* Increment a specific attribute of a document by a given value.
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} documentId - Document ID.
* @param {string} attribute - Attribute key.
* @param {number} value - Value to increment the attribute by. The value must be a number.
* @param {number} max - Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.
* @param {string} transactionId - Transaction ID for staging the operation.
* @throws {AppwriteException}
* @returns {Promise<Document>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
incrementDocumentAttribute<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, documentId: string, attribute: string, value?: number, max?: number, transactionId?: string): Promise<Document>;
}