Skip to content

Commit 9cd11cf

Browse files
Fix expand query param building
1 parent df64603 commit 9cd11cf

2 files changed

Lines changed: 14 additions & 31 deletions

File tree

lib/src/resources/subscription.dart

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ import 'dart:async';
22

33
import 'package:stripe/messages.dart';
44
import 'package:stripe/src/expanded.dart';
5-
import 'package:stripe/src/utils/expandable_field.dart';
6-
import 'package:stripe/src/utils/expandable_fields/customer_expandable_field.dart';
7-
import 'package:stripe/src/utils/expandable_fields/discounts_expandable_field.dart';
8-
import 'package:stripe/src/utils/expandable_fields/latest_invoice_expanded_expandable_field.dart';
95

106
import '../client.dart';
117
import '_resource.dart';
@@ -34,38 +30,27 @@ class SubscriptionResource extends Resource<Subscription> {
3430
String id, {
3531
required Set<SubscriptionExpandableField> expand,
3632
}) async {
37-
final expandableFields = _expandableFields(expand);
3833
final response = await get(
3934
'$_resourceName/$id',
4035
queryParameters: {
41-
'expand': expandableFields.map((e) => e.field).toList(),
36+
'expand': _expandParamComponents,
4237
},
4338
);
4439

4540
return SubscriptionExpanded.fromJson(response, expand);
4641
}
4742

48-
Iterable<ExpandableField> _expandableFields(
49-
Set<SubscriptionExpandableField> fields,
50-
) {
51-
return fields.map(
52-
(field) => _expandableField(field),
53-
);
54-
}
55-
56-
ExpandableField _expandableField(
57-
SubscriptionExpandableField field,
58-
) {
59-
switch (field) {
60-
case SubscriptionExpandableField.discounts:
61-
return DiscountsExpandableField();
62-
case SubscriptionExpandableField.latestInvoice:
63-
return LatestInvoiceExpandedExpandableField(
64-
expand: {InvoiceExpandableField.paymentIntent},
65-
);
66-
case SubscriptionExpandableField.customer:
67-
return CustomerExpandableField();
68-
}
43+
List<String> _expandParamComponents(Set<SubscriptionExpandableField> fields) {
44+
return fields.map((field) {
45+
switch (field) {
46+
case SubscriptionExpandableField.discounts:
47+
return 'discounts';
48+
case SubscriptionExpandableField.latestInvoice:
49+
return 'latest_invoice.payment_intent';
50+
case SubscriptionExpandableField.customer:
51+
return 'customer';
52+
}
53+
}).toList();
6954
}
7055

7156
Future<DataList<Subscription>> list(
@@ -79,13 +64,11 @@ class SubscriptionResource extends Resource<Subscription> {
7964
required Set<SubscriptionExpandableField> expand,
8065
ListSubscriptionsRequest? request,
8166
}) async {
82-
final expandableFields = _expandableFields(expand);
83-
8467
final response = await get(
8568
_resourceName,
8669
queryParameters: {
8770
...?request?.toJson(),
88-
'expand': expandableFields.map((e) => 'data.${e.field}').toList(),
71+
'expand': _expandParamComponents(expand).map((e) => 'data.$e').toList(),
8972
},
9073
);
9174

lib/src/utils/expandable_fields/latest_invoice_expanded_expandable_field.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class LatestInvoiceExpandedExpandableField
77
final Set<InvoiceExpandableField> expand;
88

99
@override
10-
String get field => 'latest_invoice.payment_intent';
10+
String get field => 'latest_invoice';
1111

1212
const LatestInvoiceExpandedExpandableField({
1313
required this.expand,

0 commit comments

Comments
 (0)