{"version":3,"sources":["../../src/services/presences.ts"],"names":[],"mappings":"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","file":"presences.mjs","sourcesContent":["import { AppwriteException, Client, type Payload } from '../client';\nimport type { Models } from '../models';\n\nexport class Presences {\n    client: Client;\n\n    constructor(client: Client) {\n        this.client = client;\n    }\n\n    /**\n     * List presence logs. Expired entries are filtered out automatically.\n     *\n     *\n     * @param {string[]} params.queries - Array of query strings generated using the Query class provided by the SDK.\n     * @param {boolean} params.total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @param {number} params.ttl - TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query — so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PresenceList>}\n     */\n    list(params?: {\n        queries?: string[];\n        total?: boolean;\n        ttl?: number;\n    }): Promise<Models.PresenceList>;\n    /**\n     * List presence logs. Expired entries are filtered out automatically.\n     *\n     *\n     * @param {string[]} queries - Array of query strings generated using the Query class provided by the SDK.\n     * @param {boolean} total - When set to false, the total count returned will be 0 and will not be calculated.\n     * @param {number} ttl - TTL (seconds) for caching list responses. Responses are stored in an in-memory key-value cache, keyed per project, collection, schema version (attributes and indexes), caller authorization roles, and the exact query — so users with different permissions never share cached entries. Schema changes invalidate cached entries automatically; document writes do not, so choose a TTL you are comfortable serving as stale data. Set to 0 to disable caching. Must be between 0 and 86400 (24 hours).\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.PresenceList>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    list(\n        queries?: string[],\n        total?: boolean,\n        ttl?: number,\n    ): Promise<Models.PresenceList>;\n    list(\n        paramsOrFirst?:\n            { queries?: string[]; total?: boolean; ttl?: number } | string[],\n        ...rest: [boolean?, number?]\n    ): Promise<Models.PresenceList> {\n        let params: { queries?: string[]; total?: boolean; ttl?: number };\n\n        if (\n            !paramsOrFirst ||\n            (paramsOrFirst &&\n                typeof paramsOrFirst === 'object' &&\n                !Array.isArray(paramsOrFirst))\n        ) {\n            params = (paramsOrFirst || {}) as {\n                queries?: string[];\n                total?: boolean;\n                ttl?: number;\n            };\n        } else {\n            params = {\n                queries: paramsOrFirst as string[],\n                total: rest[0] as boolean,\n                ttl: rest[1] as number,\n            };\n        }\n\n        const queries = params.queries;\n        const total = params.total;\n        const ttl = params.ttl;\n        const apiPath = '/presences';\n        const apiPayload: Payload = {};\n        if (typeof queries !== 'undefined') {\n            apiPayload['queries'] = queries;\n        }\n        if (typeof total !== 'undefined') {\n            apiPayload['total'] = total;\n        }\n        if (typeof ttl !== 'undefined') {\n            apiPayload['ttl'] = ttl;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n     *\n     *\n     * @param {string} params.presenceId - Presence unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     */\n    get(params: { presenceId: string }): Promise<Models.Presence>;\n    /**\n     * Get a presence log by its unique ID. Entries whose `expiresAt` is in the past are treated as not found.\n     *\n     *\n     * @param {string} presenceId - Presence unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    get(presenceId: string): Promise<Models.Presence>;\n    get(\n        paramsOrFirst: { presenceId: string } | string,\n    ): Promise<Models.Presence> {\n        let params: { presenceId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { presenceId: string };\n        } else {\n            params = {\n                presenceId: paramsOrFirst as string,\n            };\n        }\n\n        const presenceId = params.presenceId;\n        if (typeof presenceId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"presenceId\"',\n            );\n        }\n        const apiPath = '/presences/{presenceId}'.replace(\n            '{presenceId}',\n            encodeURIComponent(String(presenceId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            accept: 'application/json',\n        };\n\n        return this.client.call('get', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Create or update a presence log by its user ID.\n     *\n     *\n     * @param {string} params.presenceId - Presence unique ID.\n     * @param {string} params.userId - User ID.\n     * @param {string} params.status - Presence status.\n     * @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).\n     * @param {string} params.expiresAt - Presence expiry datetime.\n     * @param {object} params.metadata - Presence metadata object.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     */\n    upsert(params: {\n        presenceId: string;\n        userId: string;\n        status: string;\n        permissions?: string[];\n        expiresAt?: string;\n        metadata?: object;\n    }): Promise<Models.Presence>;\n    /**\n     * Create or update a presence log by its user ID.\n     *\n     *\n     * @param {string} presenceId - Presence unique ID.\n     * @param {string} userId - User ID.\n     * @param {string} status - Presence status.\n     * @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).\n     * @param {string} expiresAt - Presence expiry datetime.\n     * @param {object} metadata - Presence metadata object.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    upsert(\n        presenceId: string,\n        userId: string,\n        status: string,\n        permissions?: string[],\n        expiresAt?: string,\n        metadata?: object,\n    ): Promise<Models.Presence>;\n    upsert(\n        paramsOrFirst:\n            | {\n                  presenceId: string;\n                  userId: string;\n                  status: string;\n                  permissions?: string[];\n                  expiresAt?: string;\n                  metadata?: object;\n              }\n            | string,\n        ...rest: [string?, string?, string[]?, string?, object?]\n    ): Promise<Models.Presence> {\n        let params: {\n            presenceId: string;\n            userId: string;\n            status: string;\n            permissions?: string[];\n            expiresAt?: string;\n            metadata?: object;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                presenceId: string;\n                userId: string;\n                status: string;\n                permissions?: string[];\n                expiresAt?: string;\n                metadata?: object;\n            };\n        } else {\n            params = {\n                presenceId: paramsOrFirst as string,\n                userId: rest[0] as string,\n                status: rest[1] as string,\n                permissions: rest[2] as string[],\n                expiresAt: rest[3] as string,\n                metadata: rest[4] as object,\n            };\n        }\n\n        const presenceId = params.presenceId;\n        const userId = params.userId;\n        const status = params.status;\n        const permissions = params.permissions;\n        const expiresAt = params.expiresAt;\n        const metadata = params.metadata;\n        if (typeof presenceId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"presenceId\"',\n            );\n        }\n        if (typeof userId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"userId\"');\n        }\n        if (typeof status === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"status\"');\n        }\n        const apiPath = '/presences/{presenceId}'.replace(\n            '{presenceId}',\n            encodeURIComponent(String(presenceId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof userId !== 'undefined') {\n            apiPayload['userId'] = userId;\n        }\n        if (typeof status !== 'undefined') {\n            apiPayload['status'] = status;\n        }\n        if (typeof permissions !== 'undefined') {\n            apiPayload['permissions'] = permissions;\n        }\n        if (typeof expiresAt !== 'undefined') {\n            apiPayload['expiresAt'] = expiresAt;\n        }\n        if (typeof metadata !== 'undefined') {\n            apiPayload['metadata'] = metadata;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('put', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n     *\n     *\n     * @param {string} params.presenceId - Presence unique ID.\n     * @param {string} params.userId - User ID.\n     * @param {string} params.status - Presence status.\n     * @param {string} params.expiresAt - Presence expiry datetime.\n     * @param {object} params.metadata - Presence metadata object.\n     * @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).\n     * @param {boolean} params.purge - When true, purge cached responses used by list presences endpoint.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     */\n    update(params: {\n        presenceId: string;\n        userId: string;\n        status?: string;\n        expiresAt?: string;\n        metadata?: object;\n        permissions?: string[];\n        purge?: boolean;\n    }): Promise<Models.Presence>;\n    /**\n     * Update a presence log by its unique ID. Using the patch method you can pass only specific fields that will get updated.\n     *\n     *\n     * @param {string} presenceId - Presence unique ID.\n     * @param {string} userId - User ID.\n     * @param {string} status - Presence status.\n     * @param {string} expiresAt - Presence expiry datetime.\n     * @param {object} metadata - Presence metadata object.\n     * @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).\n     * @param {boolean} purge - When true, purge cached responses used by list presences endpoint.\n     * @throws {AppwriteException}\n     * @returns {Promise<Models.Presence>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    update(\n        presenceId: string,\n        userId: string,\n        status?: string,\n        expiresAt?: string,\n        metadata?: object,\n        permissions?: string[],\n        purge?: boolean,\n    ): Promise<Models.Presence>;\n    update(\n        paramsOrFirst:\n            | {\n                  presenceId: string;\n                  userId: string;\n                  status?: string;\n                  expiresAt?: string;\n                  metadata?: object;\n                  permissions?: string[];\n                  purge?: boolean;\n              }\n            | string,\n        ...rest: [string?, string?, string?, object?, string[]?, boolean?]\n    ): Promise<Models.Presence> {\n        let params: {\n            presenceId: string;\n            userId: string;\n            status?: string;\n            expiresAt?: string;\n            metadata?: object;\n            permissions?: string[];\n            purge?: boolean;\n        };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as {\n                presenceId: string;\n                userId: string;\n                status?: string;\n                expiresAt?: string;\n                metadata?: object;\n                permissions?: string[];\n                purge?: boolean;\n            };\n        } else {\n            params = {\n                presenceId: paramsOrFirst as string,\n                userId: rest[0] as string,\n                status: rest[1] as string,\n                expiresAt: rest[2] as string,\n                metadata: rest[3] as object,\n                permissions: rest[4] as string[],\n                purge: rest[5] as boolean,\n            };\n        }\n\n        const presenceId = params.presenceId;\n        const userId = params.userId;\n        const status = params.status;\n        const expiresAt = params.expiresAt;\n        const metadata = params.metadata;\n        const permissions = params.permissions;\n        const purge = params.purge;\n        if (typeof presenceId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"presenceId\"',\n            );\n        }\n        if (typeof userId === 'undefined') {\n            throw new AppwriteException('Missing required parameter: \"userId\"');\n        }\n        const apiPath = '/presences/{presenceId}'.replace(\n            '{presenceId}',\n            encodeURIComponent(String(presenceId)),\n        );\n        const apiPayload: Payload = {};\n        if (typeof userId !== 'undefined') {\n            apiPayload['userId'] = userId;\n        }\n        if (typeof status !== 'undefined') {\n            apiPayload['status'] = status;\n        }\n        if (typeof expiresAt !== 'undefined') {\n            apiPayload['expiresAt'] = expiresAt;\n        }\n        if (typeof metadata !== 'undefined') {\n            apiPayload['metadata'] = metadata;\n        }\n        if (typeof permissions !== 'undefined') {\n            apiPayload['permissions'] = permissions;\n        }\n        if (typeof purge !== 'undefined') {\n            apiPayload['purge'] = purge;\n        }\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n            accept: 'application/json',\n        };\n\n        return this.client.call('patch', uri, apiHeaders, apiPayload);\n    }\n\n    /**\n     * Delete a presence log by its unique ID.\n     *\n     *\n     * @param {string} params.presenceId - Presence unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     */\n    delete(params: { presenceId: string }): Promise<{}>;\n    /**\n     * Delete a presence log by its unique ID.\n     *\n     *\n     * @param {string} presenceId - Presence unique ID.\n     * @throws {AppwriteException}\n     * @returns {Promise<{}>}\n     * @deprecated Use the object parameter style method for a better developer experience.\n     */\n    delete(presenceId: string): Promise<{}>;\n    delete(paramsOrFirst: { presenceId: string } | string): Promise<{}> {\n        let params: { presenceId: string };\n\n        if (\n            paramsOrFirst &&\n            typeof paramsOrFirst === 'object' &&\n            !Array.isArray(paramsOrFirst)\n        ) {\n            params = (paramsOrFirst || {}) as { presenceId: string };\n        } else {\n            params = {\n                presenceId: paramsOrFirst as string,\n            };\n        }\n\n        const presenceId = params.presenceId;\n        if (typeof presenceId === 'undefined') {\n            throw new AppwriteException(\n                'Missing required parameter: \"presenceId\"',\n            );\n        }\n        const apiPath = '/presences/{presenceId}'.replace(\n            '{presenceId}',\n            encodeURIComponent(String(presenceId)),\n        );\n        const apiPayload: Payload = {};\n        const uri = new URL(this.client.config.endpoint + apiPath);\n\n        const apiHeaders: { [header: string]: string } = {\n            'X-Appwrite-Project': this.client.config.project,\n            'content-type': 'application/json',\n        };\n\n        return this.client.call('delete', uri, apiHeaders, apiPayload);\n    }\n}\n"]}