Skip to content

Commit e97eb0b

Browse files
authored
feat(fdc): Implemented partial errors (#17148)
1 parent 4ab6b4c commit e97eb0b

25 files changed

+380
-334
lines changed

packages/firebase_data_connect/firebase_data_connect/example/android/gradle/wrapper/gradle-wrapper.properties

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
36
zipStoreBase=GRADLE_USER_HOME
47
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip

packages/firebase_data_connect/firebase_data_connect/example/android/settings.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pluginManagement {
1818

1919
plugins {
2020
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version "8.1.0" apply false
21+
id "com.android.application" version '8.7.0' apply false
2222
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
2323
}
2424

packages/firebase_data_connect/firebase_data_connect/example/dataconnect/connector/mutations.gql

+6-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,12 @@ mutation deleteMovie($id: UUID!) @auth(level: PUBLIC) {
6363
}
6464

6565
mutation thing($title: Any! = "ABC") @auth(level: PUBLIC) {
66-
thing_insert(data: {
66+
abc: thing_insert(data: {
67+
id: "a231d1ff-1825-447d-8b12-de092fb3a0f1"
68+
title: $title
69+
})
70+
def: thing_insert(data: {
71+
id: "a231d1ff-1825-447d-8b12-de092fb3a0f1"
6772
title: $title
6873
})
6974
}

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_date_and_timestamp.dart

+10-21
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,42 @@
1-
part of movies;
1+
part of 'movies.dart';
22

33
class AddDateAndTimestampVariablesBuilder {
44
DateTime date;
55
Timestamp timestamp;
66

7-
FirebaseDataConnect _dataConnect;
8-
7+
final FirebaseDataConnect _dataConnect;
98
AddDateAndTimestampVariablesBuilder(
109
this._dataConnect, {
11-
required DateTime this.date,
12-
required Timestamp this.timestamp,
10+
required this.date,
11+
required this.timestamp,
1312
});
1413
Deserializer<AddDateAndTimestampData> dataDeserializer =
1514
(dynamic json) => AddDateAndTimestampData.fromJson(jsonDecode(json));
1615
Serializer<AddDateAndTimestampVariables> varsSerializer =
1716
(AddDateAndTimestampVariables vars) => jsonEncode(vars.toJson());
1817
Future<OperationResult<AddDateAndTimestampData, AddDateAndTimestampVariables>>
1918
execute() {
20-
return this.ref().execute();
19+
return ref().execute();
2120
}
2221

2322
MutationRef<AddDateAndTimestampData, AddDateAndTimestampVariables> ref() {
2423
AddDateAndTimestampVariables vars = AddDateAndTimestampVariables(
2524
date: date,
2625
timestamp: timestamp,
2726
);
28-
2927
return _dataConnect.mutation(
3028
"addDateAndTimestamp", dataDeserializer, varsSerializer, vars);
3129
}
3230
}
3331

3432
class AddDateAndTimestampTimestampHolderInsert {
3533
String id;
36-
3734
AddDateAndTimestampTimestampHolderInsert.fromJson(dynamic json)
38-
: id = nativeFromJson<String>(json['id']) {}
35+
: id = nativeFromJson<String>(json['id']);
3936

4037
Map<String, dynamic> toJson() {
4138
Map<String, dynamic> json = {};
42-
4339
json['id'] = nativeToJson<String>(id);
44-
4540
return json;
4641
}
4742

@@ -52,17 +47,14 @@ class AddDateAndTimestampTimestampHolderInsert {
5247

5348
class AddDateAndTimestampData {
5449
AddDateAndTimestampTimestampHolderInsert timestampHolder_insert;
55-
5650
AddDateAndTimestampData.fromJson(dynamic json)
5751
: timestampHolder_insert =
5852
AddDateAndTimestampTimestampHolderInsert.fromJson(
59-
json['timestampHolder_insert']) {}
53+
json['timestampHolder_insert']);
6054

6155
Map<String, dynamic> toJson() {
6256
Map<String, dynamic> json = {};
63-
6457
json['timestampHolder_insert'] = timestampHolder_insert.toJson();
65-
6658
return json;
6759
}
6860

@@ -73,20 +65,17 @@ class AddDateAndTimestampData {
7365

7466
class AddDateAndTimestampVariables {
7567
DateTime date;
76-
7768
Timestamp timestamp;
78-
69+
@Deprecated(
70+
'fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
7971
AddDateAndTimestampVariables.fromJson(Map<String, dynamic> json)
8072
: date = nativeFromJson<DateTime>(json['date']),
81-
timestamp = Timestamp.fromJson(json['timestamp']) {}
73+
timestamp = Timestamp.fromJson(json['timestamp']);
8274

8375
Map<String, dynamic> toJson() {
8476
Map<String, dynamic> json = {};
85-
8677
json['date'] = nativeToJson<DateTime>(date);
87-
8878
json['timestamp'] = timestamp.toJson();
89-
9079
return json;
9180
}
9281

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_director_to_movie.dart

+10-25
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
part of movies;
1+
part of 'movies.dart';
22

33
class AddDirectorToMovieVariablesBuilder {
44
Optional<AddDirectorToMovieVariablesPersonId> _personId = Optional.optional(
55
AddDirectorToMovieVariablesPersonId.fromJson, defaultSerializer);
66
Optional<String> _movieId = Optional.optional(nativeFromJson, nativeToJson);
77

8-
FirebaseDataConnect _dataConnect;
8+
final FirebaseDataConnect _dataConnect;
99
AddDirectorToMovieVariablesBuilder personId(
1010
AddDirectorToMovieVariablesPersonId? t) {
11-
this._personId.value = t;
11+
_personId.value = t;
1212
return this;
1313
}
1414

1515
AddDirectorToMovieVariablesBuilder movieId(String? t) {
16-
this._movieId.value = t;
16+
_movieId.value = t;
1717
return this;
1818
}
1919

@@ -26,36 +26,30 @@ class AddDirectorToMovieVariablesBuilder {
2626
(AddDirectorToMovieVariables vars) => jsonEncode(vars.toJson());
2727
Future<OperationResult<AddDirectorToMovieData, AddDirectorToMovieVariables>>
2828
execute() {
29-
return this.ref().execute();
29+
return ref().execute();
3030
}
3131

3232
MutationRef<AddDirectorToMovieData, AddDirectorToMovieVariables> ref() {
3333
AddDirectorToMovieVariables vars = AddDirectorToMovieVariables(
3434
personId: _personId,
3535
movieId: _movieId,
3636
);
37-
3837
return _dataConnect.mutation(
3938
"addDirectorToMovie", dataDeserializer, varsSerializer, vars);
4039
}
4140
}
4241

4342
class AddDirectorToMovieDirectedByInsert {
4443
String directedbyId;
45-
4644
String movieId;
47-
4845
AddDirectorToMovieDirectedByInsert.fromJson(dynamic json)
4946
: directedbyId = nativeFromJson<String>(json['directedbyId']),
50-
movieId = nativeFromJson<String>(json['movieId']) {}
47+
movieId = nativeFromJson<String>(json['movieId']);
5148

5249
Map<String, dynamic> toJson() {
5350
Map<String, dynamic> json = {};
54-
5551
json['directedbyId'] = nativeToJson<String>(directedbyId);
56-
5752
json['movieId'] = nativeToJson<String>(movieId);
58-
5953
return json;
6054
}
6155

@@ -67,16 +61,13 @@ class AddDirectorToMovieDirectedByInsert {
6761

6862
class AddDirectorToMovieData {
6963
AddDirectorToMovieDirectedByInsert directedBy_insert;
70-
7164
AddDirectorToMovieData.fromJson(dynamic json)
7265
: directedBy_insert = AddDirectorToMovieDirectedByInsert.fromJson(
73-
json['directedBy_insert']) {}
66+
json['directedBy_insert']);
7467

7568
Map<String, dynamic> toJson() {
7669
Map<String, dynamic> json = {};
77-
7870
json['directedBy_insert'] = directedBy_insert.toJson();
79-
8071
return json;
8172
}
8273

@@ -87,15 +78,12 @@ class AddDirectorToMovieData {
8778

8879
class AddDirectorToMovieVariablesPersonId {
8980
String id;
90-
9181
AddDirectorToMovieVariablesPersonId.fromJson(dynamic json)
92-
: id = nativeFromJson<String>(json['id']) {}
82+
: id = nativeFromJson<String>(json['id']);
9383

9484
Map<String, dynamic> toJson() {
9585
Map<String, dynamic> json = {};
96-
9786
json['id'] = nativeToJson<String>(id);
98-
9987
return json;
10088
}
10189

@@ -106,9 +94,9 @@ class AddDirectorToMovieVariablesPersonId {
10694

10795
class AddDirectorToMovieVariables {
10896
late Optional<AddDirectorToMovieVariablesPersonId> personId;
109-
11097
late Optional<String> movieId;
111-
98+
@Deprecated(
99+
'fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
112100
AddDirectorToMovieVariables.fromJson(Map<String, dynamic> json) {
113101
personId = Optional.optional(
114102
AddDirectorToMovieVariablesPersonId.fromJson, defaultSerializer);
@@ -124,15 +112,12 @@ class AddDirectorToMovieVariables {
124112

125113
Map<String, dynamic> toJson() {
126114
Map<String, dynamic> json = {};
127-
128115
if (personId.state == OptionalState.set) {
129116
json['personId'] = personId.toJson();
130117
}
131-
132118
if (movieId.state == OptionalState.set) {
133119
json['movieId'] = movieId.toJson();
134120
}
135-
136121
return json;
137122
}
138123

packages/firebase_data_connect/firebase_data_connect/example/lib/generated/add_person.dart

+8-16
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
part of movies;
1+
part of 'movies.dart';
22

33
class AddPersonVariablesBuilder {
44
Optional<String> _name = Optional.optional(nativeFromJson, nativeToJson);
55

6-
FirebaseDataConnect _dataConnect;
6+
final FirebaseDataConnect _dataConnect;
77
AddPersonVariablesBuilder name(String? t) {
8-
this._name.value = t;
8+
_name.value = t;
99
return this;
1010
}
1111

@@ -17,30 +17,26 @@ class AddPersonVariablesBuilder {
1717
Serializer<AddPersonVariables> varsSerializer =
1818
(AddPersonVariables vars) => jsonEncode(vars.toJson());
1919
Future<OperationResult<AddPersonData, AddPersonVariables>> execute() {
20-
return this.ref().execute();
20+
return ref().execute();
2121
}
2222

2323
MutationRef<AddPersonData, AddPersonVariables> ref() {
2424
AddPersonVariables vars = AddPersonVariables(
2525
name: _name,
2626
);
27-
2827
return _dataConnect.mutation(
2928
"addPerson", dataDeserializer, varsSerializer, vars);
3029
}
3130
}
3231

3332
class AddPersonPersonInsert {
3433
String id;
35-
3634
AddPersonPersonInsert.fromJson(dynamic json)
37-
: id = nativeFromJson<String>(json['id']) {}
35+
: id = nativeFromJson<String>(json['id']);
3836

3937
Map<String, dynamic> toJson() {
4038
Map<String, dynamic> json = {};
41-
4239
json['id'] = nativeToJson<String>(id);
43-
4440
return json;
4541
}
4642

@@ -51,15 +47,12 @@ class AddPersonPersonInsert {
5147

5248
class AddPersonData {
5349
AddPersonPersonInsert person_insert;
54-
5550
AddPersonData.fromJson(dynamic json)
56-
: person_insert = AddPersonPersonInsert.fromJson(json['person_insert']) {}
51+
: person_insert = AddPersonPersonInsert.fromJson(json['person_insert']);
5752

5853
Map<String, dynamic> toJson() {
5954
Map<String, dynamic> json = {};
60-
6155
json['person_insert'] = person_insert.toJson();
62-
6356
return json;
6457
}
6558

@@ -70,7 +63,8 @@ class AddPersonData {
7063

7164
class AddPersonVariables {
7265
late Optional<String> name;
73-
66+
@Deprecated(
67+
'fromJson is deprecated for Variable classes as they are no longer required for deserialization.')
7468
AddPersonVariables.fromJson(Map<String, dynamic> json) {
7569
name = Optional.optional(nativeFromJson, nativeToJson);
7670
name.value =
@@ -79,11 +73,9 @@ class AddPersonVariables {
7973

8074
Map<String, dynamic> toJson() {
8175
Map<String, dynamic> json = {};
82-
8376
if (name.state == OptionalState.set) {
8477
json['name'] = name.toJson();
8578
}
86-
8779
return json;
8880
}
8981

0 commit comments

Comments
 (0)