Skip to content

Commit bdac7aa

Browse files
fix: add query builder
1 parent 467d24b commit bdac7aa

40 files changed

+124
-862
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Add this to your package's `pubspec.yaml` file:
2121

2222
```yml
2323
dependencies:
24-
appwrite: ^3.0.0
24+
appwrite: ^3.0.1
2525
```
2626
2727
You can install packages from the command line:

lib/appwrite.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export 'src/realtime_subscription.dart';
1919
export 'src/realtime_message.dart';
2020
export 'package:http/http.dart' show MultipartFile;
2121

22+
part 'query.dart';
2223
part 'services/account.dart';
2324
part 'services/avatars.dart';
2425
part 'services/database.dart';

lib/services/account.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ class Account extends Service {
434434
///
435435
///
436436
Future createOAuth2Session({required String provider, String? success, String? failure, List? scopes}) async {
437-
final String path = '/account/sessions/oauth2/{provider}'.replaceAll(RegExp('{provider}'), provider);
437+
final String path = '/account/sessions/oauth2/{provider}'.replaceAll('{provider}', provider);
438438

439439
final Map<String, dynamic> params = {
440440
'success': success,
@@ -474,7 +474,7 @@ class Account extends Service {
474474
/// Inputting 'current' will return the current session being used.
475475
///
476476
Future<models.Session> getSession({required String sessionId}) async {
477-
final String path = '/account/sessions/{sessionId}'.replaceAll(RegExp('{sessionId}'), sessionId);
477+
final String path = '/account/sessions/{sessionId}'.replaceAll('{sessionId}', sessionId);
478478

479479
final Map<String, dynamic> params = {
480480
};
@@ -494,7 +494,7 @@ class Account extends Service {
494494
/// option id argument, only the session unique ID provider will be deleted.
495495
///
496496
Future deleteSession({required String sessionId}) async {
497-
final String path = '/account/sessions/{sessionId}'.replaceAll(RegExp('{sessionId}'), sessionId);
497+
final String path = '/account/sessions/{sessionId}'.replaceAll('{sessionId}', sessionId);
498498

499499
final Map<String, dynamic> params = {
500500
};

lib/services/avatars.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Avatars extends Service {
1111
/// change the output settings.
1212
///
1313
Future<Uint8List> getBrowser({required String code, int? width, int? height, int? quality}) async {
14-
final String path = '/avatars/browsers/{code}'.replaceAll(RegExp('{code}'), code);
14+
final String path = '/avatars/browsers/{code}'.replaceAll('{code}', code);
1515

1616
final Map<String, dynamic> params = {
1717
'width': width,
@@ -35,7 +35,7 @@ class Avatars extends Service {
3535
/// output settings.
3636
///
3737
Future<Uint8List> getCreditCard({required String code, int? width, int? height, int? quality}) async {
38-
final String path = '/avatars/credit-cards/{code}'.replaceAll(RegExp('{code}'), code);
38+
final String path = '/avatars/credit-cards/{code}'.replaceAll('{code}', code);
3939

4040
final Map<String, dynamic> params = {
4141
'width': width,
@@ -81,7 +81,7 @@ class Avatars extends Service {
8181
/// height and quality arguments to change the output settings.
8282
///
8383
Future<Uint8List> getFlag({required String code, int? width, int? height, int? quality}) async {
84-
final String path = '/avatars/flags/{code}'.replaceAll(RegExp('{code}'), code);
84+
final String path = '/avatars/flags/{code}'.replaceAll('{code}', code);
8585

8686
final Map<String, dynamic> params = {
8787
'width': width,

lib/services/database.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Database extends Service {
1111
/// modes](/docs/admin).
1212
///
1313
Future<models.DocumentList> listDocuments({required String collectionId, List? queries, int? limit, int? offset, String? cursor, String? cursorDirection, List? orderAttributes, List? orderTypes}) async {
14-
final String path = '/database/collections/{collectionId}/documents'.replaceAll(RegExp('{collectionId}'), collectionId);
14+
final String path = '/database/collections/{collectionId}/documents'.replaceAll('{collectionId}', collectionId);
1515

1616
final Map<String, dynamic> params = {
1717
'queries': queries,
@@ -39,7 +39,7 @@ class Database extends Service {
3939
/// directly from your database console.
4040
///
4141
Future<models.Document> createDocument({required String collectionId, required String documentId, required Map data, List? read, List? write}) async {
42-
final String path = '/database/collections/{collectionId}/documents'.replaceAll(RegExp('{collectionId}'), collectionId);
42+
final String path = '/database/collections/{collectionId}/documents'.replaceAll('{collectionId}', collectionId);
4343

4444
final Map<String, dynamic> params = {
4545
'documentId': documentId,
@@ -62,7 +62,7 @@ class Database extends Service {
6262
/// object with the document data.
6363
///
6464
Future<models.Document> getDocument({required String collectionId, required String documentId}) async {
65-
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll(RegExp('{collectionId}'), collectionId).replaceAll(RegExp('{documentId}'), documentId);
65+
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll('{collectionId}', collectionId).replaceAll('{documentId}', documentId);
6666

6767
final Map<String, dynamic> params = {
6868
};
@@ -81,7 +81,7 @@ class Database extends Service {
8181
/// only specific fields that will get updated.
8282
///
8383
Future<models.Document> updateDocument({required String collectionId, required String documentId, required Map data, List? read, List? write}) async {
84-
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll(RegExp('{collectionId}'), collectionId).replaceAll(RegExp('{documentId}'), documentId);
84+
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll('{collectionId}', collectionId).replaceAll('{documentId}', documentId);
8585

8686
final Map<String, dynamic> params = {
8787
'data': data,
@@ -104,7 +104,7 @@ class Database extends Service {
104104
/// **will not** be deleted.
105105
///
106106
Future deleteDocument({required String collectionId, required String documentId}) async {
107-
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll(RegExp('{collectionId}'), collectionId).replaceAll(RegExp('{documentId}'), documentId);
107+
final String path = '/database/collections/{collectionId}/documents/{documentId}'.replaceAll('{collectionId}', collectionId).replaceAll('{documentId}', documentId);
108108

109109
final Map<String, dynamic> params = {
110110
};

lib/services/functions.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class Functions extends Service {
1111
/// different API modes](/docs/admin).
1212
///
1313
Future<models.ExecutionList> listExecutions({required String functionId, int? limit, int? offset, String? search, String? cursor, String? cursorDirection}) async {
14-
final String path = '/functions/{functionId}/executions'.replaceAll(RegExp('{functionId}'), functionId);
14+
final String path = '/functions/{functionId}/executions'.replaceAll('{functionId}', functionId);
1515

1616
final Map<String, dynamic> params = {
1717
'limit': limit,
@@ -37,7 +37,7 @@ class Functions extends Service {
3737
/// function execution process will start asynchronously.
3838
///
3939
Future<models.Execution> createExecution({required String functionId, String? data}) async {
40-
final String path = '/functions/{functionId}/executions'.replaceAll(RegExp('{functionId}'), functionId);
40+
final String path = '/functions/{functionId}/executions'.replaceAll('{functionId}', functionId);
4141

4242
final Map<String, dynamic> params = {
4343
'data': data,
@@ -56,7 +56,7 @@ class Functions extends Service {
5656
/// Get a function execution log by its unique ID.
5757
///
5858
Future<models.Execution> getExecution({required String functionId, required String executionId}) async {
59-
final String path = '/functions/{functionId}/executions/{executionId}'.replaceAll(RegExp('{functionId}'), functionId).replaceAll(RegExp('{executionId}'), executionId);
59+
final String path = '/functions/{functionId}/executions/{executionId}'.replaceAll('{functionId}', functionId).replaceAll('{executionId}', executionId);
6060

6161
final Map<String, dynamic> params = {
6262
};

lib/services/storage.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class Storage extends Service {
5959
/// with the file metadata.
6060
///
6161
Future<models.File> getFile({required String fileId}) async {
62-
final String path = '/storage/files/{fileId}'.replaceAll(RegExp('{fileId}'), fileId);
62+
final String path = '/storage/files/{fileId}'.replaceAll('{fileId}', fileId);
6363

6464
final Map<String, dynamic> params = {
6565
};
@@ -78,7 +78,7 @@ class Storage extends Service {
7878
/// access to update this resource.
7979
///
8080
Future<models.File> updateFile({required String fileId, required List read, required List write}) async {
81-
final String path = '/storage/files/{fileId}'.replaceAll(RegExp('{fileId}'), fileId);
81+
final String path = '/storage/files/{fileId}'.replaceAll('{fileId}', fileId);
8282

8383
final Map<String, dynamic> params = {
8484
'read': read,
@@ -99,7 +99,7 @@ class Storage extends Service {
9999
/// access to delete this resource.
100100
///
101101
Future deleteFile({required String fileId}) async {
102-
final String path = '/storage/files/{fileId}'.replaceAll(RegExp('{fileId}'), fileId);
102+
final String path = '/storage/files/{fileId}'.replaceAll('{fileId}', fileId);
103103

104104
final Map<String, dynamic> params = {
105105
};
@@ -119,7 +119,7 @@ class Storage extends Service {
119119
/// downloading the file to user downloads directory.
120120
///
121121
Future<Uint8List> getFileDownload({required String fileId}) async {
122-
final String path = '/storage/files/{fileId}/download'.replaceAll(RegExp('{fileId}'), fileId);
122+
final String path = '/storage/files/{fileId}/download'.replaceAll('{fileId}', fileId);
123123

124124
final Map<String, dynamic> params = {
125125
'project': client.config['project'],
@@ -141,7 +141,7 @@ class Storage extends Service {
141141
/// string arguments for cutting and resizing your preview image.
142142
///
143143
Future<Uint8List> getFilePreview({required String fileId, int? width, int? height, String? gravity, int? quality, int? borderWidth, String? borderColor, int? borderRadius, double? opacity, int? rotation, String? background, String? output}) async {
144-
final String path = '/storage/files/{fileId}/preview'.replaceAll(RegExp('{fileId}'), fileId);
144+
final String path = '/storage/files/{fileId}/preview'.replaceAll('{fileId}', fileId);
145145

146146
final Map<String, dynamic> params = {
147147
'width': width,
@@ -173,7 +173,7 @@ class Storage extends Service {
173173
/// header.
174174
///
175175
Future<Uint8List> getFileView({required String fileId}) async {
176-
final String path = '/storage/files/{fileId}/view'.replaceAll(RegExp('{fileId}'), fileId);
176+
final String path = '/storage/files/{fileId}/view'.replaceAll('{fileId}', fileId);
177177

178178
final Map<String, dynamic> params = {
179179
'project': client.config['project'],

lib/services/teams.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class Teams extends Service {
5959
/// Get a team by its ID. All team members have read access for this resource.
6060
///
6161
Future<models.Team> get({required String teamId}) async {
62-
final String path = '/teams/{teamId}'.replaceAll(RegExp('{teamId}'), teamId);
62+
final String path = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
6363

6464
final Map<String, dynamic> params = {
6565
};
@@ -78,7 +78,7 @@ class Teams extends Service {
7878
/// team.
7979
///
8080
Future<models.Team> update({required String teamId, required String name}) async {
81-
final String path = '/teams/{teamId}'.replaceAll(RegExp('{teamId}'), teamId);
81+
final String path = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
8282

8383
final Map<String, dynamic> params = {
8484
'name': name,
@@ -98,7 +98,7 @@ class Teams extends Service {
9898
/// delete the team.
9999
///
100100
Future delete({required String teamId}) async {
101-
final String path = '/teams/{teamId}'.replaceAll(RegExp('{teamId}'), teamId);
101+
final String path = '/teams/{teamId}'.replaceAll('{teamId}', teamId);
102102

103103
final Map<String, dynamic> params = {
104104
};
@@ -117,7 +117,7 @@ class Teams extends Service {
117117
/// members have read access to this endpoint.
118118
///
119119
Future<models.MembershipList> getMemberships({required String teamId, String? search, int? limit, int? offset, String? cursor, String? cursorDirection, String? orderType}) async {
120-
final String path = '/teams/{teamId}/memberships'.replaceAll(RegExp('{teamId}'), teamId);
120+
final String path = '/teams/{teamId}/memberships'.replaceAll('{teamId}', teamId);
121121

122122
final Map<String, dynamic> params = {
123123
'search': search,
@@ -155,7 +155,7 @@ class Teams extends Service {
155155
/// adding your platforms in the console interface.
156156
///
157157
Future<models.Membership> createMembership({required String teamId, required String email, required List roles, required String url, String? name}) async {
158-
final String path = '/teams/{teamId}/memberships'.replaceAll(RegExp('{teamId}'), teamId);
158+
final String path = '/teams/{teamId}/memberships'.replaceAll('{teamId}', teamId);
159159

160160
final Map<String, dynamic> params = {
161161
'email': email,
@@ -178,7 +178,7 @@ class Teams extends Service {
178178
/// access for this resource.
179179
///
180180
Future<models.MembershipList> getMembership({required String teamId, required String membershipId}) async {
181-
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll(RegExp('{teamId}'), teamId).replaceAll(RegExp('{membershipId}'), membershipId);
181+
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
182182

183183
final Map<String, dynamic> params = {
184184
};
@@ -198,7 +198,7 @@ class Teams extends Service {
198198
/// permissions](/docs/permissions).
199199
///
200200
Future<models.Membership> updateMembershipRoles({required String teamId, required String membershipId, required List roles}) async {
201-
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll(RegExp('{teamId}'), teamId).replaceAll(RegExp('{membershipId}'), membershipId);
201+
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
202202

203203
final Map<String, dynamic> params = {
204204
'roles': roles,
@@ -219,7 +219,7 @@ class Teams extends Service {
219219
/// delete a user membership even if it is not accepted.
220220
///
221221
Future deleteMembership({required String teamId, required String membershipId}) async {
222-
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll(RegExp('{teamId}'), teamId).replaceAll(RegExp('{membershipId}'), membershipId);
222+
final String path = '/teams/{teamId}/memberships/{membershipId}'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
223223

224224
final Map<String, dynamic> params = {
225225
};
@@ -239,7 +239,7 @@ class Teams extends Service {
239239
/// by the user.
240240
///
241241
Future<models.Membership> updateMembershipStatus({required String teamId, required String membershipId, required String userId, required String secret}) async {
242-
final String path = '/teams/{teamId}/memberships/{membershipId}/status'.replaceAll(RegExp('{teamId}'), teamId).replaceAll(RegExp('{membershipId}'), membershipId);
242+
final String path = '/teams/{teamId}/memberships/{membershipId}/status'.replaceAll('{teamId}', teamId).replaceAll('{membershipId}', membershipId);
243243

244244
final Map<String, dynamic> params = {
245245
'userId': userId,

lib/src/client_browser.dart

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ClientBrowser extends ClientBase with ClientMixin {
3636
.replaceFirst('http://', 'ws://');
3737
_headers = {
3838
'content-type': 'application/json',
39-
'x-sdk-version': 'appwrite:flutter:3.0.0',
39+
'x-sdk-version': 'appwrite:flutter:3.0.1',
4040
'X-Appwrite-Response-Format' : '0.12.0',
4141
};
4242

@@ -148,13 +148,6 @@ class ClientBrowser extends ClientBase with ClientMixin {
148148
return FlutterWebAuth.authenticate(
149149
url: url.toString(),
150150
callbackUrlScheme: "appwrite-callback-" + config['project']!,
151-
).then((value) async {
152-
Uri url = Uri.parse(value);
153-
final key = url.queryParameters['key'];
154-
final secret = url.queryParameters['secret'];
155-
if (key == null || secret == null) {
156-
throw AppwriteException(
157-
"Invalid OAuth2 Response. Key and Secret not available.", 500);
158-
}
159-
}); }
151+
);
152+
}
160153
}

lib/src/client_io.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class ClientIO extends ClientBase with ClientMixin {
5555
.replaceFirst('http://', 'ws://');
5656
this._headers = {
5757
'content-type': 'application/json',
58-
'x-sdk-version': 'appwrite:flutter:3.0.0',
58+
'x-sdk-version': 'appwrite:flutter:3.0.1',
5959
'X-Appwrite-Response-Format' : '0.12.0',
6060
};
6161

0 commit comments

Comments
 (0)