Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Change Log

## 22.2.0

* Added ttl option to listDocuments for cached responses
* Added getConsolePausing health status endpoint in Health service
* Added Health.getConsolePausing overloads (object and positional)
* Added updateRelationshipAttribute for Databases to manage relationship attributes
* Added console pausing example to health docs
* Made activate optional in createDeployment object parameter

## 22.1.2

* Fix very large double values (for example 1.7976931348623157e+308) from being expanded into giant integer literals
Expand Down
3 changes: 2 additions & 1 deletion docs/examples/databases/list-documents.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const result = await databases.listDocuments({
collectionId: '<COLLECTION_ID>',
queries: [], // optional
transactionId: '<TRANSACTION_ID>', // optional
total: false // optional
total: false, // optional
ttl: 0 // optional
});
```
15 changes: 15 additions & 0 deletions docs/examples/health/get-console-pausing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
```javascript
const sdk = require('node-appwrite');

const client = new sdk.Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setKey('<YOUR_API_KEY>'); // Your secret API key

const health = new sdk.Health(client);

const result = await health.getConsolePausing({
threshold: null, // optional
inactivityDays: null // optional
});
```
4 changes: 2 additions & 2 deletions docs/examples/sites/create-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ const sites = new sdk.Sites(client);
const result = await sites.createDeployment({
siteId: '<SITE_ID>',
code: InputFile.fromPath('/path/to/file', 'filename'),
activate: false,
installCommand: '<INSTALL_COMMAND>', // optional
buildCommand: '<BUILD_COMMAND>', // optional
outputDirectory: '<OUTPUT_DIRECTORY>' // optional
outputDirectory: '<OUTPUT_DIRECTORY>', // optional
activate: false // optional
});
```
3 changes: 2 additions & 1 deletion docs/examples/tablesdb/list-rows.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const result = await tablesDB.listRows({
tableId: '<TABLE_ID>',
queries: [], // optional
transactionId: '<TRANSACTION_ID>', // optional
total: false // optional
total: false, // optional
ttl: 0 // optional
});
```
4 changes: 2 additions & 2 deletions src/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2413,7 +2413,7 @@ export namespace Models {
*/
$id: string;
/**
* Row automatically incrementing ID.
* Row sequence ID.
*/
$sequence: number;
/**
Expand Down Expand Up @@ -2452,7 +2452,7 @@ export namespace Models {
*/
$id: string;
/**
* Document automatically incrementing ID.
* Document sequence ID.
*/
$sequence: number;
/**
Expand Down
193 changes: 100 additions & 93 deletions src/services/databases.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1134,7 +1134,7 @@ export class Databases {
*
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @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.key - Attribute Key.
* @param {boolean} params.required - Is attribute required?
* @param {boolean} params.xdefault - Default value for attribute when not provided. Cannot be set when attribute is required.
Expand All @@ -1149,7 +1149,7 @@ export class Databases {
*
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID. You can create a new table using the Database service [server integration](https://appwrite.io/docs/server/databases#databasesCreateCollection).
* @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} key - Attribute Key.
* @param {boolean} required - Is attribute required?
* @param {boolean} xdefault - Default value for attribute when not provided. Cannot be set when attribute is required.
Expand Down Expand Up @@ -3606,6 +3606,90 @@ export class Databases {
);
}

/**
* Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
*
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.key - Attribute Key.
* @param {RelationMutate} params.onDelete - Constraints option
* @param {string} params.newKey - New Attribute Key.
* @throws {AppwriteException}
* @returns {Promise<Models.AttributeRelationship>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.updateRelationshipColumn` instead.
*/
updateRelationshipAttribute(params: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string }): Promise<Models.AttributeRelationship>;
/**
* Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
*
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} key - Attribute Key.
* @param {RelationMutate} onDelete - Constraints option
* @param {string} newKey - New Attribute Key.
* @throws {AppwriteException}
* @returns {Promise<Models.AttributeRelationship>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
updateRelationshipAttribute(databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string): Promise<Models.AttributeRelationship>;
updateRelationshipAttribute(
paramsOrFirst: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string } | string,
...rest: [(string)?, (string)?, (RelationMutate)?, (string)?]
): Promise<Models.AttributeRelationship> {
let params: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string };

if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string };
} else {
params = {
databaseId: paramsOrFirst as string,
collectionId: rest[0] as string,
key: rest[1] as string,
onDelete: rest[2] as RelationMutate,
newKey: rest[3] as string
};
}

const databaseId = params.databaseId;
const collectionId = params.collectionId;
const key = params.key;
const onDelete = params.onDelete;
const newKey = params.newKey;

if (typeof databaseId === 'undefined') {
throw new AppwriteException('Missing required parameter: "databaseId"');
}
if (typeof collectionId === 'undefined') {
throw new AppwriteException('Missing required parameter: "collectionId"');
}
if (typeof key === 'undefined') {
throw new AppwriteException('Missing required parameter: "key"');
}

const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/relationship/{key}'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);
const payload: Payload = {};
if (typeof onDelete !== 'undefined') {
payload['onDelete'] = onDelete;
}
if (typeof newKey !== 'undefined') {
payload['newKey'] = newKey;
}
const uri = new URL(this.client.config.endpoint + apiPath);

const apiHeaders: { [header: string]: string } = {
'content-type': 'application/json',
}

return this.client.call(
'patch',
uri,
apiHeaders,
payload,
);
}

/**
* Create a string attribute.
*
Expand Down Expand Up @@ -4568,90 +4652,6 @@ export class Databases {
);
}

/**
* Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
*
*
* @param {string} params.databaseId - Database ID.
* @param {string} params.collectionId - Collection ID.
* @param {string} params.key - Attribute Key.
* @param {RelationMutate} params.onDelete - Constraints option
* @param {string} params.newKey - New Attribute Key.
* @throws {AppwriteException}
* @returns {Promise<Models.AttributeRelationship>}
* @deprecated This API has been deprecated since 1.8.0. Please use `TablesDB.updateRelationshipColumn` instead.
*/
updateRelationshipAttribute(params: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string }): Promise<Models.AttributeRelationship>;
/**
* Update relationship attribute. [Learn more about relationship attributes](https://appwrite.io/docs/databases-relationships#relationship-attributes).
*
*
* @param {string} databaseId - Database ID.
* @param {string} collectionId - Collection ID.
* @param {string} key - Attribute Key.
* @param {RelationMutate} onDelete - Constraints option
* @param {string} newKey - New Attribute Key.
* @throws {AppwriteException}
* @returns {Promise<Models.AttributeRelationship>}
* @deprecated Use the object parameter style method for a better developer experience.
*/
updateRelationshipAttribute(databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string): Promise<Models.AttributeRelationship>;
updateRelationshipAttribute(
paramsOrFirst: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string } | string,
...rest: [(string)?, (string)?, (RelationMutate)?, (string)?]
): Promise<Models.AttributeRelationship> {
let params: { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string };

if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, key: string, onDelete?: RelationMutate, newKey?: string };
} else {
params = {
databaseId: paramsOrFirst as string,
collectionId: rest[0] as string,
key: rest[1] as string,
onDelete: rest[2] as RelationMutate,
newKey: rest[3] as string
};
}

