Add 1.8.x support

This commit is contained in:
Jake Barnby
2025-08-20 03:12:54 +12:00
parent 041f94dc8e
commit 1310f9446f
347 changed files with 16789 additions and 12991 deletions
+3 -3
View File
@@ -2,12 +2,12 @@
[![pub package](https://img.shields.io/pub/v/dart_appwrite.svg?style=flat-square)](https://pub.dartlang.org/packages/dart_appwrite)
![License](https://img.shields.io/github/license/appwrite/sdk-for-dart.svg?style=flat-square)
![Version](https://img.shields.io/badge/api%20version-1.7.x-blue.svg?style=flat-square)
![Version](https://img.shields.io/badge/api%20version-1.8.x-blue.svg?style=flat-square)
[![Build Status](https://img.shields.io/travis/com/appwrite/sdk-generator?style=flat-square)](https://travis-ci.com/appwrite/sdk-generator)
[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
**This SDK is compatible with Appwrite server version 1.7.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-dart/releases).**
**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/sdk-for-dart/releases).**
> This is the Dart SDK for integrating with Appwrite from your Dart server-side code. If you're looking for the Flutter SDK you should check [appwrite/sdk-for-flutter](https://github.com/appwrite/sdk-for-flutter)
@@ -23,7 +23,7 @@ Add this to your package's `pubspec.yaml` file:
```yml
dependencies:
dart_appwrite: ^16.2.0
dart_appwrite: ^17.0.0
```
You can install packages from the command line:
+1
View File
@@ -0,0 +1 @@
include: package:lints/recommended.yaml
+1
View File
@@ -11,4 +11,5 @@ Database result = await databases.create(
databaseId: '<DATABASE_ID>',
name: '<NAME>',
enabled: false, // (optional)
type: .tablesdb, // (optional)
);
+1 -1
View File
@@ -14,5 +14,5 @@ Execution result = await functions.createExecution(
path: '<PATH>', // (optional)
method: ExecutionMethod.gET, // (optional)
headers: {}, // (optional)
scheduledAt: '', // (optional)
scheduledAt: '<SCHEDULED_AT>', // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnBoolean result = await tablesDb.createBooleanColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: false, // (optional)
array: false, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnDatetime result = await tablesDb.createDatetimeColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
array: false, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnEmail result = await tablesDb.createEmailColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 'email@example.com', // (optional)
array: false, // (optional)
);
@@ -0,0 +1,18 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnEnum result = await tablesDb.createEnumColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
elements: [],
xrequired: false,
xdefault: '<DEFAULT>', // (optional)
array: false, // (optional)
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnFloat result = await tablesDb.createFloatColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
min: 0, // (optional)
max: 0, // (optional)
xdefault: 0, // (optional)
array: false, // (optional)
);
+18
View File
@@ -0,0 +1,18 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnIndex result = await tablesDb.createIndex(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
type: IndexType.key,
columns: [],
orders: [], // (optional)
lengths: [], // (optional)
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnInteger result = await tablesDb.createIntegerColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
min: 0, // (optional)
max: 0, // (optional)
xdefault: 0, // (optional)
array: false, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnIp result = await tablesDb.createIpColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '', // (optional)
array: false, // (optional)
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnRelationship result = await tablesDb.createRelationshipColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
relatedTableId: '<RELATED_TABLE_ID>',
type: RelationshipType.oneToOne,
twoWay: false, // (optional)
key: '', // (optional)
twoWayKey: '', // (optional)
onDelete: RelationMutate.cascade, // (optional)
);
+16
View File
@@ -0,0 +1,16 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.createRow(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
data: {},
permissions: ["read("any")"], // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
RowList result = await tablesDb.createRows(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rows: [],
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnString result = await tablesDb.createStringColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
size: 1,
xrequired: false,
xdefault: '<DEFAULT>', // (optional)
array: false, // (optional)
encrypt: false, // (optional)
);
+17
View File
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Table result = await tablesDb.createTable(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
name: '<NAME>',
permissions: ["read("any")"], // (optional)
rowSecurity: false, // (optional)
enabled: false, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnUrl result = await tablesDb.createUrlColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 'https://example.com', // (optional)
array: false, // (optional)
);
+15
View File
@@ -0,0 +1,15 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Database result = await tablesDb.create(
databaseId: '<DATABASE_ID>',
name: '<NAME>',
enabled: false, // (optional)
type: .tablesdb, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.decrementRowColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
column: '',
value: 0, // (optional)
min: 0, // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
await tablesDb.deleteColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
await tablesDb.deleteIndex(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
await tablesDb.deleteRow(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
await tablesDb.deleteRows(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
queries: [], // (optional)
);
+13
View File
@@ -0,0 +1,13 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
await tablesDb.deleteTable(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
);
+12
View File
@@ -0,0 +1,12 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
await tablesDb.delete(
databaseId: '<DATABASE_ID>',
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
result = await tablesDb.getColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnIndex result = await tablesDb.getIndex(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
);
+15
View File
@@ -0,0 +1,15 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.getRow(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
queries: [], // (optional)
);
+13
View File
@@ -0,0 +1,13 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Table result = await tablesDb.getTable(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
);
+12
View File
@@ -0,0 +1,12 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Database result = await tablesDb.get(
databaseId: '<DATABASE_ID>',
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.incrementRowColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
column: '',
value: 0, // (optional)
max: 0, // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnList result = await tablesDb.listColumns(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
queries: [], // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnIndexList result = await tablesDb.listIndexes(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
queries: [], // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
RowList result = await tablesDb.listRows(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
queries: [], // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
TableList result = await tablesDb.listTables(
databaseId: '<DATABASE_ID>',
queries: [], // (optional)
search: '<SEARCH>', // (optional)
);
+13
View File
@@ -0,0 +1,13 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
DatabaseList result = await tablesDb.list(
queries: [], // (optional)
search: '<SEARCH>', // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnBoolean result = await tablesDb.updateBooleanColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: false,
newKey: '', // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnDatetime result = await tablesDb.updateDatetimeColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '',
newKey: '', // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnEmail result = await tablesDb.updateEmailColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 'email@example.com',
newKey: '', // (optional)
);
@@ -0,0 +1,18 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnEnum result = await tablesDb.updateEnumColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
elements: [],
xrequired: false,
xdefault: '<DEFAULT>',
newKey: '', // (optional)
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnFloat result = await tablesDb.updateFloatColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 0,
min: 0, // (optional)
max: 0, // (optional)
newKey: '', // (optional)
);
@@ -0,0 +1,19 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnInteger result = await tablesDb.updateIntegerColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 0,
min: 0, // (optional)
max: 0, // (optional)
newKey: '', // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnIp result = await tablesDb.updateIpColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '',
newKey: '', // (optional)
);
@@ -0,0 +1,16 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnRelationship result = await tablesDb.updateRelationshipColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
onDelete: RelationMutate.cascade, // (optional)
newKey: '', // (optional)
);
+16
View File
@@ -0,0 +1,16 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.updateRow(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
data: {}, // (optional)
permissions: ["read("any")"], // (optional)
);
+15
View File
@@ -0,0 +1,15 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
RowList result = await tablesDb.updateRows(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
data: {}, // (optional)
queries: [], // (optional)
);
@@ -0,0 +1,18 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnString result = await tablesDb.updateStringColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: '<DEFAULT>',
size: 1, // (optional)
newKey: '', // (optional)
);
+17
View File
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Table result = await tablesDb.updateTable(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
name: '<NAME>',
permissions: ["read("any")"], // (optional)
rowSecurity: false, // (optional)
enabled: false, // (optional)
);
@@ -0,0 +1,17 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
ColumnUrl result = await tablesDb.updateUrlColumn(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
key: '',
xrequired: false,
xdefault: 'https://example.com',
newKey: '', // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
Database result = await tablesDb.update(
databaseId: '<DATABASE_ID>',
name: '<NAME>',
enabled: false, // (optional)
);
+16
View File
@@ -0,0 +1,16 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1') // Your API Endpoint
.setProject('<YOUR_PROJECT_ID>') // Your project ID
.setSession(''); // The user session to authenticate with
TablesDb tablesDb = TablesDb(client);
Row result = await tablesDb.upsertRow(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rowId: '<ROW_ID>',
data: {}, // (optional)
permissions: ["read("any")"], // (optional)
);
+14
View File
@@ -0,0 +1,14 @@
import 'package:dart_appwrite/dart_appwrite.dart';
Client client = 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
TablesDb tablesDb = TablesDb(client);
RowList result = await tablesDb.upsertRows(
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
rows: [],
);
-62
View File
@@ -1,62 +0,0 @@
# Examples
Init your Appwrite client:
```dart
Client client = Client();
client
.setEndpoint('https://localhost/v1') // Your Appwrite Endpoint
.setProject('5e8cf4f46b5e8') // Your project ID
.setSelfSigned() // Remove in production
;
```
Create a new user:
```dart
Users users = Users(client);
User result = await users.create(
userId: ID.unique(),
email: "email@example.com",
phone: "+123456789",
password: "password",
name: "Walter O'Brien"
);
```
Fetch user profile:
```dart
Users users = Users(client);
User profile = await users.get(
userId: '[USER_ID]',
);
```
Upload File:
```dart
Storage storage = Storage(client);
InputFile file = InputFile(path: './path-to-file/image.jpg', filename: 'image.jpg');
storage.createFile(
bucketId: '[BUCKET_ID]',
fileId: '[FILE_ID]', // use 'unique()' to automatically generate a unique ID
file: file,
permissions: [
Permission.read(Role.any()),
],
)
.then((response) {
print(response); // File uploaded!
})
.catchError((error) {
print(error.response);
});
```
All examples and API features are available at the [official Appwrite docs](https://appwrite.io/docs)
+1 -1
View File
@@ -1 +1 @@
export 'src/client_browser.dart';
export 'src/client_browser.dart';
+1 -1
View File
@@ -1 +1 @@
export 'src/client_io.dart';
export 'src/client_io.dart';
+2 -1
View File
@@ -1,6 +1,6 @@
/// Appwrite Dart SDK
///
/// This SDK is compatible with Appwrite server version 1.7.x.
/// This SDK is compatible with Appwrite server version 1.8.x.
/// For older versions, please check
/// [previous releases](https://github.com/appwrite/sdk-for-dart/releases).
library dart_appwrite;
@@ -37,6 +37,7 @@ part 'services/locale.dart';
part 'services/messaging.dart';
part 'services/sites.dart';
part 'services/storage.dart';
part 'services/tables-db.dart';
part 'services/teams.dart';
part 'services/tokens.dart';
part 'services/users.dart';
+1
View File
@@ -7,6 +7,7 @@ part 'src/enums/o_auth_provider.dart';
part 'src/enums/browser.dart';
part 'src/enums/credit_card.dart';
part 'src/enums/flag.dart';
part 'src/enums/type.dart';
part 'src/enums/relationship_type.dart';
part 'src/enums/relation_mutate.dart';
part 'src/enums/index_type.dart';
+2 -1
View File
@@ -10,7 +10,8 @@ class ID {
final now = DateTime.now();
final sec = (now.millisecondsSinceEpoch / 1000).floor();
final usec = now.microsecondsSinceEpoch - (sec * 1000000);
return sec.toRadixString(16) + usec.toRadixString(16).padLeft(5, '0');
return sec.toRadixString(16) +
usec.toRadixString(16).padLeft(5, '0');
}
// Generate a unique ID with padding to have a longer ID
+17
View File
@@ -2,10 +2,13 @@
library dart_appwrite.models;
part 'src/models/model.dart';
part 'src/models/row_list.dart';
part 'src/models/document_list.dart';
part 'src/models/table_list.dart';
part 'src/models/collection_list.dart';
part 'src/models/database_list.dart';
part 'src/models/index_list.dart';
part 'src/models/column_index_list.dart';
part 'src/models/user_list.dart';
part 'src/models/session_list.dart';
part 'src/models/identity_list.dart';
@@ -47,7 +50,21 @@ part 'src/models/attribute_ip.dart';
part 'src/models/attribute_url.dart';
part 'src/models/attribute_datetime.dart';
part 'src/models/attribute_relationship.dart';
part 'src/models/table.dart';
part 'src/models/column_list.dart';
part 'src/models/column_string.dart';
part 'src/models/column_integer.dart';
part 'src/models/column_float.dart';
part 'src/models/column_boolean.dart';
part 'src/models/column_email.dart';
part 'src/models/column_enum.dart';
part 'src/models/column_ip.dart';
part 'src/models/column_url.dart';
part 'src/models/column_datetime.dart';
part 'src/models/column_relationship.dart';
part 'src/models/index.dart';
part 'src/models/column_index.dart';
part 'src/models/row.dart';
part 'src/models/document.dart';
part 'src/models/log.dart';
part 'src/models/user.dart';
+57 -33
View File
@@ -1,5 +1,6 @@
part of 'dart_appwrite.dart';
/// Helper class to generate query strings.
class Query {
final String method;
@@ -9,13 +10,15 @@ class Query {
Query._(this.method, [this.attribute = null, this.values = null]);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{'method': method};
final map = <String, dynamic>{
'method': method,
};
if (attribute != null) {
if(attribute != null) {
map['attribute'] = attribute;
}
if (values != null) {
if(values != null) {
map['values'] = values is List ? values : [values];
}
@@ -26,7 +29,7 @@ class Query {
String toString() => jsonEncode(toJson());
/// Filter resources where [attribute] is equal to [value].
///
///
/// [value] can be a single value or a list. If a list is used
/// the query will return resources where [attribute] is equal
/// to any of the values in the list.
@@ -58,12 +61,10 @@ class Query {
Query._('search', attribute, value).toString();
/// Filter resources where [attribute] is null.
static String isNull(String attribute) =>
Query._('isNull', attribute).toString();
static String isNull(String attribute) => Query._('isNull', attribute).toString();
/// Filter resources where [attribute] is not null.
static String isNotNull(String attribute) =>
Query._('isNotNull', attribute).toString();
static String isNotNull(String attribute) => Query._('isNotNull', attribute).toString();
/// Filter resources where [attribute] is between [start] and [end] (inclusive).
static String between(String attribute, dynamic start, dynamic end) =>
@@ -82,51 +83,74 @@ class Query {
static String contains(String attribute, dynamic value) =>
Query._('contains', attribute, value).toString();
static String or(List<String> queries) => Query._(
'or',
null,
queries.map((query) => jsonDecode(query)).toList(),
).toString();
/// Filter resources where [attribute] does not contain [value]
/// [value] can be a single value or a list.
static String notContains(String attribute, dynamic value) =>
Query._('notContains', attribute, value).toString();
static String and(List<String> queries) => Query._(
'and',
null,
queries.map((query) => jsonDecode(query)).toList(),
).toString();
/// Filter resources by searching [attribute] for [value] (inverse of search).
static String notSearch(String attribute, String value) =>
Query._('notSearch', attribute, value).toString();
/// Filter resources where [attribute] is not between [start] and [end] (exclusive).
static String notBetween(String attribute, dynamic start, dynamic end) =>
Query._('notBetween', attribute, [start, end]).toString();
/// Filter resources where [attribute] does not start with [value].
static String notStartsWith(String attribute, String value) =>
Query._('notStartsWith', attribute, value).toString();
/// Filter resources where [attribute] does not end with [value].
static String notEndsWith(String attribute, String value) =>
Query._('notEndsWith', attribute, value).toString();
/// Filter resources where document was created before [value].
static String createdBefore(String value) => Query._('createdBefore', null, value).toString();
/// Filter resources where document was created after [value].
static String createdAfter(String value) => Query._('createdAfter', null, value).toString();
/// Filter resources where document was updated before [value].
static String updatedBefore(String value) => Query._('updatedBefore', null, value).toString();
/// Filter resources where document was updated after [value].
static String updatedAfter(String value) => Query._('updatedAfter', null, value).toString();
static String or(List<String> queries) =>
Query._('or', null, queries.map((query) => jsonDecode(query)).toList()).toString();
static String and(List<String> queries) =>
Query._('and', null, queries.map((query) => jsonDecode(query)).toList()).toString();
/// Specify which attributes should be returned by the API call.
static String select(List<String> attributes) =>
Query._('select', null, attributes).toString();
/// Sort results by [attribute] ascending.
static String orderAsc(String attribute) =>
Query._('orderAsc', attribute).toString();
static String orderAsc(String attribute) => Query._('orderAsc', attribute).toString();
/// Sort results by [attribute] descending.
static String orderDesc(String attribute) =>
Query._('orderDesc', attribute).toString();
static String orderDesc(String attribute) => Query._('orderDesc', attribute).toString();
/// Return results before [id].
///
///
/// Refer to the [Cursor Based Pagination](https://appwrite.io/docs/pagination#cursor-pagination)
/// docs for more information.
static String cursorBefore(String id) =>
Query._('cursorBefore', null, id).toString();
static String cursorBefore(String id) => Query._('cursorBefore', null, id).toString();
/// Return results after [id].
///
///
/// Refer to the [Cursor Based Pagination](https://appwrite.io/docs/pagination#cursor-pagination)
/// docs for more information.
static String cursorAfter(String id) =>
Query._('cursorAfter', null, id).toString();
static String cursorAfter(String id) => Query._('cursorAfter', null, id).toString();
/// Return only [limit] results.
static String limit(int limit) => Query._('limit', null, limit).toString();
/// Return results from [offset].
///
///
/// Refer to the [Offset Pagination](https://appwrite.io/docs/pagination#offset-pagination)
/// docs for more information.
static String offset(int offset) =>
Query._('offset', null, offset).toString();
}
static String offset(int offset) => Query._('offset', null, offset).toString();
}
+55 -55
View File
@@ -2,65 +2,65 @@ part of 'dart_appwrite.dart';
/// Helper class to generate role strings for [Permission].
class Role {
Role._();
/// Grants access to anyone.
///
/// This includes authenticated and unauthenticated users.
static String any() {
return 'any';
}
/// Grants access to a specific user by user ID.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String user(String id, [String status = '']) {
if (status.isEmpty) {
return 'user:$id';
Role._();
/// Grants access to anyone.
///
/// This includes authenticated and unauthenticated users.
static String any() {
return 'any';
}
return 'user:$id/$status';
}
/// Grants access to any authenticated or anonymous user.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String users([String status = '']) {
if (status.isEmpty) {
return 'users';
/// Grants access to a specific user by user ID.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String user(String id, [String status = '']) {
if(status.isEmpty) {
return 'user:$id';
}
return 'user:$id/$status';
}
return 'users/$status';
}
/// Grants access to any guest user without a session.
///
/// Authenticated users don't have access to this role.
static String guests() {
return 'guests';
}
/// Grants access to a team by team ID.
///
/// You can optionally pass a role for [role] to target
/// team members with the specified role.
static String team(String id, [String role = '']) {
if (role.isEmpty) {
return 'team:$id';
/// Grants access to any authenticated or anonymous user.
///
/// You can optionally pass verified or unverified for
/// [status] to target specific types of users.
static String users([String status = '']) {
if(status.isEmpty) {
return 'users';
}
return 'users/$status';
}
return 'team:$id/$role';
}
/// Grants access to a specific member of a team.
///
/// When the member is removed from the team, they will
/// no longer have access.
static String member(String id) {
return 'member:$id';
}
/// Grants access to any guest user without a session.
///
/// Authenticated users don't have access to this role.
static String guests() {
return 'guests';
}
/// Grants access to a user with the specified label.
static String label(String name) {
return 'label:$name';
}
}
/// Grants access to a team by team ID.
///
/// You can optionally pass a role for [role] to target
/// team members with the specified role.
static String team(String id, [String role = '']) {
if(role.isEmpty) {
return 'team:$id';
}
return 'team:$id/$role';
}
/// Grants access to a specific member of a team.
///
/// When the member is removed from the team, they will
/// no longer have access.
static String member(String id) {
return 'member:$id';
}
/// Grants access to a user with the specified label.
static String label(String name) {
return 'label:$name';
}
}
+1080 -1081
View File
File diff suppressed because it is too large Load Diff
+156 -222
View File
@@ -3,253 +3,187 @@ part of '../dart_appwrite.dart';
/// The Avatars service aims to help you complete everyday tasks related to
/// your app image, icons, and avatars.
class Avatars extends Service {
Avatars(super.client);
Avatars(super.client);
/// You can use this endpoint to show different browser icons to your users.
/// The code argument receives the browser code as it appears in your user [GET
/// /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions)
/// endpoint. Use width, height and quality arguments to change the output
/// settings.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
Future<Uint8List> getBrowser({
required enums.Browser code,
int? width,
int? height,
int? quality,
}) async {
final String apiPath = '/avatars/browsers/{code}'.replaceAll(
'{code}',
code.value,
);
/// You can use this endpoint to show different browser icons to your users.
/// The code argument receives the browser code as it appears in your user [GET
/// /account/sessions](https://appwrite.io/docs/references/cloud/client-web/account#getSessions)
/// endpoint. Use width, height and quality arguments to change the output
/// settings.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
Future<Uint8List> getBrowser({required enums.Browser code, int? width, int? height, int? quality}) async {
final String apiPath = '/avatars/browsers/{code}'.replaceAll('{code}', code.value);
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// The credit card endpoint will return you the icon of the credit card
/// provider you need. Use width, height and quality arguments to change the
/// output settings.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getCreditCard({
required enums.CreditCard code,
int? width,
int? height,
int? quality,
}) async {
final String apiPath = '/avatars/credit-cards/{code}'.replaceAll(
'{code}',
code.value,
);
/// The credit card endpoint will return you the icon of the credit card
/// provider you need. Use width, height and quality arguments to change the
/// output settings.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getCreditCard({required enums.CreditCard code, int? width, int? height, int? quality}) async {
final String apiPath = '/avatars/credit-cards/{code}'.replaceAll('{code}', code.value);
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Use this endpoint to fetch the favorite icon (AKA favicon) of any remote
/// website URL.
///
/// This endpoint does not follow HTTP redirects.
Future<Uint8List> getFavicon({required String url}) async {
final String apiPath = '/avatars/favicon';
/// Use this endpoint to fetch the favorite icon (AKA favicon) of any remote
/// website URL.
///
/// This endpoint does not follow HTTP redirects.
Future<Uint8List> getFavicon({required String url}) async {
final String apiPath = '/avatars/favicon';
final Map<String, dynamic> params = {
'url': url,
final Map<String, dynamic> params = {
'url': url,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// You can use this endpoint to show different country flags icons to your
/// users. The code argument receives the 2 letter country code. Use width,
/// height and quality arguments to change the output settings. Country codes
/// follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getFlag({
required enums.Flag code,
int? width,
int? height,
int? quality,
}) async {
final String apiPath = '/avatars/flags/{code}'.replaceAll(
'{code}',
code.value,
);
/// You can use this endpoint to show different country flags icons to your
/// users. The code argument receives the 2 letter country code. Use width,
/// height and quality arguments to change the output settings. Country codes
/// follow the [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) standard.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getFlag({required enums.Flag code, int? width, int? height, int? quality}) async {
final String apiPath = '/avatars/flags/{code}'.replaceAll('{code}', code.value);
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
final Map<String, dynamic> params = {
'width': width,
'height': height,
'quality': quality,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Use this endpoint to fetch a remote image URL and crop it to any image size
/// you want. This endpoint is very useful if you need to crop and display
/// remote images in your app or in case you want to make sure a 3rd party
/// image is properly served using a TLS protocol.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 400x400px.
///
/// This endpoint does not follow HTTP redirects.
Future<Uint8List> getImage({
required String url,
int? width,
int? height,
}) async {
final String apiPath = '/avatars/image';
/// Use this endpoint to fetch a remote image URL and crop it to any image size
/// you want. This endpoint is very useful if you need to crop and display
/// remote images in your app or in case you want to make sure a 3rd party
/// image is properly served using a TLS protocol.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 400x400px.
///
/// This endpoint does not follow HTTP redirects.
Future<Uint8List> getImage({required String url, int? width, int? height}) async {
final String apiPath = '/avatars/image';
final Map<String, dynamic> params = {
'url': url,
'width': width,
'height': height,
final Map<String, dynamic> params = {
'url': url,
'width': width,
'height': height,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Use this endpoint to show your user initials avatar icon on your website or
/// app. By default, this route will try to print your logged-in user name or
/// email initials. You can also overwrite the user name if you pass the 'name'
/// parameter. If no name is given and no user is logged, an empty avatar will
/// be returned.
///
/// You can use the color and background params to change the avatar colors. By
/// default, a random theme will be selected. The random theme will persist for
/// the user's initials when reloading the same theme will always return for
/// the same initials.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getInitials({
String? name,
int? width,
int? height,
String? background,
}) async {
final String apiPath = '/avatars/initials';
/// Use this endpoint to show your user initials avatar icon on your website or
/// app. By default, this route will try to print your logged-in user name or
/// email initials. You can also overwrite the user name if you pass the 'name'
/// parameter. If no name is given and no user is logged, an empty avatar will
/// be returned.
///
/// You can use the color and background params to change the avatar colors. By
/// default, a random theme will be selected. The random theme will persist for
/// the user's initials when reloading the same theme will always return for
/// the same initials.
///
/// When one dimension is specified and the other is 0, the image is scaled
/// with preserved aspect ratio. If both dimensions are 0, the API provides an
/// image at source quality. If dimensions are not specified, the default size
/// of image returned is 100x100px.
///
Future<Uint8List> getInitials({String? name, int? width, int? height, String? background}) async {
final String apiPath = '/avatars/initials';
final Map<String, dynamic> params = {
'name': name,
'width': width,
'height': height,
'background': background,
final Map<String, dynamic> params = {
'name': name,
'width': width,
'height': height,
'background': background,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Converts a given plain text to a QR code image. You can use the query
/// parameters to change the size and style of the resulting image.
///
Future<Uint8List> getQR({
required String text,
int? size,
int? margin,
bool? download,
}) async {
final String apiPath = '/avatars/qr';
/// Converts a given plain text to a QR code image. You can use the query
/// parameters to change the size and style of the resulting image.
///
Future<Uint8List> getQR({required String text, int? size, int? margin, bool? download}) async {
final String apiPath = '/avatars/qr';
final Map<String, dynamic> params = {
'text': text,
'size': size,
'margin': margin,
'download': download,
final Map<String, dynamic> params = {
'text': text,
'size': size,
'margin': margin,
'download': download,
'project': client.config['project'],
'session': client.config['session'],
};
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
}
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
}
+1211 -1550
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+36 -34
View File
@@ -3,47 +3,49 @@ part of '../dart_appwrite.dart';
/// The GraphQL API allows you to query and mutate your Appwrite server using
/// GraphQL.
class Graphql extends Service {
Graphql(super.client);
Graphql(super.client);
/// Execute a GraphQL mutation.
Future query({required Map query}) async {
final String apiPath = '/graphql';
/// Execute a GraphQL mutation.
Future query({required Map query}) async {
final String apiPath = '/graphql';
final Map<String, dynamic> apiParams = {'query': query};
final Map<String, dynamic> apiParams = {
'query': query,
final Map<String, String> apiHeaders = {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
};
};
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
return res.data;
}
};
/// Execute a GraphQL mutation.
Future mutation({required Map query}) async {
final String apiPath = '/graphql/mutation';
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {'query': query};
return res.data;
final Map<String, String> apiHeaders = {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
};
}
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// Execute a GraphQL mutation.
Future mutation({required Map query}) async {
final String apiPath = '/graphql/mutation';
return res.data;
}
}
final Map<String, dynamic> apiParams = {
'query': query,
};
final Map<String, String> apiHeaders = {
'x-sdk-graphql': 'true',
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
return res.data;
}
}
+354 -329
View File
@@ -3,434 +3,459 @@ part of '../dart_appwrite.dart';
/// The Health service allows you to both validate and monitor your Appwrite
/// server&#039;s health.
class Health extends Service {
Health(super.client);
Health(super.client);
/// Check the Appwrite HTTP server is up and responsive.
Future<models.HealthStatus> get() async {
final String apiPath = '/health';
/// Check the Appwrite HTTP server is up and responsive.
Future<models.HealthStatus> get() async {
final String apiPath = '/health';
final Map<String, dynamic> apiParams = {};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthStatus.fromMap(res.data);
}
return models.HealthStatus.fromMap(res.data);
/// Check the Appwrite Antivirus server is up and connection is successful.
Future<models.HealthAntivirus> getAntivirus() async {
final String apiPath = '/health/anti-virus';
}
final Map<String, dynamic> apiParams = {};
/// Check the Appwrite Antivirus server is up and connection is successful.
Future<models.HealthAntivirus> getAntivirus() async {
final String apiPath = '/health/anti-virus';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.HealthAntivirus.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// Check the Appwrite in-memory cache servers are up and connection is
/// successful.
Future<models.HealthStatus> getCache() async {
final String apiPath = '/health/cache';
return models.HealthAntivirus.fromMap(res.data);
final Map<String, dynamic> apiParams = {};
}
final Map<String, String> apiHeaders = {};
/// Check the Appwrite in-memory cache servers are up and connection is
/// successful.
Future<models.HealthStatus> getCache() async {
final String apiPath = '/health/cache';
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
};
return models.HealthStatus.fromMap(res.data);
}
final Map<String, String> apiHeaders = {
};
/// Get the SSL certificate for a domain
Future<models.HealthCertificate> getCertificate({String? domain}) async {
final String apiPath = '/health/certificate';
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {'domain': domain};
return models.HealthStatus.fromMap(res.data);
final Map<String, String> apiHeaders = {};
}
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// Get the SSL certificate for a domain
Future<models.HealthCertificate> getCertificate({String? domain}) async {
final String apiPath = '/health/certificate';
return models.HealthCertificate.fromMap(res.data);
}
final Map<String, dynamic> apiParams = {
'domain': domain,
/// Check the Appwrite database servers are up and connection is successful.
Future<models.HealthStatus> getDB() async {
final String apiPath = '/health/db';
};
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {
};
final Map<String, String> apiHeaders = {};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.HealthCertificate.fromMap(res.data);
return models.HealthStatus.fromMap(res.data);
}
}
/// Check the Appwrite pub-sub servers are up and connection is successful.
Future<models.HealthStatus> getPubSub() async {
final String apiPath = '/health/pubsub';
/// Check the Appwrite database servers are up and connection is successful.
Future<models.HealthStatus> getDB() async {
final String apiPath = '/health/db';
final Map<String, dynamic> apiParams = {};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthStatus.fromMap(res.data);
}
return models.HealthStatus.fromMap(res.data);
/// Get the number of builds that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueBuilds({int? threshold}) async {
final String apiPath = '/health/queue/builds';
}
final Map<String, dynamic> apiParams = {'threshold': threshold};
/// Check the Appwrite pub-sub servers are up and connection is successful.
Future<models.HealthStatus> getPubSub() async {
final String apiPath = '/health/pubsub';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.HealthQueue.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// Get the number of certificates that are waiting to be issued against
/// [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue
/// server.
Future<models.HealthQueue> getQueueCertificates({int? threshold}) async {
final String apiPath = '/health/queue/certificates';
return models.HealthStatus.fromMap(res.data);
final Map<String, dynamic> apiParams = {'threshold': threshold};
}
final Map<String, String> apiHeaders = {};
/// Get the number of builds that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueBuilds({int? threshold}) async {
final String apiPath = '/health/queue/builds';
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
'threshold': threshold,
return models.HealthQueue.fromMap(res.data);
}
};
/// Get the number of database changes that are waiting to be processed in the
/// Appwrite internal queue server.
Future<models.HealthQueue> getQueueDatabases({
String? name,
int? threshold,
}) async {
final String apiPath = '/health/queue/databases';
final Map<String, String> apiHeaders = {
};
final Map<String, dynamic> apiParams = {
'name': name,
'threshold': threshold,
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, String> apiHeaders = {};
return models.HealthQueue.fromMap(res.data);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
}
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of certificates that are waiting to be issued against
/// [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue
/// server.
Future<models.HealthQueue> getQueueCertificates({int? threshold}) async {
final String apiPath = '/health/queue/certificates';
/// Get the number of background destructive changes that are waiting to be
/// processed in the Appwrite internal queue server.
Future<models.HealthQueue> getQueueDeletes({int? threshold}) async {
final String apiPath = '/health/queue/deletes';
final Map<String, dynamic> apiParams = {'threshold': threshold};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.HealthQueue.fromMap(res.data);
}
/// Returns the amount of failed jobs in a given queue.
///
Future<models.HealthQueue> getFailedJobs({
required enums.Name name,
int? threshold,
}) async {
final String apiPath = '/health/queue/failed/{name}'.replaceAll(
'{name}',
name.value,
);
final Map<String, dynamic> apiParams = {
'threshold': threshold,
final Map<String, dynamic> apiParams = {'threshold': threshold};
};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of function executions that are waiting to be processed in
/// the Appwrite internal queue server.
Future<models.HealthQueue> getQueueFunctions({int? threshold}) async {
final String apiPath = '/health/queue/functions';
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {'threshold': threshold};
return models.HealthQueue.fromMap(res.data);
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
}
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of database changes that are waiting to be processed in the
/// Appwrite internal queue server.
Future<models.HealthQueue> getQueueDatabases({String? name, int? threshold}) async {
final String apiPath = '/health/queue/databases';
/// Get the number of logs that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueLogs({int? threshold}) async {
final String apiPath = '/health/queue/logs';
final Map<String, dynamic> apiParams = {
'name': name,
'threshold': threshold,
final Map<String, dynamic> apiParams = {'threshold': threshold};
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthQueue.fromMap(res.data);
}
return models.HealthQueue.fromMap(res.data);
/// Get the number of mails that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueMails({int? threshold}) async {
final String apiPath = '/health/queue/mails';
}
final Map<String, dynamic> apiParams = {'threshold': threshold};
/// Get the number of background destructive changes that are waiting to be
/// processed in the Appwrite internal queue server.
Future<models.HealthQueue> getQueueDeletes({int? threshold}) async {
final String apiPath = '/health/queue/deletes';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
'threshold': threshold,
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
};
return models.HealthQueue.fromMap(res.data);
}
final Map<String, String> apiHeaders = {
};
/// Get the number of messages that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueMessaging({int? threshold}) async {
final String apiPath = '/health/queue/messaging';
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {'threshold': threshold};
return models.HealthQueue.fromMap(res.data);
final Map<String, String> apiHeaders = {};
}
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// Returns the amount of failed jobs in a given queue.
///
Future<models.HealthQueue> getFailedJobs({required enums.Name name, int? threshold}) async {
final String apiPath = '/health/queue/failed/{name}'.replaceAll('{name}', name.value);
return models.HealthQueue.fromMap(res.data);
}
final Map<String, dynamic> apiParams = {
'threshold': threshold,
/// Get the number of migrations that are waiting to be processed in the
/// Appwrite internal queue server.
Future<models.HealthQueue> getQueueMigrations({int? threshold}) async {
final String apiPath = '/health/queue/migrations';
};
final Map<String, dynamic> apiParams = {'threshold': threshold};
final Map<String, String> apiHeaders = {
};
final Map<String, String> apiHeaders = {};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.HealthQueue.fromMap(res.data);
return models.HealthQueue.fromMap(res.data);
}
}
/// Get the number of metrics that are waiting to be processed in the Appwrite
/// stats resources queue.
Future<models.HealthQueue> getQueueStatsResources({int? threshold}) async {
final String apiPath = '/health/queue/stats-resources';
/// Get the number of function executions that are waiting to be processed in
/// the Appwrite internal queue server.
Future<models.HealthQueue> getQueueFunctions({int? threshold}) async {
final String apiPath = '/health/queue/functions';
final Map<String, dynamic> apiParams = {'threshold': threshold};
final Map<String, dynamic> apiParams = {
'threshold': threshold,
final Map<String, String> apiHeaders = {};
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.HealthQueue.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// Get the number of metrics that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueUsage({int? threshold}) async {
final String apiPath = '/health/queue/stats-usage';
return models.HealthQueue.fromMap(res.data);
final Map<String, dynamic> apiParams = {'threshold': threshold};
}
final Map<String, String> apiHeaders = {};
/// Get the number of logs that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueLogs({int? threshold}) async {
final String apiPath = '/health/queue/logs';
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
'threshold': threshold,
return models.HealthQueue.fromMap(res.data);
}
};
/// Get the number of webhooks that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueWebhooks({int? threshold}) async {
final String apiPath = '/health/queue/webhooks';
final Map<String, String> apiHeaders = {
};
final Map<String, dynamic> apiParams = {'threshold': threshold};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, String> apiHeaders = {};
return models.HealthQueue.fromMap(res.data);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
}
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of mails that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueMails({int? threshold}) async {
final String apiPath = '/health/queue/mails';
/// Check the Appwrite storage device is up and connection is successful.
Future<models.HealthStatus> getStorage() async {
final String apiPath = '/health/storage';
final Map<String, dynamic> apiParams = {
'threshold': threshold,
final Map<String, dynamic> apiParams = {};
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthStatus.fromMap(res.data);
}
return models.HealthQueue.fromMap(res.data);
/// Check the Appwrite local storage device is up and connection is successful.
Future<models.HealthStatus> getStorageLocal() async {
final String apiPath = '/health/storage/local';
}
final Map<String, dynamic> apiParams = {};
/// Get the number of messages that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueMessaging({int? threshold}) async {
final String apiPath = '/health/queue/messaging';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
'threshold': threshold,
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
};
return models.HealthStatus.fromMap(res.data);
}
final Map<String, String> apiHeaders = {
};
/// Check the Appwrite server time is synced with Google remote NTP server. We
/// use this technology to smoothly handle leap seconds with no disruptive
/// events. The [Network Time
/// Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is
/// used by hundreds of millions of computers and devices to synchronize their
/// clocks over the Internet. If your computer sets its own clock, it likely
/// uses NTP.
Future<models.HealthTime> getTime() async {
final String apiPath = '/health/time';
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {};
return models.HealthQueue.fromMap(res.data);
final Map<String, String> apiHeaders = {};
}
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// Get the number of migrations that are waiting to be processed in the
/// Appwrite internal queue server.
Future<models.HealthQueue> getQueueMigrations({int? threshold}) async {
final String apiPath = '/health/queue/migrations';
return models.HealthTime.fromMap(res.data);
}
}
final Map<String, dynamic> apiParams = {
'threshold': threshold,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of metrics that are waiting to be processed in the Appwrite
/// stats resources queue.
Future<models.HealthQueue> getQueueStatsResources({int? threshold}) async {
final String apiPath = '/health/queue/stats-resources';
final Map<String, dynamic> apiParams = {
'threshold': threshold,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of metrics that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueUsage({int? threshold}) async {
final String apiPath = '/health/queue/stats-usage';
final Map<String, dynamic> apiParams = {
'threshold': threshold,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthQueue.fromMap(res.data);
}
/// Get the number of webhooks that are waiting to be processed in the Appwrite
/// internal queue server.
Future<models.HealthQueue> getQueueWebhooks({int? threshold}) async {
final String apiPath = '/health/queue/webhooks';
final Map<String, dynamic> apiParams = {
'threshold': threshold,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthQueue.fromMap(res.data);
}
/// Check the Appwrite storage device is up and connection is successful.
Future<models.HealthStatus> getStorage() async {
final String apiPath = '/health/storage';
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthStatus.fromMap(res.data);
}
/// Check the Appwrite local storage device is up and connection is successful.
Future<models.HealthStatus> getStorageLocal() async {
final String apiPath = '/health/storage/local';
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthStatus.fromMap(res.data);
}
/// Check the Appwrite server time is synced with Google remote NTP server. We
/// use this technology to smoothly handle leap seconds with no disruptive
/// events. The [Network Time
/// Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is
/// used by hundreds of millions of computers and devices to synchronize their
/// clocks over the Internet. If your computer sets its own clock, it likely
/// uses NTP.
Future<models.HealthTime> getTime() async {
final String apiPath = '/health/time';
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.HealthTime.fromMap(res.data);
}
}
+127 -119
View File
@@ -3,162 +3,170 @@ part of '../dart_appwrite.dart';
/// The Locale service allows you to customize your app based on your users&#039;
/// location.
class Locale extends Service {
Locale(super.client);
Locale(super.client);
/// Get the current user location based on IP. Returns an object with user
/// country code, country name, continent name, continent code, ip address and
/// suggested currency. You can use the locale header to get the data in a
/// supported language.
///
/// ([IP Geolocation by DB-IP](https://db-ip.com))
Future<models.Locale> get() async {
final String apiPath = '/locale';
/// Get the current user location based on IP. Returns an object with user
/// country code, country name, continent name, continent code, ip address and
/// suggested currency. You can use the locale header to get the data in a
/// supported language.
///
/// ([IP Geolocation by DB-IP](https://db-ip.com))
Future<models.Locale> get() async {
final String apiPath = '/locale';
final Map<String, dynamic> apiParams = {};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Locale.fromMap(res.data);
}
return models.Locale.fromMap(res.data);
/// List of all locale codes in [ISO
/// 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
Future<models.LocaleCodeList> listCodes() async {
final String apiPath = '/locale/codes';
}
final Map<String, dynamic> apiParams = {};
/// List of all locale codes in [ISO
/// 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
Future<models.LocaleCodeList> listCodes() async {
final String apiPath = '/locale/codes';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.LocaleCodeList.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// List of all continents. You can use the locale header to get the data in a
/// supported language.
Future<models.ContinentList> listContinents() async {
final String apiPath = '/locale/continents';
return models.LocaleCodeList.fromMap(res.data);
final Map<String, dynamic> apiParams = {};
}
final Map<String, String> apiHeaders = {};
/// List of all continents. You can use the locale header to get the data in a
/// supported language.
Future<models.ContinentList> listContinents() async {
final String apiPath = '/locale/continents';
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
};
return models.ContinentList.fromMap(res.data);
}
final Map<String, String> apiHeaders = {
};
/// List of all countries. You can use the locale header to get the data in a
/// supported language.
Future<models.CountryList> listCountries() async {
final String apiPath = '/locale/countries';
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {};
return models.ContinentList.fromMap(res.data);
final Map<String, String> apiHeaders = {};
}
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// List of all countries. You can use the locale header to get the data in a
/// supported language.
Future<models.CountryList> listCountries() async {
final String apiPath = '/locale/countries';
return models.CountryList.fromMap(res.data);
}
final Map<String, dynamic> apiParams = {
};
/// List of all countries that are currently members of the EU. You can use the
/// locale header to get the data in a supported language.
Future<models.CountryList> listCountriesEU() async {
final String apiPath = '/locale/countries/eu';
final Map<String, String> apiHeaders = {
};
final Map<String, dynamic> apiParams = {};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, String> apiHeaders = {};
return models.CountryList.fromMap(res.data);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
}
return models.CountryList.fromMap(res.data);
}
/// List of all countries that are currently members of the EU. You can use the
/// locale header to get the data in a supported language.
Future<models.CountryList> listCountriesEU() async {
final String apiPath = '/locale/countries/eu';
/// List of all countries phone codes. You can use the locale header to get the
/// data in a supported language.
Future<models.PhoneList> listCountriesPhones() async {
final String apiPath = '/locale/countries/phones';
final Map<String, dynamic> apiParams = {
};
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {
};
final Map<String, String> apiHeaders = {};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.CountryList.fromMap(res.data);
return models.PhoneList.fromMap(res.data);
}
}
/// List of all currencies, including currency symbol, name, plural, and
/// decimal digits for all major and minor currencies. You can use the locale
/// header to get the data in a supported language.
Future<models.CurrencyList> listCurrencies() async {
final String apiPath = '/locale/currencies';
/// List of all countries phone codes. You can use the locale header to get the
/// data in a supported language.
Future<models.PhoneList> listCountriesPhones() async {
final String apiPath = '/locale/countries/phones';
final Map<String, dynamic> apiParams = {};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.CurrencyList.fromMap(res.data);
}
return models.PhoneList.fromMap(res.data);
/// List of all languages classified by ISO 639-1 including 2-letter code, name
/// in English, and name in the respective language.
Future<models.LanguageList> listLanguages() async {
final String apiPath = '/locale/languages';
}
final Map<String, dynamic> apiParams = {};
/// List of all currencies, including currency symbol, name, plural, and
/// decimal digits for all major and minor currencies. You can use the locale
/// header to get the data in a supported language.
Future<models.CurrencyList> listCurrencies() async {
final String apiPath = '/locale/currencies';
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.LanguageList.fromMap(res.data);
}
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.CurrencyList.fromMap(res.data);
}
/// List of all languages classified by ISO 639-1 including 2-letter code, name
/// in English, and name in the respective language.
Future<models.LanguageList> listLanguages() async {
final String apiPath = '/locale/languages';
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.LanguageList.fromMap(res.data);
}
}
+1155 -1473
View File
File diff suppressed because it is too large Load Diff
+582 -700
View File
File diff suppressed because it is too large Load Diff
+264 -356
View File
@@ -2,421 +2,329 @@ part of '../dart_appwrite.dart';
/// The Storage service allows you to manage your project files.
class Storage extends Service {
Storage(super.client);
Storage(super.client);
/// Get a list of all the storage buckets. You can use the query params to
/// filter your results.
Future<models.BucketList> listBuckets({
List<String>? queries,
String? search,
}) async {
final String apiPath = '/storage/buckets';
/// Get a list of all the storage buckets. You can use the query params to
/// filter your results.
Future<models.BucketList> listBuckets({List<String>? queries, String? search}) async {
final String apiPath = '/storage/buckets';
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
final Map<String, String> apiHeaders = {};
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.BucketList.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// Create a new storage bucket.
Future<models.Bucket> createBucket({
required String bucketId,
required String name,
List<String>? permissions,
bool? fileSecurity,
bool? enabled,
int? maximumFileSize,
List<String>? allowedFileExtensions,
enums.Compression? compression,
bool? encryption,
bool? antivirus,
}) async {
final String apiPath = '/storage/buckets';
return models.BucketList.fromMap(res.data);
final Map<String, dynamic> apiParams = {
'bucketId': bucketId,
'name': name,
'permissions': permissions,
'fileSecurity': fileSecurity,
'enabled': enabled,
'maximumFileSize': maximumFileSize,
'allowedFileExtensions': allowedFileExtensions,
'compression': compression?.value,
'encryption': encryption,
'antivirus': antivirus,
};
}
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
/// Create a new storage bucket.
Future<models.Bucket> createBucket({required String bucketId, required String name, List<String>? permissions, bool? fileSecurity, bool? enabled, int? maximumFileSize, List<String>? allowedFileExtensions, enums.Compression? compression, bool? encryption, bool? antivirus}) async {
final String apiPath = '/storage/buckets';
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
'bucketId': bucketId,
'name': name,
'permissions': permissions,
'fileSecurity': fileSecurity,
'enabled': enabled,
'maximumFileSize': maximumFileSize,
'allowedFileExtensions': allowedFileExtensions,
'compression': compression?.value,
'encryption': encryption,
'antivirus': antivirus,
return models.Bucket.fromMap(res.data);
}
};
/// Get a storage bucket by its unique ID. This endpoint response returns a
/// JSON object with the storage bucket metadata.
Future<models.Bucket> getBucket({required String bucketId}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll(
'{bucketId}',
bucketId,
);
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
final Map<String, dynamic> apiParams = {};
};
final Map<String, String> apiHeaders = {};
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Bucket.fromMap(res.data);
return models.Bucket.fromMap(res.data);
}
}
/// Update a storage bucket by its unique ID.
Future<models.Bucket> updateBucket({
required String bucketId,
required String name,
List<String>? permissions,
bool? fileSecurity,
bool? enabled,
int? maximumFileSize,
List<String>? allowedFileExtensions,
enums.Compression? compression,
bool? encryption,
bool? antivirus,
}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll(
'{bucketId}',
bucketId,
);
/// Get a storage bucket by its unique ID. This endpoint response returns a
/// JSON object with the storage bucket metadata.
Future<models.Bucket> getBucket({required String bucketId}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll('{bucketId}', bucketId);
final Map<String, dynamic> apiParams = {
'name': name,
'permissions': permissions,
'fileSecurity': fileSecurity,
'enabled': enabled,
'maximumFileSize': maximumFileSize,
'allowedFileExtensions': allowedFileExtensions,
'compression': compression?.value,
'encryption': encryption,
'antivirus': antivirus,
};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.put,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Bucket.fromMap(res.data);
}
return models.Bucket.fromMap(res.data);
/// Delete a storage bucket by its unique ID.
Future deleteBucket({required String bucketId}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll(
'{bucketId}',
bucketId,
);
}
final Map<String, dynamic> apiParams = {};
/// Update a storage bucket by its unique ID.
Future<models.Bucket> updateBucket({required String bucketId, required String name, List<String>? permissions, bool? fileSecurity, bool? enabled, int? maximumFileSize, List<String>? allowedFileExtensions, enums.Compression? compression, bool? encryption, bool? antivirus}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll('{bucketId}', bucketId);
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final Map<String, dynamic> apiParams = {
'name': name,
'permissions': permissions,
'fileSecurity': fileSecurity,
'enabled': enabled,
'maximumFileSize': maximumFileSize,
'allowedFileExtensions': allowedFileExtensions,
'compression': compression?.value,
'encryption': encryption,
'antivirus': antivirus,
final res = await client.call(
HttpMethod.delete,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
};
return res.data;
}
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
/// Get a list of all the user files. You can use the query params to filter
/// your results.
Future<models.FileList> listFiles({
required String bucketId,
List<String>? queries,
String? search,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files'.replaceAll(
'{bucketId}',
bucketId,
);
};
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final res = await client.call(HttpMethod.put, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, String> apiHeaders = {};
return models.Bucket.fromMap(res.data);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
}
return models.FileList.fromMap(res.data);
}
/// Delete a storage bucket by its unique ID.
Future deleteBucket({required String bucketId}) async {
final String apiPath = '/storage/buckets/{bucketId}'.replaceAll('{bucketId}', bucketId);
/// Create a new file. Before using this route, you should create a new bucket
/// resource using either a [server
/// integration](https://appwrite.io/docs/server/storage#storageCreateBucket)
/// API or directly from your Appwrite console.
///
/// Larger files should be uploaded using multiple requests with the
/// [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range)
/// header to send a partial request with a maximum supported chunk of `5MB`.
/// The `content-range` header values should always be in bytes.
///
/// When the first request is sent, the server will return the **File** object,
/// and the subsequent part request must include the file's **id** in
/// `x-appwrite-id` header to allow the server to know that the partial upload
/// is for the existing file and not for a new one.
///
/// If you're creating a new file using one of the Appwrite SDKs, all the
/// chunking logic will be managed by the SDK internally.
///
Future<models.File> createFile({
required String bucketId,
required String fileId,
required InputFile file,
List<String>? permissions,
Function(UploadProgress)? onProgress,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files'.replaceAll(
'{bucketId}',
bucketId,
);
final Map<String, dynamic> apiParams = {
};
final Map<String, dynamic> apiParams = {
'fileId': fileId,
'file': file,
'permissions': permissions,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
final Map<String, String> apiHeaders = {
'content-type': 'multipart/form-data',
};
};
String idParamName = '';
idParamName = 'fileId';
final paramName = 'file';
final res = await client.chunkedUpload(
path: apiPath,
params: apiParams,
paramName: paramName,
idParamName: idParamName,
headers: apiHeaders,
onProgress: onProgress,
);
final res = await client.call(HttpMethod.delete, path: apiPath, params: apiParams, headers: apiHeaders);
return models.File.fromMap(res.data);
}
return res.data;
/// Get a file by its unique ID. This endpoint response returns a JSON object
/// with the file metadata.
Future<models.File> getFile({
required String bucketId,
required String fileId,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
}
final Map<String, dynamic> apiParams = {};
/// Get a list of all the user files. You can use the query params to filter
/// your results.
Future<models.FileList> listFiles({required String bucketId, List<String>? queries, String? search}) async {
final String apiPath = '/storage/buckets/{bucketId}/files'.replaceAll('{bucketId}', bucketId);
final Map<String, String> apiHeaders = {};
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
};
return models.File.fromMap(res.data);
}
final Map<String, String> apiHeaders = {
};
/// Update a file by its unique ID. Only users with write permissions have
/// access to update this resource.
Future<models.File> updateFile({
required String bucketId,
required String fileId,
String? name,
List<String>? permissions,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> apiParams = {
'name': name,
'permissions': permissions,
};
return models.FileList.fromMap(res.data);
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
}
final res = await client.call(
HttpMethod.put,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
/// Create a new file. Before using this route, you should create a new bucket
/// resource using either a [server
/// integration](https://appwrite.io/docs/server/storage#storageCreateBucket)
/// API or directly from your Appwrite console.
///
/// Larger files should be uploaded using multiple requests with the
/// [content-range](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Range)
/// header to send a partial request with a maximum supported chunk of `5MB`.
/// The `content-range` header values should always be in bytes.
///
/// When the first request is sent, the server will return the **File** object,
/// and the subsequent part request must include the file's **id** in
/// `x-appwrite-id` header to allow the server to know that the partial upload
/// is for the existing file and not for a new one.
///
/// If you're creating a new file using one of the Appwrite SDKs, all the
/// chunking logic will be managed by the SDK internally.
///
Future<models.File> createFile({required String bucketId, required String fileId, required InputFile file, List<String>? permissions, Function(UploadProgress)? onProgress}) async {
final String apiPath = '/storage/buckets/{bucketId}/files'.replaceAll('{bucketId}', bucketId);
return models.File.fromMap(res.data);
}
final Map<String, dynamic> apiParams = {
'fileId': fileId,
'file': file,
'permissions': permissions,
/// Delete a file by its unique ID. Only users with write permissions have
/// access to delete this resource.
Future deleteFile({required String bucketId, required String fileId}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
};
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {
'content-type': 'multipart/form-data',
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
};
final res = await client.call(
HttpMethod.delete,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
String idParamName = '';
idParamName = 'fileId';
final paramName = 'file';
final res = await client.chunkedUpload(
path: apiPath,
params: apiParams,
paramName: paramName,
idParamName: idParamName,
headers: apiHeaders,
onProgress: onProgress,
);
return res.data;
}
return models.File.fromMap(res.data);
/// Get a file content by its unique ID. The endpoint response return with a
/// 'Content-Disposition: attachment' header that tells the browser to start
/// downloading the file to user downloads directory.
Future<Uint8List> getFileDownload({
required String bucketId,
required String fileId,
String? token,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/download'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
}
final Map<String, dynamic> params = {
'token': token,
/// Get a file by its unique ID. This endpoint response returns a JSON object
/// with the file metadata.
Future<models.File> getFile({required String bucketId, required String fileId}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
'project': client.config['project'],
'session': client.config['session'],
};
final Map<String, dynamic> apiParams = {
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
final Map<String, String> apiHeaders = {
};
/// Get a file preview image. Currently, this method supports preview for image
/// files (jpg, png, and gif), other supported formats, like pdf, docs, slides,
/// and spreadsheets, will return the file icon image. You can also pass query
/// string arguments for cutting and resizing your preview image. Preview is
/// supported only for image files smaller than 10MB.
Future<Uint8List> getFilePreview({
required String bucketId,
required String fileId,
int? width,
int? height,
enums.ImageGravity? gravity,
int? quality,
int? borderWidth,
String? borderColor,
int? borderRadius,
double? opacity,
int? rotation,
String? background,
enums.ImageFormat? output,
String? token,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/preview'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
final Map<String, dynamic> params = {
'width': width,
'height': height,
'gravity': gravity?.value,
'quality': quality,
'borderWidth': borderWidth,
'borderColor': borderColor,
'borderRadius': borderRadius,
'opacity': opacity,
'rotation': rotation,
'background': background,
'output': output?.value,
'token': token,
return models.File.fromMap(res.data);
'project': client.config['project'],
'session': client.config['session'],
};
}
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
/// Update a file by its unique ID. Only users with write permissions have
/// access to update this resource.
Future<models.File> updateFile({required String bucketId, required String fileId, String? name, List<String>? permissions}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
/// Get a file content by its unique ID. This endpoint is similar to the
/// download method but returns with no 'Content-Disposition: attachment'
/// header.
Future<Uint8List> getFileView({
required String bucketId,
required String fileId,
String? token,
}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/view'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
final Map<String, dynamic> apiParams = {
'name': name,
'permissions': permissions,
final Map<String, dynamic> params = {
'token': token,
};
'project': client.config['project'],
'session': client.config['session'],
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: params,
responseType: ResponseType.bytes,
);
return res.data;
}
}
};
final res = await client.call(HttpMethod.put, path: apiPath, params: apiParams, headers: apiHeaders);
return models.File.fromMap(res.data);
}
/// Delete a file by its unique ID. Only users with write permissions have
/// access to delete this resource.
Future deleteFile({required String bucketId, required String fileId}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.delete, path: apiPath, params: apiParams, headers: apiHeaders);
return res.data;
}
/// Get a file content by its unique ID. The endpoint response return with a
/// 'Content-Disposition: attachment' header that tells the browser to start
/// downloading the file to user downloads directory.
Future<Uint8List> getFileDownload({required String bucketId, required String fileId, String? token}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/download'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final Map<String, dynamic> params = {
'token': token,
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Get a file preview image. Currently, this method supports preview for image
/// files (jpg, png, and gif), other supported formats, like pdf, docs, slides,
/// and spreadsheets, will return the file icon image. You can also pass query
/// string arguments for cutting and resizing your preview image. Preview is
/// supported only for image files smaller than 10MB.
Future<Uint8List> getFilePreview({required String bucketId, required String fileId, int? width, int? height, enums.ImageGravity? gravity, int? quality, int? borderWidth, String? borderColor, int? borderRadius, double? opacity, int? rotation, String? background, enums.ImageFormat? output, String? token}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/preview'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final Map<String, dynamic> params = {
'width': width,
'height': height,
'gravity': gravity?.value,
'quality': quality,
'borderWidth': borderWidth,
'borderColor': borderColor,
'borderRadius': borderRadius,
'opacity': opacity,
'rotation': rotation,
'background': background,
'output': output?.value,
'token': token,
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
/// Get a file content by its unique ID. This endpoint is similar to the
/// download method but returns with no 'Content-Disposition: attachment'
/// header.
Future<Uint8List> getFileView({required String bucketId, required String fileId, String? token}) async {
final String apiPath = '/storage/buckets/{bucketId}/files/{fileId}/view'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final Map<String, dynamic> params = {
'token': token,
'project': client.config['project'],
'session': client.config['session'],
};
final res = await client.call(HttpMethod.get, path: apiPath, params: params, responseType: ResponseType.bytes);
return res.data;
}
}
File diff suppressed because it is too large Load Diff
+318 -353
View File
@@ -3,356 +3,321 @@ part of '../dart_appwrite.dart';
/// The Teams service allows you to group users of your project and to enable
/// them to share read and write access to your project resources
class Teams extends Service {
Teams(super.client);
/// Get a list of all the teams in which the current user is a member. You can
/// use the parameters to filter your results.
Future<models.TeamList> list({List<String>? queries, String? search}) async {
final String apiPath = '/teams';
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.TeamList.fromMap(res.data);
}
/// Create a new team. The user who creates the team will automatically be
/// assigned as the owner of the team. Only the users with the owner role can
/// invite new members, add new owners and delete or update the team.
Future<models.Team> create({
required String teamId,
required String name,
List<String>? roles,
}) async {
final String apiPath = '/teams';
final Map<String, dynamic> apiParams = {
'teamId': teamId,
'name': name,
'roles': roles,
};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Team.fromMap(res.data);
}
/// Get a team by its ID. All team members have read access for this resource.
Future<models.Team> get({required String teamId}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Team.fromMap(res.data);
}
/// Update the team's name by its unique ID.
Future<models.Team> updateName({
required String teamId,
required String name,
}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {'name': name};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.put,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Team.fromMap(res.data);
}
/// Delete a team using its ID. Only team members with the owner role can
/// delete the team.
Future delete({required String teamId}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.delete,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return res.data;
}
/// Use this endpoint to list a team's members using the team's ID. All team
/// members have read access to this endpoint. Hide sensitive attributes from
/// the response by toggling membership privacy in the Console.
Future<models.MembershipList> listMemberships({
required String teamId,
List<String>? queries,
String? search,
}) async {
final String apiPath = '/teams/{teamId}/memberships'.replaceAll(
'{teamId}',
teamId,
);
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.MembershipList.fromMap(res.data);
}
/// Invite a new member to join your team. Provide an ID for existing users, or
/// invite unregistered users using an email or phone number. If initiated from
/// a Client SDK, Appwrite will send an email or sms with a link to join the
/// team to the invited user, and an account will be created for them if one
/// doesn't exist. If initiated from a Server SDK, the new member will be added
/// automatically to the team.
///
/// You only need to provide one of a user ID, email, or phone number. Appwrite
/// will prioritize accepting the user ID > email > phone number if you provide
/// more than one of these parameters.
///
/// Use the `url` parameter to redirect the user from the invitation email to
/// your app. After the user is redirected, use the [Update Team Membership
/// Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus)
/// endpoint to allow the user to accept the invitation to the team.
///
/// Please note that to avoid a [Redirect
/// Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// Appwrite will accept the only redirect URLs under the domains you have
/// added as a platform on the Appwrite Console.
///
Future<models.Membership> createMembership({
required String teamId,
required List<String> roles,
String? email,
String? userId,
String? phone,
String? url,
String? name,
}) async {
final String apiPath = '/teams/{teamId}/memberships'.replaceAll(
'{teamId}',
teamId,
);
final Map<String, dynamic> apiParams = {
'email': email,
'userId': userId,
'phone': phone,
'roles': roles,
'url': url,
'name': name,
};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Membership.fromMap(res.data);
}
/// Get a team member by the membership unique id. All team members have read
/// access for this resource. Hide sensitive attributes from the response by
/// toggling membership privacy in the Console.
Future<models.Membership> getMembership({
required String teamId,
required String membershipId,
}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'
.replaceAll('{teamId}', teamId)
.replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Membership.fromMap(res.data);
}
/// Modify the roles of a team member. Only team members with the owner role
/// have access to this endpoint. Learn more about [roles and
/// permissions](https://appwrite.io/docs/permissions).
///
Future<models.Membership> updateMembership({
required String teamId,
required String membershipId,
required List<String> roles,
}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'
.replaceAll('{teamId}', teamId)
.replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {'roles': roles};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.patch,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Membership.fromMap(res.data);
}
/// This endpoint allows a user to leave a team or for a team owner to delete
/// the membership of any other team member. You can also use this endpoint to
/// delete a user membership even if it is not accepted.
Future deleteMembership({
required String teamId,
required String membershipId,
}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'
.replaceAll('{teamId}', teamId)
.replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.delete,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return res.data;
}
/// Use this endpoint to allow a user to accept an invitation to join a team
/// after being redirected back to your app from the invitation email received
/// by the user.
///
/// If the request is successful, a session for the user is automatically
/// created.
///
Future<models.Membership> updateMembershipStatus({
required String teamId,
required String membershipId,
required String userId,
required String secret,
}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}/status'
.replaceAll('{teamId}', teamId)
.replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {'userId': userId, 'secret': secret};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.patch,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Membership.fromMap(res.data);
}
/// Get the team's shared preferences by its unique ID. If a preference doesn't
/// need to be shared by all team members, prefer storing them in [user
/// preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs).
Future<models.Preferences> getPrefs({required String teamId}) async {
final String apiPath = '/teams/{teamId}/prefs'.replaceAll(
'{teamId}',
teamId,
);
final Map<String, dynamic> apiParams = {};
final Map<String, String> apiHeaders = {};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Preferences.fromMap(res.data);
}
/// Update the team's preferences by its unique ID. The object you pass is
/// stored as is and replaces any previous value. The maximum allowed prefs
/// size is 64kB and throws an error if exceeded.
Future<models.Preferences> updatePrefs({
required String teamId,
required Map prefs,
}) async {
final String apiPath = '/teams/{teamId}/prefs'.replaceAll(
'{teamId}',
teamId,
);
final Map<String, dynamic> apiParams = {'prefs': prefs};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final res = await client.call(
HttpMethod.put,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.Preferences.fromMap(res.data);
}
}
Teams(super.client);
/// Get a list of all the teams in which the current user is a member. You can
/// use the parameters to filter your results.
Future<models.TeamList> list({List<String>? queries, String? search}) async {
final String apiPath = '/teams';
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.TeamList.fromMap(res.data);
}
/// Create a new team. The user who creates the team will automatically be
/// assigned as the owner of the team. Only the users with the owner role can
/// invite new members, add new owners and delete or update the team.
Future<models.Team> create({required String teamId, required String name, List<String>? roles}) async {
final String apiPath = '/teams';
final Map<String, dynamic> apiParams = {
'teamId': teamId,
'name': name,
'roles': roles,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Team.fromMap(res.data);
}
/// Get a team by its ID. All team members have read access for this resource.
Future<models.Team> get({required String teamId}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Team.fromMap(res.data);
}
/// Update the team's name by its unique ID.
Future<models.Team> updateName({required String teamId, required String name}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
'name': name,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.put, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Team.fromMap(res.data);
}
/// Delete a team using its ID. Only team members with the owner role can
/// delete the team.
Future delete({required String teamId}) async {
final String apiPath = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.delete, path: apiPath, params: apiParams, headers: apiHeaders);
return res.data;
}
/// Use this endpoint to list a team's members using the team's ID. All team
/// members have read access to this endpoint. Hide sensitive attributes from
/// the response by toggling membership privacy in the Console.
Future<models.MembershipList> listMemberships({required String teamId, List<String>? queries, String? search}) async {
final String apiPath = '/teams/{teamId}/memberships'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
'queries': queries,
'search': search,
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.MembershipList.fromMap(res.data);
}
/// Invite a new member to join your team. Provide an ID for existing users, or
/// invite unregistered users using an email or phone number. If initiated from
/// a Client SDK, Appwrite will send an email or sms with a link to join the
/// team to the invited user, and an account will be created for them if one
/// doesn't exist. If initiated from a Server SDK, the new member will be added
/// automatically to the team.
///
/// You only need to provide one of a user ID, email, or phone number. Appwrite
/// will prioritize accepting the user ID > email > phone number if you provide
/// more than one of these parameters.
///
/// Use the `url` parameter to redirect the user from the invitation email to
/// your app. After the user is redirected, use the [Update Team Membership
/// Status](https://appwrite.io/docs/references/cloud/client-web/teams#updateMembershipStatus)
/// endpoint to allow the user to accept the invitation to the team.
///
/// Please note that to avoid a [Redirect
/// Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md)
/// Appwrite will accept the only redirect URLs under the domains you have
/// added as a platform on the Appwrite Console.
///
Future<models.Membership> createMembership({required String teamId, required List<String> roles, String? email, String? userId, String? phone, String? url, String? name}) async {
final String apiPath = '/teams/{teamId}/memberships'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
'email': email,
'userId': userId,
'phone': phone,
'roles': roles,
'url': url,
'name': name,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Membership.fromMap(res.data);
}
/// Get a team member by the membership unique id. All team members have read
/// access for this resource. Hide sensitive attributes from the response by
/// toggling membership privacy in the Console.
Future<models.Membership> getMembership({required String teamId, required String membershipId}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Membership.fromMap(res.data);
}
/// Modify the roles of a team member. Only team members with the owner role
/// have access to this endpoint. Learn more about [roles and
/// permissions](https://appwrite.io/docs/permissions).
///
Future<models.Membership> updateMembership({required String teamId, required String membershipId, required List<String> roles}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {
'roles': roles,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.patch, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Membership.fromMap(res.data);
}
/// This endpoint allows a user to leave a team or for a team owner to delete
/// the membership of any other team member. You can also use this endpoint to
/// delete a user membership even if it is not accepted.
Future deleteMembership({required String teamId, required String membershipId}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.delete, path: apiPath, params: apiParams, headers: apiHeaders);
return res.data;
}
/// Use this endpoint to allow a user to accept an invitation to join a team
/// after being redirected back to your app from the invitation email received
/// by the user.
///
/// If the request is successful, a session for the user is automatically
/// created.
///
Future<models.Membership> updateMembershipStatus({required String teamId, required String membershipId, required String userId, required String secret}) async {
final String apiPath = '/teams/{teamId}/memberships/{membershipId}/status'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
final Map<String, dynamic> apiParams = {
'userId': userId,
'secret': secret,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.patch, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Membership.fromMap(res.data);
}
/// Get the team's shared preferences by its unique ID. If a preference doesn't
/// need to be shared by all team members, prefer storing them in [user
/// preferences](https://appwrite.io/docs/references/cloud/client-web/account#getPrefs).
Future<models.Preferences> getPrefs({required String teamId}) async {
final String apiPath = '/teams/{teamId}/prefs'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
};
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Preferences.fromMap(res.data);
}
/// Update the team's preferences by its unique ID. The object you pass is
/// stored as is and replaces any previous value. The maximum allowed prefs
/// size is 64kB and throws an error if exceeded.
Future<models.Preferences> updatePrefs({required String teamId, required Map prefs}) async {
final String apiPath = '/teams/{teamId}/prefs'.replaceAll('{teamId}', teamId);
final Map<String, dynamic> apiParams = {
'prefs': prefs,
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.put, path: apiPath, params: apiParams, headers: apiHeaders);
return models.Preferences.fromMap(res.data);
}
}
+81 -85
View File
@@ -1,113 +1,109 @@
part of '../dart_appwrite.dart';
class Tokens extends Service {
Tokens(super.client);
Tokens(super.client);
/// List all the tokens created for a specific file or bucket. You can use the
/// query params to filter your results.
Future<models.ResourceTokenList> list({
required String bucketId,
required String fileId,
List<String>? queries,
}) async {
final String apiPath = '/tokens/buckets/{bucketId}/files/{fileId}'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
/// List all the tokens created for a specific file or bucket. You can use the
/// query params to filter your results.
Future<models.ResourceTokenList> list({required String bucketId, required String fileId, List<String>? queries}) async {
final String apiPath = '/tokens/buckets/{bucketId}/files/{fileId}'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final Map<String, dynamic> apiParams = {'queries': queries};
final Map<String, dynamic> apiParams = {
'queries': queries,
final Map<String, String> apiHeaders = {};
};
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, String> apiHeaders = {
};
return models.ResourceTokenList.fromMap(res.data);
}
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
/// Create a new token. A token is linked to a file. Token can be passed as a
/// request URL search parameter.
Future<models.ResourceToken> createFileToken({
required String bucketId,
required String fileId,
String? expire,
}) async {
final String apiPath = '/tokens/buckets/{bucketId}/files/{fileId}'
.replaceAll('{bucketId}', bucketId)
.replaceAll('{fileId}', fileId);
return models.ResourceTokenList.fromMap(res.data);
final Map<String, dynamic> apiParams = {'expire': expire};
}
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
/// Create a new token. A token is linked to a file. Token can be passed as a
/// request URL search parameter.
Future<models.ResourceToken> createFileToken({required String bucketId, required String fileId, String? expire}) async {
final String apiPath = '/tokens/buckets/{bucketId}/files/{fileId}'.replaceAll('{bucketId}', bucketId).replaceAll('{fileId}', fileId);
final res = await client.call(
HttpMethod.post,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final Map<String, dynamic> apiParams = {
'expire': expire,
return models.ResourceToken.fromMap(res.data);
}
};
/// Get a token by its unique ID.
Future<models.ResourceToken> get({required String tokenId}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
final Map<String, dynamic> apiParams = {};
};
final Map<String, String> apiHeaders = {};
final res = await client.call(HttpMethod.post, path: apiPath, params: apiParams, headers: apiHeaders);
final res = await client.call(
HttpMethod.get,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
return models.ResourceToken.fromMap(res.data);
return models.ResourceToken.fromMap(res.data);
}
}
/// Update a token by its unique ID. Use this endpoint to update a token's
/// expiry date.
Future<models.ResourceToken> update({
required String tokenId,
String? expire,
}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
/// Get a token by its unique ID.
Future<models.ResourceToken> get({required String tokenId}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
final Map<String, dynamic> apiParams = {'expire': expire};
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final Map<String, String> apiHeaders = {
};
final res = await client.call(
HttpMethod.patch,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
final res = await client.call(HttpMethod.get, path: apiPath, params: apiParams, headers: apiHeaders);
return models.ResourceToken.fromMap(res.data);
}
return models.ResourceToken.fromMap(res.data);
/// Delete a token by its unique ID.
Future delete({required String tokenId}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
}
final Map<String, dynamic> apiParams = {};
/// Update a token by its unique ID. Use this endpoint to update a token's
/// expiry date.
Future<models.ResourceToken> update({required String tokenId, String? expire}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
final Map<String, String> apiHeaders = {'content-type': 'application/json'};
final Map<String, dynamic> apiParams = {
'expire': expire,
final res = await client.call(
HttpMethod.delete,
path: apiPath,
params: apiParams,
headers: apiHeaders,
);
};
return res.data;
}
}
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.patch, path: apiPath, params: apiParams, headers: apiHeaders);
return models.ResourceToken.fromMap(res.data);
}
/// Delete a token by its unique ID.
Future delete({required String tokenId}) async {
final String apiPath = '/tokens/{tokenId}'.replaceAll('{tokenId}', tokenId);
final Map<String, dynamic> apiParams = {
};
final Map<String, String> apiHeaders = {
'content-type': 'application/json',
};
final res = await client.call(HttpMethod.delete, path: apiPath, params: apiParams, headers: apiHeaders);
return res.data;
}
}
+959 -1104
View File
File diff suppressed because it is too large Load Diff
+7 -8
View File
@@ -8,7 +8,7 @@ import 'upload_progress.dart';
/// [Client] that handles requests to Appwrite
abstract class Client {
/// The size for cunked uploads in bytes.
static const int CHUNK_SIZE = 5 * 1024 * 1024;
static const int CHUNK_SIZE = 5*1024*1024;
/// Holds configuration such as project.
late Map<String, String> config;
@@ -18,16 +18,16 @@ abstract class Client {
String get endPoint => _endPoint;
/// Initializes a [Client].
factory Client({
String endPoint = 'https://cloud.appwrite.io/v1',
bool selfSigned = false,
}) => createClient(endPoint: endPoint, selfSigned: selfSigned);
factory Client(
{String endPoint = 'https://cloud.appwrite.io/v1',
bool selfSigned = false}) =>
createClient(endPoint: endPoint, selfSigned: selfSigned);
/// Handle OAuth2 session creation.
Future<String?> webAuth(Uri url);
/// Set self signed to [status].
///
///
/// If self signed is true, [Client] will ignore invalid certificates.
/// This is helpful in environments where your Appwrite
/// instance does not have a valid SSL certificate.
@@ -81,8 +81,7 @@ abstract class Client {
});
/// Send the API request.
Future<Response> call(
HttpMethod method, {
Future<Response> call(HttpMethod method, {
String path = '',
Map<String, String> headers = const {},
Map<String, dynamic> params = const {},
+1 -5
View File
@@ -2,25 +2,21 @@ import 'response.dart';
import 'client.dart';
import 'enums.dart';
abstract class ClientBase implements Client {
abstract class ClientBase implements Client {
/// Your project ID
@override
ClientBase setProject(value);
/// Your secret API key
@override
ClientBase setKey(value);
/// Your secret JSON Web Token
@override
ClientBase setJWT(value);
@override
ClientBase setLocale(value);
/// The user session to authenticate with
@override
ClientBase setSession(value);
/// The user agent string of the client that made the request
@override
ClientBase setForwardedUserAgent(value);
+55 -70
View File
@@ -9,11 +9,14 @@ import 'response.dart';
import 'input_file.dart';
import 'upload_progress.dart';
ClientBase createClient({required String endPoint, required bool selfSigned}) =>
ClientBase createClient({
required String endPoint,
required bool selfSigned,
}) =>
ClientBrowser(endPoint: endPoint, selfSigned: selfSigned);
class ClientBrowser extends ClientBase with ClientMixin {
static const int CHUNK_SIZE = 5 * 1024 * 1024;
static const int CHUNK_SIZE = 5*1024*1024;
String _endPoint;
Map<String, String>? _headers;
@override
@@ -30,67 +33,60 @@ class ClientBrowser extends ClientBase with ClientMixin {
'x-sdk-name': 'Dart',
'x-sdk-platform': 'server',
'x-sdk-language': 'dart',
'x-sdk-version': '16.2.0',
'X-Appwrite-Response-Format': '1.7.0',
'x-sdk-version': '17.0.0',
'X-Appwrite-Response-Format' : '1.8.0',
};
config = {};
assert(
_endPoint.startsWith(RegExp("http://|https://")),
"endPoint $_endPoint must start with 'http'",
);
assert(_endPoint.startsWith(RegExp("http://|https://")),
"endPoint $_endPoint must start with 'http'");
}
@override
String get endPoint => _endPoint;
/// Your project ID
@override
ClientBrowser setProject(value) {
config['project'] = value;
addHeader('X-Appwrite-Project', value);
return this;
}
/// Your secret API key
@override
ClientBrowser setKey(value) {
config['key'] = value;
addHeader('X-Appwrite-Key', value);
return this;
}
/// Your secret JSON Web Token
@override
ClientBrowser setJWT(value) {
config['jWT'] = value;
addHeader('X-Appwrite-JWT', value);
return this;
}
@override
ClientBrowser setLocale(value) {
config['locale'] = value;
addHeader('X-Appwrite-Locale', value);
return this;
}
/// The user session to authenticate with
@override
ClientBrowser setSession(value) {
config['session'] = value;
addHeader('X-Appwrite-Session', value);
return this;
}
/// The user agent string of the client that made the request
@override
ClientBrowser setForwardedUserAgent(value) {
config['forwardedUserAgent'] = value;
addHeader('X-Forwarded-User-Agent', value);
return this;
}
/// Your project ID
@override
ClientBrowser setProject(value) {
config['project'] = value;
addHeader('X-Appwrite-Project', value);
return this;
}
/// Your secret API key
@override
ClientBrowser setKey(value) {
config['key'] = value;
addHeader('X-Appwrite-Key', value);
return this;
}
/// Your secret JSON Web Token
@override
ClientBrowser setJWT(value) {
config['jWT'] = value;
addHeader('X-Appwrite-JWT', value);
return this;
}
@override
ClientBrowser setLocale(value) {
config['locale'] = value;
addHeader('X-Appwrite-Locale', value);
return this;
}
/// The user session to authenticate with
@override
ClientBrowser setSession(value) {
config['session'] = value;
addHeader('X-Appwrite-Session', value);
return this;
}
/// The user agent string of the client that made the request
@override
ClientBrowser setForwardedUserAgent(value) {
config['forwardedUserAgent'] = value;
addHeader('X-Forwarded-User-Agent', value);
return this;
}
@override
ClientBrowser setSelfSigned({bool status = true}) {
@@ -139,11 +135,7 @@ class ClientBrowser extends ClientBase with ClientMixin {
late Response res;
if (size <= CHUNK_SIZE) {
params[paramName] = http.MultipartFile.fromBytes(
paramName,
file.bytes!,
filename: file.filename,
);
params[paramName] = http.MultipartFile.fromBytes(paramName, file.bytes!, filename: file.filename);
return call(
HttpMethod.post,
path: path,
@@ -170,19 +162,12 @@ class ClientBrowser extends ClientBase with ClientMixin {
List<int> chunk = [];
final end = min(offset + CHUNK_SIZE, size);
chunk = file.bytes!.getRange(offset, end).toList();
params[paramName] = http.MultipartFile.fromBytes(
paramName,
chunk,
filename: file.filename,
);
params[paramName] =
http.MultipartFile.fromBytes(paramName, chunk, filename: file.filename);
headers['content-range'] =
'bytes $offset-${min<int>((offset + CHUNK_SIZE - 1), size - 1)}/$size';
res = await call(
HttpMethod.post,
path: path,
headers: headers,
params: params,
);
res = await call(HttpMethod.post,
path: path, headers: headers, params: params);
offset += CHUNK_SIZE;
if (offset < size) {
headers['x-appwrite-id'] = res.data['\$id'];
+67 -78
View File
@@ -10,11 +10,17 @@ import 'response.dart';
import 'input_file.dart';
import 'upload_progress.dart';
ClientBase createClient({required String endPoint, required bool selfSigned}) =>
ClientIO(endPoint: endPoint, selfSigned: selfSigned);
ClientBase createClient({
required String endPoint,
required bool selfSigned,
}) =>
ClientIO(
endPoint: endPoint,
selfSigned: selfSigned,
);
class ClientIO extends ClientBase with ClientMixin {
static const int CHUNK_SIZE = 5 * 1024 * 1024;
static const int CHUNK_SIZE = 5*1024*1024;
String _endPoint;
Map<String, String>? _headers;
@override
@@ -36,69 +42,61 @@ class ClientIO extends ClientBase with ClientMixin {
'x-sdk-name': 'Dart',
'x-sdk-platform': 'server',
'x-sdk-language': 'dart',
'x-sdk-version': '16.2.0',
'user-agent':
'AppwriteDartSDK/16.2.0 (${Platform.operatingSystem}; ${Platform.operatingSystemVersion})',
'X-Appwrite-Response-Format': '1.7.0',
'x-sdk-version': '17.0.0',
'user-agent' : 'AppwriteDartSDK/17.0.0 (${Platform.operatingSystem}; ${Platform.operatingSystemVersion})',
'X-Appwrite-Response-Format' : '1.8.0',
};
config = {};
assert(
_endPoint.startsWith(RegExp("http://|https://")),
"endPoint $_endPoint must start with 'http'",
);
assert(_endPoint.startsWith(RegExp("http://|https://")),
"endPoint $_endPoint must start with 'http'");
}
@override
String get endPoint => _endPoint;
/// Your project ID
@override
ClientIO setProject(value) {
config['project'] = value;
addHeader('X-Appwrite-Project', value);
return this;
}
/// Your secret API key
@override
ClientIO setKey(value) {
config['key'] = value;
addHeader('X-Appwrite-Key', value);
return this;
}
/// Your secret JSON Web Token
@override
ClientIO setJWT(value) {
config['jWT'] = value;
addHeader('X-Appwrite-JWT', value);
return this;
}
@override
ClientIO setLocale(value) {
config['locale'] = value;
addHeader('X-Appwrite-Locale', value);
return this;
}
/// The user session to authenticate with
@override
ClientIO setSession(value) {
config['session'] = value;
addHeader('X-Appwrite-Session', value);
return this;
}
/// The user agent string of the client that made the request
@override
ClientIO setForwardedUserAgent(value) {
config['forwardedUserAgent'] = value;
addHeader('X-Forwarded-User-Agent', value);
return this;
}
/// Your project ID
@override
ClientIO setProject(value) {
config['project'] = value;
addHeader('X-Appwrite-Project', value);
return this;
}
/// Your secret API key
@override
ClientIO setKey(value) {
config['key'] = value;
addHeader('X-Appwrite-Key', value);
return this;
}
/// Your secret JSON Web Token
@override
ClientIO setJWT(value) {
config['jWT'] = value;
addHeader('X-Appwrite-JWT', value);
return this;
}
@override
ClientIO setLocale(value) {
config['locale'] = value;
addHeader('X-Appwrite-Locale', value);
return this;
}
/// The user session to authenticate with
@override
ClientIO setSession(value) {
config['session'] = value;
addHeader('X-Appwrite-Session', value);
return this;
}
/// The user agent string of the client that made the request
@override
ClientIO setForwardedUserAgent(value) {
config['forwardedUserAgent'] = value;
addHeader('X-Forwarded-User-Agent', value);
return this;
}
@override
ClientIO setSelfSigned({bool status = true}) {
@@ -153,16 +151,11 @@ class ClientIO extends ClientBase with ClientMixin {
if (size <= CHUNK_SIZE) {
if (file.path != null) {
params[paramName] = await http.MultipartFile.fromPath(
paramName,
file.path!,
filename: file.filename,
);
paramName, file.path!,
filename: file.filename);
} else {
params[paramName] = http.MultipartFile.fromBytes(
paramName,
file.bytes!,
filename: file.filename,
);
params[paramName] = http.MultipartFile.fromBytes(paramName, file.bytes!,
filename: file.filename);
}
return call(
HttpMethod.post,
@@ -201,19 +194,12 @@ class ClientIO extends ClientBase with ClientMixin {
raf!.setPositionSync(offset);
chunk = raf.readSync(CHUNK_SIZE);
}
params[paramName] = http.MultipartFile.fromBytes(
paramName,
chunk,
filename: file.filename,
);
params[paramName] =
http.MultipartFile.fromBytes(paramName, chunk, filename: file.filename);
headers['content-range'] =
'bytes $offset-${min<int>((offset + CHUNK_SIZE - 1), size - 1)}/$size';
res = await call(
HttpMethod.post,
path: path,
headers: headers,
params: params,
);
res = await call(HttpMethod.post,
path: path, headers: headers, params: params);
offset += CHUNK_SIZE;
if (offset < size) {
headers['x-appwrite-id'] = res.data['\$id'];
@@ -258,7 +244,10 @@ class ClientIO extends ClientBase with ClientMixin {
try {
final streamedResponse = await _httpClient.send(request);
res = await toResponse(streamedResponse);
return prepareResponse(res, responseType: responseType);
return prepareResponse(
res,
responseType: responseType,
);
} catch (e) {
if (e is AppwriteException) {
rethrow;
+27 -37
View File
@@ -26,21 +26,21 @@ mixin ClientMixin {
} else {
if (value is List) {
value.asMap().forEach((i, v) {
(request as http.MultipartRequest).fields.addAll({
"$key[$i]": v.toString(),
});
(request as http.MultipartRequest)
.fields
.addAll({"$key[$i]": v.toString()});
});
} else {
(request as http.MultipartRequest).fields.addAll({
key: value.toString(),
});
(request as http.MultipartRequest)
.fields
.addAll({key: value.toString()});
}
}
});
}
} else if (method == HttpMethod.get) {
if (params.isNotEmpty) {
params = params.map((key, value) {
params = params.map((key, value){
if (value is int || value is double) {
return MapEntry(key, value.toString());
}
@@ -51,13 +51,12 @@ mixin ClientMixin {
});
}
uri = Uri(
fragment: uri.fragment,
path: uri.path,
host: uri.host,
scheme: uri.scheme,
queryParameters: params,
port: uri.port,
);
fragment: uri.fragment,
path: uri.path,
host: uri.host,
scheme: uri.scheme,
queryParameters: params,
port: uri.port);
request = http.Request(method.name(), uri);
} else {
(request as http.Request).body = jsonEncode(params);
@@ -67,9 +66,7 @@ mixin ClientMixin {
headers['User-Agent'] = Uri.encodeFull(headers['User-Agent']!);
}
if (headers['X-Forwarded-User-Agent'] != null) {
headers['X-Forwarded-User-Agent'] = Uri.encodeFull(
headers['X-Forwarded-User-Agent']!,
);
headers['X-Forwarded-User-Agent'] = Uri.encodeFull(headers['X-Forwarded-User-Agent']!);
}
request.headers.addAll(headers);
@@ -116,25 +113,18 @@ mixin ClientMixin {
return Response(data: data);
}
Future<http.Response> toResponse(
http.StreamedResponse streamedResponse,
) async {
if (streamedResponse.statusCode == 204) {
return http.Response(
'',
streamedResponse.statusCode,
headers: streamedResponse.headers.map(
(k, v) => k.toLowerCase() == 'content-type'
? MapEntry(k, 'text/plain')
: MapEntry(k, v),
),
request: streamedResponse.request,
isRedirect: streamedResponse.isRedirect,
persistentConnection: streamedResponse.persistentConnection,
reasonPhrase: streamedResponse.reasonPhrase,
);
} else {
return await http.Response.fromStream(streamedResponse);
}
Future<http.Response> toResponse(http.StreamedResponse streamedResponse) async {
if(streamedResponse.statusCode == 204) {
return http.Response('',
streamedResponse.statusCode,
headers: streamedResponse.headers.map((k,v) => k.toLowerCase()=='content-type' ? MapEntry(k, 'text/plain') : MapEntry(k,v)),
request: streamedResponse.request,
isRedirect: streamedResponse.isRedirect,
persistentConnection: streamedResponse.persistentConnection,
reasonPhrase: streamedResponse.reasonPhrase,
);
} else {
return await http.Response.fromStream(streamedResponse);
}
}
}
+1 -2
View File
@@ -3,5 +3,4 @@ import 'client_base.dart';
/// Implemented in `browser_client.dart` and `io_client.dart`.
ClientBase createClient({required String endPoint, required bool selfSigned}) =>
throw UnsupportedError(
'Cannot create a client without dart:html or dart:io.',
);
'Cannot create a client without dart:html or dart:io.');
+2 -2
View File
@@ -16,6 +16,6 @@ enum ResponseType {
/// Transform the response data to a String encoded with UTF8.
plain,
/// Get original bytes, the type of response will be List<int>
bytes,
/// Get original bytes, the type of response will be `List<int>`
bytes
}
+8 -6
View File
@@ -1,12 +1,14 @@
part of '../../enums.dart';
enum Adapter {
static(value: 'static'),
ssr(value: 'ssr');
xstatic(value: 'static'),
ssr(value: 'ssr');
const Adapter({required this.value});
const Adapter({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+10 -8
View File
@@ -1,14 +1,16 @@
part of '../../enums.dart';
enum AuthenticationFactor {
email(value: 'email'),
phone(value: 'phone'),
totp(value: 'totp'),
recoverycode(value: 'recoverycode');
email(value: 'email'),
phone(value: 'phone'),
totp(value: 'totp'),
recoverycode(value: 'recoverycode');
const AuthenticationFactor({required this.value});
const AuthenticationFactor({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+7 -5
View File
@@ -1,11 +1,13 @@
part of '../../enums.dart';
enum AuthenticatorType {
totp(value: 'totp');
totp(value: 'totp');
const AuthenticatorType({required this.value});
const AuthenticatorType({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+20 -18
View File
@@ -1,24 +1,26 @@
part of '../../enums.dart';
enum Browser {
avantBrowser(value: 'aa'),
androidWebViewBeta(value: 'an'),
googleChrome(value: 'ch'),
googleChromeIOS(value: 'ci'),
googleChromeMobile(value: 'cm'),
chromium(value: 'cr'),
mozillaFirefox(value: 'ff'),
safari(value: 'sf'),
mobileSafari(value: 'mf'),
microsoftEdge(value: 'ps'),
microsoftEdgeIOS(value: 'oi'),
operaMini(value: 'om'),
opera(value: 'op'),
operaNext(value: 'on');
avantBrowser(value: 'aa'),
androidWebViewBeta(value: 'an'),
googleChrome(value: 'ch'),
googleChromeIOS(value: 'ci'),
googleChromeMobile(value: 'cm'),
chromium(value: 'cr'),
mozillaFirefox(value: 'ff'),
safari(value: 'sf'),
mobileSafari(value: 'mf'),
microsoftEdge(value: 'ps'),
microsoftEdgeIOS(value: 'oi'),
operaMini(value: 'om'),
opera(value: 'op'),
operaNext(value: 'on');
const Browser({required this.value});
const Browser({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+71 -69
View File
@@ -1,75 +1,77 @@
part of '../../enums.dart';
enum BuildRuntime {
node145(value: 'node-14.5'),
node160(value: 'node-16.0'),
node180(value: 'node-18.0'),
node190(value: 'node-19.0'),
node200(value: 'node-20.0'),
node210(value: 'node-21.0'),
node22(value: 'node-22'),
php80(value: 'php-8.0'),
php81(value: 'php-8.1'),
php82(value: 'php-8.2'),
php83(value: 'php-8.3'),
ruby30(value: 'ruby-3.0'),
ruby31(value: 'ruby-3.1'),
ruby32(value: 'ruby-3.2'),
ruby33(value: 'ruby-3.3'),
python38(value: 'python-3.8'),
python39(value: 'python-3.9'),
python310(value: 'python-3.10'),
python311(value: 'python-3.11'),
python312(value: 'python-3.12'),
pythonMl311(value: 'python-ml-3.11'),
pythonMl312(value: 'python-ml-3.12'),
deno121(value: 'deno-1.21'),
deno124(value: 'deno-1.24'),
deno135(value: 'deno-1.35'),
deno140(value: 'deno-1.40'),
deno146(value: 'deno-1.46'),
deno20(value: 'deno-2.0'),
dart215(value: 'dart-2.15'),
dart216(value: 'dart-2.16'),
dart217(value: 'dart-2.17'),
dart218(value: 'dart-2.18'),
dart219(value: 'dart-2.19'),
dart30(value: 'dart-3.0'),
dart31(value: 'dart-3.1'),
dart33(value: 'dart-3.3'),
dart35(value: 'dart-3.5'),
dart38(value: 'dart-3.8'),
dotnet60(value: 'dotnet-6.0'),
dotnet70(value: 'dotnet-7.0'),
dotnet80(value: 'dotnet-8.0'),
java80(value: 'java-8.0'),
java110(value: 'java-11.0'),
java170(value: 'java-17.0'),
java180(value: 'java-18.0'),
java210(value: 'java-21.0'),
java22(value: 'java-22'),
swift55(value: 'swift-5.5'),
swift58(value: 'swift-5.8'),
swift59(value: 'swift-5.9'),
swift510(value: 'swift-5.10'),
kotlin16(value: 'kotlin-1.6'),
kotlin18(value: 'kotlin-1.8'),
kotlin19(value: 'kotlin-1.9'),
kotlin20(value: 'kotlin-2.0'),
cpp17(value: 'cpp-17'),
cpp20(value: 'cpp-20'),
bun10(value: 'bun-1.0'),
bun11(value: 'bun-1.1'),
go123(value: 'go-1.23'),
static1(value: 'static-1'),
flutter324(value: 'flutter-3.24'),
flutter327(value: 'flutter-3.27'),
flutter329(value: 'flutter-3.29'),
flutter332(value: 'flutter-3.32');
node145(value: 'node-14.5'),
node160(value: 'node-16.0'),
node180(value: 'node-18.0'),
node190(value: 'node-19.0'),
node200(value: 'node-20.0'),
node210(value: 'node-21.0'),
node22(value: 'node-22'),
php80(value: 'php-8.0'),
php81(value: 'php-8.1'),
php82(value: 'php-8.2'),
php83(value: 'php-8.3'),
ruby30(value: 'ruby-3.0'),
ruby31(value: 'ruby-3.1'),
ruby32(value: 'ruby-3.2'),
ruby33(value: 'ruby-3.3'),
python38(value: 'python-3.8'),
python39(value: 'python-3.9'),
python310(value: 'python-3.10'),
python311(value: 'python-3.11'),
python312(value: 'python-3.12'),
pythonMl311(value: 'python-ml-3.11'),
pythonMl312(value: 'python-ml-3.12'),
deno121(value: 'deno-1.21'),
deno124(value: 'deno-1.24'),
deno135(value: 'deno-1.35'),
deno140(value: 'deno-1.40'),
deno146(value: 'deno-1.46'),
deno20(value: 'deno-2.0'),
dart215(value: 'dart-2.15'),
dart216(value: 'dart-2.16'),
dart217(value: 'dart-2.17'),
dart218(value: 'dart-2.18'),
dart219(value: 'dart-2.19'),
dart30(value: 'dart-3.0'),
dart31(value: 'dart-3.1'),
dart33(value: 'dart-3.3'),
dart35(value: 'dart-3.5'),
dart38(value: 'dart-3.8'),
dotnet60(value: 'dotnet-6.0'),
dotnet70(value: 'dotnet-7.0'),
dotnet80(value: 'dotnet-8.0'),
java80(value: 'java-8.0'),
java110(value: 'java-11.0'),
java170(value: 'java-17.0'),
java180(value: 'java-18.0'),
java210(value: 'java-21.0'),
java22(value: 'java-22'),
swift55(value: 'swift-5.5'),
swift58(value: 'swift-5.8'),
swift59(value: 'swift-5.9'),
swift510(value: 'swift-5.10'),
kotlin16(value: 'kotlin-1.6'),
kotlin18(value: 'kotlin-1.8'),
kotlin19(value: 'kotlin-1.9'),
kotlin20(value: 'kotlin-2.0'),
cpp17(value: 'cpp-17'),
cpp20(value: 'cpp-20'),
bun10(value: 'bun-1.0'),
bun11(value: 'bun-1.1'),
go123(value: 'go-1.23'),
static1(value: 'static-1'),
flutter324(value: 'flutter-3.24'),
flutter327(value: 'flutter-3.27'),
flutter329(value: 'flutter-3.29'),
flutter332(value: 'flutter-3.32');
const BuildRuntime({required this.value});
const BuildRuntime({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+9 -7
View File
@@ -1,13 +1,15 @@
part of '../../enums.dart';
enum Compression {
none(value: 'none'),
gzip(value: 'gzip'),
zstd(value: 'zstd');
none(value: 'none'),
gzip(value: 'gzip'),
zstd(value: 'zstd');
const Compression({required this.value});
const Compression({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+23 -21
View File
@@ -1,27 +1,29 @@
part of '../../enums.dart';
enum CreditCard {
americanExpress(value: 'amex'),
argencard(value: 'argencard'),
cabal(value: 'cabal'),
cencosud(value: 'cencosud'),
dinersClub(value: 'diners'),
discover(value: 'discover'),
elo(value: 'elo'),
hipercard(value: 'hipercard'),
jCB(value: 'jcb'),
mastercard(value: 'mastercard'),
naranja(value: 'naranja'),
tarjetaShopping(value: 'targeta-shopping'),
unionChinaPay(value: 'union-china-pay'),
visa(value: 'visa'),
mIR(value: 'mir'),
maestro(value: 'maestro'),
rupay(value: 'rupay');
americanExpress(value: 'amex'),
argencard(value: 'argencard'),
cabal(value: 'cabal'),
cencosud(value: 'cencosud'),
dinersClub(value: 'diners'),
discover(value: 'discover'),
elo(value: 'elo'),
hipercard(value: 'hipercard'),
jCB(value: 'jcb'),
mastercard(value: 'mastercard'),
naranja(value: 'naranja'),
tarjetaShopping(value: 'targeta-shopping'),
unionChinaPay(value: 'union-china-pay'),
visa(value: 'visa'),
mIR(value: 'mir'),
maestro(value: 'maestro'),
rupay(value: 'rupay');
const CreditCard({required this.value});
const CreditCard({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+8 -6
View File
@@ -1,12 +1,14 @@
part of '../../enums.dart';
enum DeploymentDownloadType {
source(value: 'source'),
output(value: 'output');
source(value: 'source'),
output(value: 'output');
const DeploymentDownloadType({required this.value});
const DeploymentDownloadType({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+12 -10
View File
@@ -1,16 +1,18 @@
part of '../../enums.dart';
enum ExecutionMethod {
gET(value: 'GET'),
pOST(value: 'POST'),
pUT(value: 'PUT'),
pATCH(value: 'PATCH'),
dELETE(value: 'DELETE'),
oPTIONS(value: 'OPTIONS');
gET(value: 'GET'),
pOST(value: 'POST'),
pUT(value: 'PUT'),
pATCH(value: 'PATCH'),
dELETE(value: 'DELETE'),
oPTIONS(value: 'OPTIONS');
const ExecutionMethod({required this.value});
const ExecutionMethod({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+201 -199
View File
@@ -1,205 +1,207 @@
part of '../../enums.dart';
enum Flag {
afghanistan(value: 'af'),
angola(value: 'ao'),
albania(value: 'al'),
andorra(value: 'ad'),
unitedArabEmirates(value: 'ae'),
argentina(value: 'ar'),
armenia(value: 'am'),
antiguaAndBarbuda(value: 'ag'),
australia(value: 'au'),
austria(value: 'at'),
azerbaijan(value: 'az'),
burundi(value: 'bi'),
belgium(value: 'be'),
benin(value: 'bj'),
burkinaFaso(value: 'bf'),
bangladesh(value: 'bd'),
bulgaria(value: 'bg'),
bahrain(value: 'bh'),
bahamas(value: 'bs'),
bosniaAndHerzegovina(value: 'ba'),
belarus(value: 'by'),
belize(value: 'bz'),
bolivia(value: 'bo'),
brazil(value: 'br'),
barbados(value: 'bb'),
bruneiDarussalam(value: 'bn'),
bhutan(value: 'bt'),
botswana(value: 'bw'),
centralAfricanRepublic(value: 'cf'),
canada(value: 'ca'),
switzerland(value: 'ch'),
chile(value: 'cl'),
china(value: 'cn'),
coteDIvoire(value: 'ci'),
cameroon(value: 'cm'),
democraticRepublicOfTheCongo(value: 'cd'),
republicOfTheCongo(value: 'cg'),
colombia(value: 'co'),
comoros(value: 'km'),
capeVerde(value: 'cv'),
costaRica(value: 'cr'),
cuba(value: 'cu'),
cyprus(value: 'cy'),
czechRepublic(value: 'cz'),
germany(value: 'de'),
djibouti(value: 'dj'),
dominica(value: 'dm'),
denmark(value: 'dk'),
dominicanRepublic(value: 'do'),
algeria(value: 'dz'),
ecuador(value: 'ec'),
egypt(value: 'eg'),
eritrea(value: 'er'),
spain(value: 'es'),
estonia(value: 'ee'),
ethiopia(value: 'et'),
finland(value: 'fi'),
fiji(value: 'fj'),
france(value: 'fr'),
micronesiaFederatedStatesOf(value: 'fm'),
gabon(value: 'ga'),
unitedKingdom(value: 'gb'),
georgia(value: 'ge'),
ghana(value: 'gh'),
guinea(value: 'gn'),
gambia(value: 'gm'),
guineaBissau(value: 'gw'),
equatorialGuinea(value: 'gq'),
greece(value: 'gr'),
grenada(value: 'gd'),
guatemala(value: 'gt'),
guyana(value: 'gy'),
honduras(value: 'hn'),
croatia(value: 'hr'),
haiti(value: 'ht'),
hungary(value: 'hu'),
indonesia(value: 'id'),
india(value: 'in'),
ireland(value: 'ie'),
iranIslamicRepublicOf(value: 'ir'),
iraq(value: 'iq'),
iceland(value: 'is'),
israel(value: 'il'),
italy(value: 'it'),
jamaica(value: 'jm'),
jordan(value: 'jo'),
japan(value: 'jp'),
kazakhstan(value: 'kz'),
kenya(value: 'ke'),
kyrgyzstan(value: 'kg'),
cambodia(value: 'kh'),
kiribati(value: 'ki'),
saintKittsAndNevis(value: 'kn'),
southKorea(value: 'kr'),
kuwait(value: 'kw'),
laoPeopleSDemocraticRepublic(value: 'la'),
lebanon(value: 'lb'),
liberia(value: 'lr'),
libya(value: 'ly'),
saintLucia(value: 'lc'),
liechtenstein(value: 'li'),
sriLanka(value: 'lk'),
lesotho(value: 'ls'),
lithuania(value: 'lt'),
luxembourg(value: 'lu'),
latvia(value: 'lv'),
morocco(value: 'ma'),
monaco(value: 'mc'),
moldova(value: 'md'),
madagascar(value: 'mg'),
maldives(value: 'mv'),
mexico(value: 'mx'),
marshallIslands(value: 'mh'),
northMacedonia(value: 'mk'),
mali(value: 'ml'),
malta(value: 'mt'),
myanmar(value: 'mm'),
montenegro(value: 'me'),
mongolia(value: 'mn'),
mozambique(value: 'mz'),
mauritania(value: 'mr'),
mauritius(value: 'mu'),
malawi(value: 'mw'),
malaysia(value: 'my'),
namibia(value: 'na'),
niger(value: 'ne'),
nigeria(value: 'ng'),
nicaragua(value: 'ni'),
netherlands(value: 'nl'),
norway(value: 'no'),
nepal(value: 'np'),
nauru(value: 'nr'),
newZealand(value: 'nz'),
oman(value: 'om'),
pakistan(value: 'pk'),
panama(value: 'pa'),
peru(value: 'pe'),
philippines(value: 'ph'),
palau(value: 'pw'),
papuaNewGuinea(value: 'pg'),
poland(value: 'pl'),
frenchPolynesia(value: 'pf'),
northKorea(value: 'kp'),
portugal(value: 'pt'),
paraguay(value: 'py'),
qatar(value: 'qa'),
romania(value: 'ro'),
russia(value: 'ru'),
rwanda(value: 'rw'),
saudiArabia(value: 'sa'),
sudan(value: 'sd'),
senegal(value: 'sn'),
singapore(value: 'sg'),
solomonIslands(value: 'sb'),
sierraLeone(value: 'sl'),
elSalvador(value: 'sv'),
sanMarino(value: 'sm'),
somalia(value: 'so'),
serbia(value: 'rs'),
southSudan(value: 'ss'),
saoTomeAndPrincipe(value: 'st'),
suriname(value: 'sr'),
slovakia(value: 'sk'),
slovenia(value: 'si'),
sweden(value: 'se'),
eswatini(value: 'sz'),
seychelles(value: 'sc'),
syria(value: 'sy'),
chad(value: 'td'),
togo(value: 'tg'),
thailand(value: 'th'),
tajikistan(value: 'tj'),
turkmenistan(value: 'tm'),
timorLeste(value: 'tl'),
tonga(value: 'to'),
trinidadAndTobago(value: 'tt'),
tunisia(value: 'tn'),
turkey(value: 'tr'),
tuvalu(value: 'tv'),
tanzania(value: 'tz'),
uganda(value: 'ug'),
ukraine(value: 'ua'),
uruguay(value: 'uy'),
unitedStates(value: 'us'),
uzbekistan(value: 'uz'),
vaticanCity(value: 'va'),
saintVincentAndTheGrenadines(value: 'vc'),
venezuela(value: 've'),
vietnam(value: 'vn'),
vanuatu(value: 'vu'),
samoa(value: 'ws'),
yemen(value: 'ye'),
southAfrica(value: 'za'),
zambia(value: 'zm'),
zimbabwe(value: 'zw');
afghanistan(value: 'af'),
angola(value: 'ao'),
albania(value: 'al'),
andorra(value: 'ad'),
unitedArabEmirates(value: 'ae'),
argentina(value: 'ar'),
armenia(value: 'am'),
antiguaAndBarbuda(value: 'ag'),
australia(value: 'au'),
austria(value: 'at'),
azerbaijan(value: 'az'),
burundi(value: 'bi'),
belgium(value: 'be'),
benin(value: 'bj'),
burkinaFaso(value: 'bf'),
bangladesh(value: 'bd'),
bulgaria(value: 'bg'),
bahrain(value: 'bh'),
bahamas(value: 'bs'),
bosniaAndHerzegovina(value: 'ba'),
belarus(value: 'by'),
belize(value: 'bz'),
bolivia(value: 'bo'),
brazil(value: 'br'),
barbados(value: 'bb'),
bruneiDarussalam(value: 'bn'),
bhutan(value: 'bt'),
botswana(value: 'bw'),
centralAfricanRepublic(value: 'cf'),
canada(value: 'ca'),
switzerland(value: 'ch'),
chile(value: 'cl'),
china(value: 'cn'),
coteDIvoire(value: 'ci'),
cameroon(value: 'cm'),
democraticRepublicOfTheCongo(value: 'cd'),
republicOfTheCongo(value: 'cg'),
colombia(value: 'co'),
comoros(value: 'km'),
capeVerde(value: 'cv'),
costaRica(value: 'cr'),
cuba(value: 'cu'),
cyprus(value: 'cy'),
czechRepublic(value: 'cz'),
germany(value: 'de'),
djibouti(value: 'dj'),
dominica(value: 'dm'),
denmark(value: 'dk'),
dominicanRepublic(value: 'do'),
algeria(value: 'dz'),
ecuador(value: 'ec'),
egypt(value: 'eg'),
eritrea(value: 'er'),
spain(value: 'es'),
estonia(value: 'ee'),
ethiopia(value: 'et'),
finland(value: 'fi'),
fiji(value: 'fj'),
france(value: 'fr'),
micronesiaFederatedStatesOf(value: 'fm'),
gabon(value: 'ga'),
unitedKingdom(value: 'gb'),
georgia(value: 'ge'),
ghana(value: 'gh'),
guinea(value: 'gn'),
gambia(value: 'gm'),
guineaBissau(value: 'gw'),
equatorialGuinea(value: 'gq'),
greece(value: 'gr'),
grenada(value: 'gd'),
guatemala(value: 'gt'),
guyana(value: 'gy'),
honduras(value: 'hn'),
croatia(value: 'hr'),
haiti(value: 'ht'),
hungary(value: 'hu'),
indonesia(value: 'id'),
india(value: 'in'),
ireland(value: 'ie'),
iranIslamicRepublicOf(value: 'ir'),
iraq(value: 'iq'),
iceland(value: 'is'),
israel(value: 'il'),
italy(value: 'it'),
jamaica(value: 'jm'),
jordan(value: 'jo'),
japan(value: 'jp'),
kazakhstan(value: 'kz'),
kenya(value: 'ke'),
kyrgyzstan(value: 'kg'),
cambodia(value: 'kh'),
kiribati(value: 'ki'),
saintKittsAndNevis(value: 'kn'),
southKorea(value: 'kr'),
kuwait(value: 'kw'),
laoPeopleSDemocraticRepublic(value: 'la'),
lebanon(value: 'lb'),
liberia(value: 'lr'),
libya(value: 'ly'),
saintLucia(value: 'lc'),
liechtenstein(value: 'li'),
sriLanka(value: 'lk'),
lesotho(value: 'ls'),
lithuania(value: 'lt'),
luxembourg(value: 'lu'),
latvia(value: 'lv'),
morocco(value: 'ma'),
monaco(value: 'mc'),
moldova(value: 'md'),
madagascar(value: 'mg'),
maldives(value: 'mv'),
mexico(value: 'mx'),
marshallIslands(value: 'mh'),
northMacedonia(value: 'mk'),
mali(value: 'ml'),
malta(value: 'mt'),
myanmar(value: 'mm'),
montenegro(value: 'me'),
mongolia(value: 'mn'),
mozambique(value: 'mz'),
mauritania(value: 'mr'),
mauritius(value: 'mu'),
malawi(value: 'mw'),
malaysia(value: 'my'),
namibia(value: 'na'),
niger(value: 'ne'),
nigeria(value: 'ng'),
nicaragua(value: 'ni'),
netherlands(value: 'nl'),
norway(value: 'no'),
nepal(value: 'np'),
nauru(value: 'nr'),
newZealand(value: 'nz'),
oman(value: 'om'),
pakistan(value: 'pk'),
panama(value: 'pa'),
peru(value: 'pe'),
philippines(value: 'ph'),
palau(value: 'pw'),
papuaNewGuinea(value: 'pg'),
poland(value: 'pl'),
frenchPolynesia(value: 'pf'),
northKorea(value: 'kp'),
portugal(value: 'pt'),
paraguay(value: 'py'),
qatar(value: 'qa'),
romania(value: 'ro'),
russia(value: 'ru'),
rwanda(value: 'rw'),
saudiArabia(value: 'sa'),
sudan(value: 'sd'),
senegal(value: 'sn'),
singapore(value: 'sg'),
solomonIslands(value: 'sb'),
sierraLeone(value: 'sl'),
elSalvador(value: 'sv'),
sanMarino(value: 'sm'),
somalia(value: 'so'),
serbia(value: 'rs'),
southSudan(value: 'ss'),
saoTomeAndPrincipe(value: 'st'),
suriname(value: 'sr'),
slovakia(value: 'sk'),
slovenia(value: 'si'),
sweden(value: 'se'),
eswatini(value: 'sz'),
seychelles(value: 'sc'),
syria(value: 'sy'),
chad(value: 'td'),
togo(value: 'tg'),
thailand(value: 'th'),
tajikistan(value: 'tj'),
turkmenistan(value: 'tm'),
timorLeste(value: 'tl'),
tonga(value: 'to'),
trinidadAndTobago(value: 'tt'),
tunisia(value: 'tn'),
turkey(value: 'tr'),
tuvalu(value: 'tv'),
tanzania(value: 'tz'),
uganda(value: 'ug'),
ukraine(value: 'ua'),
uruguay(value: 'uy'),
unitedStates(value: 'us'),
uzbekistan(value: 'uz'),
vaticanCity(value: 'va'),
saintVincentAndTheGrenadines(value: 'vc'),
venezuela(value: 've'),
vietnam(value: 'vn'),
vanuatu(value: 'vu'),
samoa(value: 'ws'),
yemen(value: 'ye'),
southAfrica(value: 'za'),
zambia(value: 'zm'),
zimbabwe(value: 'zw');
const Flag({required this.value});
const Flag({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+20 -18
View File
@@ -1,24 +1,26 @@
part of '../../enums.dart';
enum Framework {
analog(value: 'analog'),
angular(value: 'angular'),
nextjs(value: 'nextjs'),
react(value: 'react'),
nuxt(value: 'nuxt'),
vue(value: 'vue'),
sveltekit(value: 'sveltekit'),
astro(value: 'astro'),
remix(value: 'remix'),
lynx(value: 'lynx'),
flutter(value: 'flutter'),
reactNative(value: 'react-native'),
vite(value: 'vite'),
other(value: 'other');
analog(value: 'analog'),
angular(value: 'angular'),
nextjs(value: 'nextjs'),
react(value: 'react'),
nuxt(value: 'nuxt'),
vue(value: 'vue'),
sveltekit(value: 'sveltekit'),
astro(value: 'astro'),
remix(value: 'remix'),
lynx(value: 'lynx'),
flutter(value: 'flutter'),
reactNative(value: 'react-native'),
vite(value: 'vite'),
other(value: 'other');
const Framework({required this.value});
const Framework({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+13 -11
View File
@@ -1,17 +1,19 @@
part of '../../enums.dart';
enum ImageFormat {
jpg(value: 'jpg'),
jpeg(value: 'jpeg'),
png(value: 'png'),
webp(value: 'webp'),
heic(value: 'heic'),
avif(value: 'avif'),
gif(value: 'gif');
jpg(value: 'jpg'),
jpeg(value: 'jpeg'),
png(value: 'png'),
webp(value: 'webp'),
heic(value: 'heic'),
avif(value: 'avif'),
gif(value: 'gif');
const ImageFormat({required this.value});
const ImageFormat({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+15 -13
View File
@@ -1,19 +1,21 @@
part of '../../enums.dart';
enum ImageGravity {
center(value: 'center'),
topLeft(value: 'top-left'),
top(value: 'top'),
topRight(value: 'top-right'),
left(value: 'left'),
right(value: 'right'),
bottomLeft(value: 'bottom-left'),
bottom(value: 'bottom'),
bottomRight(value: 'bottom-right');
center(value: 'center'),
topLeft(value: 'top-left'),
top(value: 'top'),
topRight(value: 'top-right'),
left(value: 'left'),
right(value: 'right'),
bottomLeft(value: 'bottom-left'),
bottom(value: 'bottom'),
bottomRight(value: 'bottom-right');
const ImageGravity({required this.value});
const ImageGravity({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+9 -7
View File
@@ -1,13 +1,15 @@
part of '../../enums.dart';
enum IndexType {
key(value: 'key'),
fulltext(value: 'fulltext'),
unique(value: 'unique');
key(value: 'key'),
fulltext(value: 'fulltext'),
unique(value: 'unique');
const IndexType({required this.value});
const IndexType({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+8 -6
View File
@@ -1,12 +1,14 @@
part of '../../enums.dart';
enum MessagePriority {
normal(value: 'normal'),
high(value: 'high');
normal(value: 'normal'),
high(value: 'high');
const MessagePriority({required this.value});
const MessagePriority({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+9 -7
View File
@@ -1,13 +1,15 @@
part of '../../enums.dart';
enum MessagingProviderType {
email(value: 'email'),
sms(value: 'sms'),
push(value: 'push');
email(value: 'email'),
sms(value: 'sms'),
push(value: 'push');
const MessagingProviderType({required this.value});
const MessagingProviderType({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}
+18 -16
View File
@@ -1,22 +1,24 @@
part of '../../enums.dart';
enum Name {
v1Database(value: 'v1-database'),
v1Deletes(value: 'v1-deletes'),
v1Audits(value: 'v1-audits'),
v1Mails(value: 'v1-mails'),
v1Functions(value: 'v1-functions'),
v1StatsResources(value: 'v1-stats-resources'),
v1StatsUsage(value: 'v1-stats-usage'),
v1Webhooks(value: 'v1-webhooks'),
v1Certificates(value: 'v1-certificates'),
v1Builds(value: 'v1-builds'),
v1Messaging(value: 'v1-messaging'),
v1Migrations(value: 'v1-migrations');
v1Database(value: 'v1-database'),
v1Deletes(value: 'v1-deletes'),
v1Audits(value: 'v1-audits'),
v1Mails(value: 'v1-mails'),
v1Functions(value: 'v1-functions'),
v1StatsResources(value: 'v1-stats-resources'),
v1StatsUsage(value: 'v1-stats-usage'),
v1Webhooks(value: 'v1-webhooks'),
v1Certificates(value: 'v1-certificates'),
v1Builds(value: 'v1-builds'),
v1Messaging(value: 'v1-messaging'),
v1Migrations(value: 'v1-migrations');
const Name({required this.value});
const Name({
required this.value
});
final String value;
final String value;
String toJson() => value;
}
String toJson() => value;
}

Some files were not shown because too many files have changed in this diff Show More