UNPKG

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.

73 lines (72 loc) 3.59 kB
import { Models } from 'appwrite'; import { Observable } from 'rxjs'; import * as i0 from "@angular/core"; export declare abstract class AppwriteAdapter<DocumentShape extends Models.Document> { private databases; protected abstract collectionId: string; protected abstract validationFn: undefined | ((data: unknown) => DocumentShape); /** * 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 {DocumentShape} awDocument * @param {string[]} [permissions] * @param {string} [alternativeDatabaseId] * @throws {AppwriteException} * @returns {Promise<DocumentShape>} */ create(awDocument: Omit<DocumentShape, '$id' | '$collectionId' | '$databaseId' | '$updatedAt' | '$createdAt' | '$permissions'>, permissions?: string[], documentId?: string, alternativeDatabaseId?: string): Promise<DocumentShape>; /** * Update Document * * Updates a 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 {Partial<DocumentShape>} awDocument * @param {string[]} [permissions] * @param {string} [alternativeDatabaseId] * @throws {AppwriteException} * @returns {Promise<T & Models.Document>} */ update(awDocument: Partial<DocumentShape> & { $id: string; }, permissions?: string[], alternativeDatabaseId?: string): Promise<DocumentShape>; /** * Upsert Document * * Upserts a Document. If an { $id: string } exists on the document, it is updated, otherwise a new document is created * 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 {DocumentShape} awDocument * @param {string[]} [permissions] * @param {string} [alternativeDatabaseId] * @throws {AppwriteException} * @returns {Promise<T & Models.Document>} */ upsert(awDocument: Partial<DocumentShape>, permissions?: string[], alternativeDatabaseId?: string): Promise<DocumentShape>; /** * Delete Document * * Deletes a Document. * Takes either a document id or a document object with an id * @param {DocumentShape | string} awDocumentIdOrAwDocument * @param {string} [alternateDatabaseId] * @throws {AppwriteException} * @returns {Promise<T & Models.Document>} */ delete(awDocumentIdOrAwDocument: string | (Partial<DocumentShape> & { $id: string; }), alternateDatabaseId?: string): Promise<Record<string, unknown>>; document(documentId: string, alternativeDatabaseId?: string): Promise<DocumentShape>; documentList(queries?: string[], alternativeDatabaseId?: string): Promise<Models.DocumentList<DocumentShape>>; documentList$(queries?: string[], events?: string[], alternativeDatabaseId?: string): Observable<Models.DocumentList<DocumentShape>>; document$(documentId: string, queries?: string[], alternativeDatabaseId?: string): Observable<DocumentShape | null>; static ɵfac: i0.ɵɵFactoryDeclaration<AppwriteAdapter<any>, never>; static ɵprov: i0.ɵɵInjectableDeclaration<AppwriteAdapter<any>>; }