ngx-appwrite
Version:
A wrapper around the Appwrite WebSDK for easier implementation in Angular 16+ projects. The goal is to make the whole SDK accessible as well as provide some convenience functionality like RxJS streams where appropriate.
133 lines (131 loc) • 5.74 kB
TypeScript
import { Models } from 'appwrite';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class Databases {
private accountService;
private _databases;
private _client$;
/**
* Create Document
*
* Create a new Document. Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/databases#databasesCreateCollection) API or
* directly from your database console.
*
* @param {string} collectionId
* @param {Record<string, unknown>} data
* @param {string[]} [permissions]
* @param {string} [documentId]
* defaults to ID.unique()
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise}
*/
createDocument<CreateDocumentShape extends Record<string, unknown>>(collectionId: string, data: Partial<CreateDocumentShape>, permissions?: string[], documentId?: string, alternateDatabaseId?: string): Promise<CreateDocumentShape & Models.Document>;
/**
* Upsert Document
*
* Create a new Document if it can't be found (using $id), otherwise the document is updated.
*
* This will use incurr a read and a write to the database.
*
* Before using this route, you should create a new
* collection resource using either a [server
* integration](/docs/server/databases#databasesCreateCollection) API or
* directly from your database console.
*
* @param {string} collectionId
* @param {Record<string, unknown>} data
* @param {string[]} [permissions]
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise}
*/
upsertDocument<DocumentShape extends Models.Document>(collectionId: string, data: Partial<DocumentShape>, permissions?: string[], alternateDatabaseId?: string): Promise<Models.Document & DocumentShape>;
/**
* Get Document
*
* Get a document by its unique ID. This endpoint response returns a JSON
* object with the document data.
*
* @param {string} collectionId
* @param {string} documentId
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<DocumentShape>}
*/
getDocument<DocumentShape extends Models.Document>(collectionId: string, documentId: string, alternateDatabaseId?: string): Promise<DocumentShape>;
/**
* List Documents
*
* 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} collectionId
* @param {string[]} queries
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {PromisePromise<{total: number; documents: (Input<typeof AppwriteDocumentSchema> & Input<typeof validationSchema>)[]; }>}
*/
listDocuments<DocumentShape extends Models.Document>(collectionId: string, queries?: string[], alternateDatabaseId?: string): Promise<Models.DocumentList<DocumentShape>>;
/**
* Update Document
*
* Update a document by its unique ID. Using the patch method you can pass
* only specific fields that will get updated.
*
* @param {string} collectionId
* @param {string} documentId
* @param {unknown} data
* @param {string[]} [permissions]
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<DocumentShape>}
*/
updateDocument<DocumentShape extends Models.Document>(collectionId: string, documentId: string, data: Partial<DocumentShape>, permissions?: string[], alternateDatabaseId?: string): Promise<DocumentShape>;
/**
* Delete Document
*
* Delete a document by its unique ID.
*
* @param {string} collectionId
* @param {string} documentId
* @param {string} [alternateDatabaseId]
* @throws {AppwriteException}
* @returns {Promise<void>}
*/
deleteDocument(collectionId: string, documentId: string, alternateDatabaseId?: string): Promise<Record<string, unknown>>;
/**
* Monitor Collection
*
* Monitors real-time changes in a collection. Uses the configured default database
* An alternate database can be provided if needed
*
* @param {string} collectionId
* @param {string[]} [queries]
* @param {string | string[]} [events]
* @param {string} [alternativeDatabaseId]
* @throws {AppwriteException}
* @returns {Observable<(Input<typeof AppwriteDocumentSchema> & Input<typeof validationSchema>)[]>}
*/
collection$<DocumentShape extends Models.Document>(collectionId: string, queries?: string[], events?: string | string[], alternativeDatabaseId?: string): Observable<Models.DocumentList<DocumentShape>>;
/**
* Monitor Docuemnt
*
* Monitors real-time changes in a document. Uses the configured default database
* An alternate database can be provided if needed
*
* @param {string} collectionId
* @param {string} documentId
* @param {string | string[]} [events]
* @param {string} [alternativeDatabaseId]
* @throws {AppwriteException}
* @returns {Observable<(Input<typeof AppwriteDocumentSchema> & Input<typeof validationSchema>) | null>}
*/
document$<DocumentShape extends Models.Document>(collectionId: string, documentId: string, events?: string | string[], alternativeDatabaseId?: string): Observable<DocumentShape | null>;
private _generatePath;
private _cleanData;
static ɵfac: i0.ɵɵFactoryDeclaration<Databases, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<Databases>;
}