const databaseId = params.databaseId;
const collectionId = params.collectionId;
const key = params.key;
const onDelete = params.onDelete;
const newKey = params.newKey;

if (typeof databaseId === 'undefined') {
throw new AppwriteException('Missing required parameter: "databaseId"');
}
if (typeof collectionId === 'undefined') {
throw new AppwriteException('Missing required parameter: "collectionId"');
}
if (typeof key === 'undefined') {
throw new AppwriteException('Missing required parameter: "key"');
}

const apiPath = '/databases/{databaseId}/collections/{collectionId}/attributes/{key}/relationship'.replace('{databaseId}', databaseId).replace('{collectionId}', collectionId).replace('{key}', key);
const payload: Payload = {};
if (typeof onDelete !== 'undefined') {
payload['onDelete'] = onDelete;
}
if (typeof newKey !== 'undefined') {
payload['newKey'] = newKey;
}
const uri = new URL(this.client.config.endpoint + apiPath);

const apiHeaders: { [header: string]: string } = {
'content-type': 'application/json',
}

return this.client.call(
'patch',
uri,
apiHeaders,
payload,
);
}

/**
* Get a list of all the user's documents in a given collection. You can use the query params to filter your results.
*
Expand All @@ -4660,11 +4660,12 @@ export class 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). 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 }): Promise<Models.DocumentList<Document>>;
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.
*
Expand All @@ -4673,26 +4674,28 @@ export class 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). 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): Promise<Models.DocumentList<Document>>;
listDocuments<Document extends Models.Document = Models.DefaultDocument>(databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean, ttl?: number): Promise<Models.DocumentList<Document>>;
listDocuments<Document extends Models.Document = Models.DefaultDocument>(
paramsOrFirst: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean } | string,
...rest: [(string)?, (string[])?, (string)?, (boolean)?]
paramsOrFirst: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean, ttl?: number } | string,
...rest: [(string)?, (string[])?, (string)?, (boolean)?, (number)?]
): Promise<Models.DocumentList<Document>> {
let params: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean };
let params: { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean, ttl?: number };

if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {
params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean };
params = (paramsOrFirst || {}) as { databaseId: string, collectionId: string, queries?: string[], transactionId?: string, total?: boolean, ttl?: number };
} else {
params = {
databaseId: paramsOrFirst as string,
collectionId: rest[0] as string,
queries: rest[1] as string[],
transactionId: rest[2] as string,
total: rest[3] as boolean
total: rest[3] as boolean,
ttl: rest[4] as number
};
}

Expand All @@ -4701,6 +4704,7 @@ export class Databases {
const queries = params.queries;
const transactionId = params.transactionId;
const total = params.total;
const ttl = params.ttl;

if (typeof databaseId === 'undefined') {
throw new AppwriteException('Missing required parameter: "databaseId"');
Expand All @@ -4720,6 +4724,9 @@ export class Databases {
if (typeof total !== 'undefined') {
payload['total'] = total;
}
if (typeof ttl !== 'undefined') {
payload['ttl'] = ttl;
}
const uri = new URL(this.client.config.endpoint + apiPath);

const apiHeaders: { [header: string]: string } = {
Expand Down
Loading