Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔖 release v7.4.0 #595

Merged
merged 150 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
150 commits
Select commit Hold shift + click to select a range
f25fbe4
Fix Header Option Casting (#260)
yousinix May 25, 2021
3d47735
Fix for #259 (#263)
JEuler May 31, 2021
8be965b
4.0.1 fixes (#264)
JEuler Jun 1, 2021
bcb0304
analyzer dependency upgraded (#296)
luis901101 Sep 18, 2021
4e4607e
fix(generator): fix PartValueFile value not nullable if arg is (#288)…
rIIh Sep 18, 2021
939a83f
Chopper generator release 4.0.2 (#297)
JEuler Sep 23, 2021
ff0ec87
fix: fix this.body cast of null value when response body is null (#29…
rIIh Sep 23, 2021
ffcd945
Interpolation fixes (#275)
JEuler Sep 23, 2021
82b951f
encodeQueryComponent now encodeComponent (#278)
JEuler Sep 23, 2021
f7255b7
Prevent double call on token refreshment (#276)
JEuler Oct 10, 2021
ddefa94
Fixes for #309 #308 (#310)
JEuler Dec 7, 2021
0386c74
Remove new keyword from interceptors.md (#312)
michalsrutek Jan 3, 2022
d4dab0d
Analyzer upgrade (#320)
JEuler Jan 16, 2022
bbe2c7a
Add unnecessary_brace_in_string_interps to lint ignores (#317)
pingbird Jan 16, 2022
6bdbd63
Extend pragma to quiet the linter (#318)
vipw Jan 22, 2022
4185d14
Fix converter getting called twice if using an authenticator with a J…
maxroehrl Jan 30, 2022
dbf4272
migrate example to nullsafety (#331)
ipcjs Feb 22, 2022
976d457
Resolve problem in main_json_serializable example (#328)
ibadin Apr 24, 2022
cc2da20
Add @FiledMap @PartMap @PartFileMap (#335)
meysam1717 May 1, 2022
659b9f8
Upgrade of analyzer (#340)
JEuler Jun 20, 2022
e167ba6
Fix nullable QueryMap fails to compile (#344)
techouse Jul 14, 2022
f9009ce
Change return type of decodeJson to FutureOr in order to be able to s…
techouse Sep 7, 2022
5f2eb82
Migrate from pedantic to lints ^2.0.0 with lints/recommended.yaml (#349)
techouse Sep 7, 2022
02cf2e0
Version bumped for release (#352)
JEuler Sep 13, 2022
34b3bda
Revert analyzer to ^4.1.0 and silence linters for Element.enclosingEl…
techouse Sep 13, 2022
426a16e
[chopper_generator] Update analyzer to ^4.4.0 and code_builde to ^4.3…
techouse Sep 17, 2022
35fdf8f
Add Makefiles to streamline development (#357)
techouse Sep 17, 2022
5a59ebf
Add Bug Report Github issue template (#359)
techouse Sep 18, 2022
fcf3478
[chopper_generator] Add types to the generated variables (#360)
techouse Sep 19, 2022
6b3b840
Provide an example using an Isolate Worker Pool with Squadron (#361)
techouse Sep 19, 2022
d74790c
mapToQuery changes (#364)
techouse Oct 8, 2022
0882a7e
Version bumped / changelog update (#367)
JEuler Oct 8, 2022
e3fd623
Request extends http.BaseRequest (#370)
techouse Oct 13, 2022
bd8d65f
Exclude null query vars by default and add new @Method annotation inc…
techouse Oct 14, 2022
786c153
5.1.0 (dev) (#373)
JEuler Oct 15, 2022
9b2b867
[workflow] Upgrade mono_repo to v6.4.1 (#375)
techouse Oct 15, 2022
233678e
Update analyzer to >=4.4.0 <6.0.0 (#378)
techouse Oct 17, 2022
1b2f1fa
Update mono_repo to 6.4.2 (#380)
techouse Oct 18, 2022
1e3e7f4
add techouse (#382)
JEuler Oct 18, 2022
b0fd18f
[Feature] Replace the String based path with Uri (#383)
Guldem Oct 31, 2022
9d1d86c
:memo: Add Authenticator example (#386)
techouse Nov 20, 2022
2775a73
Update getting-started.md (#391)
erlangparasu Dec 11, 2022
11a9ca5
Fix #388 Triggering Authenticator double encodes body in POST, PUT, P…
techouse Dec 11, 2022
bdbe210
Add image upload test (#392)
techouse Dec 11, 2022
b6ea960
Release 5.2.0 (#394)
JEuler Dec 13, 2022
1719c83
6.0.0 (#397)
JEuler Dec 14, 2022
7453582
Configurable HttpLoggingInterceptor (#399)
Guldem Jan 6, 2023
fa73de3
Made apply headers field name case insensitive. (#400)
Guldem Jan 8, 2023
bd3d7cc
:bulb: Clean up code in comments (#403)
techouse Jan 9, 2023
a910ede
Fix dead link on FAQs page (#404)
markasselin Jan 26, 2023
adfb1c5
Updated chopper version to 6.0.0 for chopper_built_value (#406)
Guldem Feb 2, 2023
253d69a
#290 implement Equatable (#410)
techouse Feb 22, 2023
9976752
Add Feature request Github issue template (#414)
techouse Mar 13, 2023
617f3f3
:construction_worker: add CODEOWNERS (#415)
techouse Mar 29, 2023
d83ad40
:arrow_up: Bump Dart SDK constraint to ">=2.17.0 <4.0.0" (#417)
techouse May 12, 2023
83f8c25
:green_heart: Fix CI publish (#419)
techouse May 13, 2023
64bd220
:green_heart: Fix CI publish credentials (#421)
techouse May 14, 2023
09774f1
:green_heart: Fix CI coverage reporting (#423)
techouse May 14, 2023
0145064
:construction_worker: only run CI publish / --dry-run when a package'…
techouse May 15, 2023
ef2fbf5
:green_heart: fix publish CI to run only on push (#425)
techouse May 15, 2023
08781c9
:green_heart: fix publish workflow (#427)
techouse May 20, 2023
485ef8f
Adding follow redirects to toHttpRequest (#430)
Joran-Dob May 26, 2023
a88aa3a
:arrow_up: update squadron example (#432)
techouse May 27, 2023
0546452
:arrow_up: update http constraint to ">=0.13.0 <2.0.0" (#431)
techouse May 27, 2023
ae8bff5
Add MultipartRequest log to CurlInterceptor (#435)
JosephNK May 27, 2023
d824ded
:green_heart: add cleanup step to publish workflow (#434)
techouse May 28, 2023
829d5b0
:twisted_rightwards_arrows: post release branch sync (#437)
techouse May 28, 2023
455cd34
:bug: fix Multipart for List<int> and List<String> (#439)
techouse Jun 3, 2023
1f8c596
:twisted_rightwards_arrows: post release branch sync (#441)
techouse Jun 4, 2023
917a463
:sparkles: Generating files in different directories (#444)
techouse Jun 19, 2023
ac90783
:twisted_rightwards_arrows: post release branch sync (#447)
techouse Jun 19, 2023
97959f0
:recycle: refactor chopper_generator (#448)
techouse Jul 4, 2023
0856b86
:twisted_rightwards_arrows: post release branch sync (#450)
techouse Jul 5, 2023
96f9dbc
:heavy_minus_sign: remove dart_code_metrics from dev_dependencies (#452)
techouse Jul 9, 2023
6afebb0
:sparkles: implement Dart 3 class modifiers (#453)
techouse Jul 29, 2023
93b4e8a
:twisted_rightwards_arrows: post release branch sync (#455)
techouse Jul 30, 2023
7cd824c
:passport_control: fix CODEOWNERS (#456)
techouse Jul 30, 2023
aa63283
:recycle: refactor chopper (#460)
techouse Aug 2, 2023
a386e86
:recycle: refactor ChopperClient constructor (#461)
techouse Aug 2, 2023
7a6b5b9
:arrow_up: update mono_repo (#462)
techouse Aug 2, 2023
e9fc26d
:sparkles: add final class modifier to generated Chopper API implemen…
techouse Aug 3, 2023
e07afcf
:twisted_rightwards_arrows: post release branch sync (#466)
techouse Aug 3, 2023
2f7f414
:construction_worker: add Dependabot workflow (#467)
techouse Aug 4, 2023
03f7bf7
:pencil2: fix typo in mono_repo.yaml (#468)
techouse Aug 4, 2023
8dbde76
:sparkles: HttpLoggingInterceptor: allow to pass custom logger (#470)
Maxr1998 Aug 5, 2023
2e00b6a
:construction_worker: use yq to manipulate pubspec.yaml in publish CI…
techouse Aug 7, 2023
0af17f8
:twisted_rightwards_arrows: post release branch sync (#473)
techouse Aug 7, 2023
1a01b60
:sparkles: Attach request/response to interceptor log lines (#475)
Maxr1998 Aug 10, 2023
764d57d
:twisted_rightwards_arrows: post release branch sync (#477)
techouse Aug 11, 2023
f8905ad
:adhesive_bandage: export ChopperLogRecord to library surface (#480)
Maxr1998 Aug 14, 2023
c658d39
:label: make ChopperLogRecord final (#481)
Maxr1998 Aug 14, 2023
a0d70ac
:twisted_rightwards_arrows: post release branch sync (#483)
techouse Aug 14, 2023
2ab9d87
:arrow_up: analyzer: ">=5.13.0 <7.0.0" (#484)
techouse Aug 16, 2023
08bab6c
:twisted_rightwards_arrows: post release branch sync (#486)
techouse Aug 17, 2023
4c52b09
Update README.md (#488)
hunterwilhelm Aug 19, 2023
c7b67a6
:twisted_rightwards_arrows: post release branch sync (#491)
techouse Aug 22, 2023
e706150
Adding support for top level variables (#493)
martinale14 Aug 31, 2023
31c3967
:label: add topics (#495)
techouse Sep 1, 2023
a0f106d
:bug: fix chopper base.dart send() authenticate sending wrong request…
techouse Sep 2, 2023
f85eacd
:twisted_rightwards_arrows: post release branch sync (#499)
techouse Sep 2, 2023
be71064
:rotating_light: ignore unnecessary_string_interpolations (#501)
techouse Sep 5, 2023
3ff8359
:twisted_rightwards_arrows: post release branch sync (#503)
techouse Sep 8, 2023
14bc48f
:rotating_light: correct static analysis suppression of *.chopper.dar…
techouse Oct 7, 2023
b48066d
:bug: remove charset from http request headers when the body is in by…
techouse Oct 7, 2023
cbb4a92
:construction_worker: update mono_repo (#509)
techouse Oct 7, 2023
ce0836d
:construction_worker: create Github release when publishing package (…
techouse Oct 7, 2023
fedb899
:twisted_rightwards_arrows: post release branch sync (#514)
techouse Oct 7, 2023
52133f6
:sparkles: encode DateTime as ISO8601 (#516)
techouse Oct 11, 2023
24179ab
:twisted_rightwards_arrows: post release branch sync (#518)
techouse Oct 11, 2023
4860d3a
Fix incorrect url generation when using new baseurl (#520)
martinale14 Oct 12, 2023
8dd5a84
:twisted_rightwards_arrows: post release branch sync (#522)
techouse Oct 13, 2023
08ee151
:arrow_up: Bump lints from 2.1.1 to 3.0.0 in /chopper (#525)
dependabot[bot] Oct 23, 2023
723b5fc
:arrow_up: Bump lints from 2.1.1 to 3.0.0 in /chopper_built_value (#524)
dependabot[bot] Oct 23, 2023
f061355
:arrow_up: Bump lints from 2.1.1 to 3.0.0 in /chopper_generator (#523)
dependabot[bot] Oct 23, 2023
e5417d1
Add mock mixins of Chopper components. (#529)
diegotori Oct 26, 2023
e34feea
Add success/failure callback hooks to Authenticator. (#527)
diegotori Oct 26, 2023
4178d7d
:bug: fix Makefile show_test_coverage (#530)
techouse Oct 29, 2023
9d392a1
:twisted_rightwards_arrows: post release branch sync (#532)
techouse Nov 1, 2023
eb3f6c9
:lipstick: cosmetic refactor (#534)
techouse Nov 16, 2023
33cb73a
:construction_worker: update CI (#535)
techouse Nov 18, 2023
e84d077
:sparkles: call .toString() on non-String headers (#538)
techouse Dec 30, 2023
8938d98
:twisted_rightwards_arrows: post release branch sync (#542)
techouse Jan 2, 2024
4ba5a83
Helper function for fetching errors of specific type (#543)
Guldem Jan 2, 2024
6420778
:sparkles: Feature: Omit Response in service (#545)
Guldem Jan 5, 2024
2dc868f
:memo: Improved documentation + added const annotations (#548)
Guldem Jan 5, 2024
33615ed
:bug: fix chopper_generator regression introduced in #534 (#549)
techouse Jan 8, 2024
a0d5bc5
:twisted_rightwards_arrows: post release branch sync (#556)
techouse Jan 15, 2024
78fae30
:construction_worker: use Dependabot to check for workflow action upd…
techouse Jan 15, 2024
d369217
:sparkles: add option to override build_extension (#562)
techouse Jan 21, 2024
b8f2fe2
:twisted_rightwards_arrows: post release branch sync (#565)
techouse Jan 23, 2024
168982f
:rewind: revert faq.md (#566)
techouse Jan 24, 2024
be1c370
:sparkles: Added Target annotations for the annotations (#567)
Guldem Jan 25, 2024
63e6d00
:twisted_rightwards_arrows: post release branch sync (#569)
techouse Jan 28, 2024
5585ffb
:bug: Export ChopperHttpException so developer can catch it. (#570)
Guldem Jan 31, 2024
3af6e4e
:arrow_up: Bump codecov/codecov-action from 3 to 4 (#571)
dependabot[bot] Feb 5, 2024
4a1de44
Revert ":arrow_up: Bump codecov/codecov-action from 3 to 4 (#571)" (#…
techouse Feb 8, 2024
655aafa
Support @FormUrlEncoded (#579)
lwj1994 Mar 7, 2024
49943bf
:arrow_up: Bump actions/cache from 3.3.1 to 4.0.1 (#580)
dependabot[bot] Mar 7, 2024
8900256
:twisted_rightwards_arrows: post release branch sync (#582)
techouse Mar 8, 2024
8ff4ecd
:arrow_up: Bump softprops/action-gh-release from 1 to 2 (#583)
dependabot[bot] Mar 11, 2024
7c65a25
Support @Tag (#586)
lwj1994 Mar 20, 2024
fd9747a
:arrow_up: Bump actions/checkout from 3.5.2 to 4.1.2 (#587)
dependabot[bot] Mar 20, 2024
153f13e
:bug: fix Request.copyWith lose tag param (#588)
lwj1994 Mar 21, 2024
5039e49
:arrow_up: Bump actions/cache from 4.0.1 to 4.0.2 (#590)
dependabot[bot] Mar 25, 2024
dd61ec1
:twisted_rightwards_arrows: post release branch sync (#593)
techouse Apr 4, 2024
84471e4
:zap: use qs_dart for query string encoding (#592)
techouse Apr 4, 2024
77b1adf
Merge branch 'refs/heads/develop' into release/v7.4.0
techouse Apr 4, 2024
d5aa59e
:bookmark: release v7.4.0
techouse Apr 4, 2024
46e8c99
:arrow_up: update Github actions (#594)
techouse Apr 5, 2024
d242a43
Merge branch 'refs/heads/develop' into release/v7.4.0
techouse Apr 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .github/workflows/dart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319
uses: actions/cache@v4
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable"
restore-keys: |
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- name: Setup Dart SDK
uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
uses: dart-lang/setup-dart@v1
with:
sdk: stable
- id: checkout
name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
uses: actions/checkout@v4
- name: mono_repo self validate
run: dart pub global activate mono_repo 6.6.1
- name: mono_repo self validate
Expand All @@ -45,7 +45,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319
uses: actions/cache@v4
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:chopper-chopper_built_value-chopper_generator;commands:format-analyze"
Expand All @@ -55,12 +55,12 @@ jobs:
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- name: Setup Dart SDK
uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
uses: dart-lang/setup-dart@v1
with:
sdk: stable
- id: checkout
name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
uses: actions/checkout@v4
- id: chopper_pub_upgrade
name: chopper; dart pub upgrade
run: dart pub upgrade
Expand Down Expand Up @@ -105,7 +105,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319
uses: actions/cache@v4
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:chopper-chopper_built_value-chopper_generator;commands:test_with_coverage"
Expand All @@ -115,14 +115,14 @@ jobs:
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- name: Setup Dart SDK
uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
uses: dart-lang/setup-dart@v1
with:
sdk: stable
- name: "Activate package:coverage"
run: "dart pub global activate coverage '>=1.5.0'"
- id: checkout
name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
uses: actions/checkout@v4
- id: chopper_pub_upgrade
name: chopper; dart pub upgrade
run: dart pub upgrade
Expand Down Expand Up @@ -176,7 +176,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Cache Pub hosted dependencies
uses: actions/cache@ab5e6d0c87105b4c9c2047343972218f562e4319
uses: actions/cache@v4
with:
path: "~/.pub-cache/hosted"
key: "os:ubuntu-latest;pub-cache-hosted;sdk:stable;packages:chopper-chopper_built_value;commands:test"
Expand All @@ -186,12 +186,12 @@ jobs:
os:ubuntu-latest;pub-cache-hosted
os:ubuntu-latest
- name: Setup Dart SDK
uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
uses: dart-lang/setup-dart@v1
with:
sdk: stable
- id: checkout
name: Checkout repository
uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633
uses: actions/checkout@v4
- id: chopper_pub_upgrade
name: chopper; dart pub upgrade
run: dart pub upgrade
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
with:
sdk: stable
- id: checkout
uses: actions/checkout@v4.1.2
uses: actions/checkout@v4
with:
fetch-depth: 2
- run: git checkout HEAD^
Expand All @@ -53,7 +53,7 @@ jobs:
with:
sdk: stable
- id: checkout
uses: actions/checkout@v4.1.2
uses: actions/checkout@v4
- name: Load this version
id: load_this_version
working-directory: ${{ matrix.package }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/publish_dry_run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
with:
sdk: stable
- id: checkout
uses: actions/checkout@v4.1.2
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}
- name: Load base version
Expand All @@ -50,7 +50,7 @@ jobs:
with:
sdk: stable
- id: checkout
uses: actions/checkout@v4.1.2
uses: actions/checkout@v4
- name: Load this version
id: load_this_version
working-directory: ${{ matrix.package }}
Expand Down
4 changes: 4 additions & 0 deletions chopper/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 7.4.0

- Use [qs_dart](https://pub.dev/packages/qs_dart) for query string encoding for query string encoding in order to support complex query objects ([#592](https://github.com/lejard-h/chopper/pull/592))

## 7.3.0

- Add support for `@Tag` annotation ([#586](https://github.com/lejard-h/chopper/pull/586))
Expand Down
1 change: 1 addition & 0 deletions chopper/analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ include: package:lints/recommended.yaml
analyzer:
exclude:
- "**.g.dart"
- "**.chopper.dart"
- "**.mocks.dart"
- "example/**"

Expand Down
1 change: 1 addition & 0 deletions chopper/lib/chopper.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export 'src/constants.dart';
export 'src/extensions.dart';
export 'src/http_logging_interceptor.dart';
export 'src/interceptor.dart';
export 'src/list_format.dart';
export 'src/request.dart';
export 'src/response.dart';
export 'src/utils.dart' hide mapToQuery;
32 changes: 25 additions & 7 deletions chopper/lib/src/annotations.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'dart:async';

import 'package:chopper/src/constants.dart';
import 'package:chopper/src/list_format.dart';
import 'package:chopper/src/request.dart';
import 'package:chopper/src/response.dart';
import 'package:meta/meta.dart';
Expand Down Expand Up @@ -190,14 +191,23 @@ sealed class Method {
/// Mark the body as optional to suppress warnings during code generation
final bool optionalBody;

/// Use brackets [ ] to when encoding
/// List format to use when encoding lists
///
/// - [ListFormat.repeat] `hxxp://path/to/script?foo=123&foo=456&foo=789` (default)
/// - [ListFormat.brackets] `hxxp://path/to/script?foo[]=123&foo[]=456&foo[]=789`
/// - [ListFormat.indices] `hxxp://path/to/script?foo[0]=123&foo[1]=456&foo[2]=789`
/// - [ListFormat.comma] `hxxp://path/to/script?foo=123,456,789`
final ListFormat? listFormat;

/// Use brackets `[ ]` to when encoding
///
/// - lists
/// hxxp://path/to/script?foo[]=123&foo[]=456&foo[]=789
/// `hxxp://path/to/script?foo[]=123&foo[]=456&foo[]=789`
///
/// - maps
/// hxxp://path/to/script?user[name]=john&user[surname]=doe&user[age]=21
final bool useBrackets;
/// `hxxp://path/to/script?user[name]=john&user[surname]=doe&user[age]=21`
@Deprecated('Use listFormat instead')
final bool? useBrackets;

/// Set to [true] to include query variables with null values. This includes nested maps.
/// The default is to exclude them.
Expand All @@ -223,16 +233,17 @@ sealed class Method {
/// ```
///
/// The above code produces hxxp://path/to/script&foo=foo_var&bar=&baz=baz_var
final bool includeNullQueryVars;
final bool? includeNullQueryVars;

/// {@macro Method}
const Method(
this.method, {
this.optionalBody = false,
this.path = '',
this.headers = const {},
this.useBrackets = false,
this.includeNullQueryVars = false,
this.listFormat,
@Deprecated('Use listFormat instead') this.useBrackets,
this.includeNullQueryVars,
});
}

Expand All @@ -247,6 +258,7 @@ final class Get extends Method {
super.optionalBody = true,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Get);
Expand All @@ -265,6 +277,7 @@ final class Post extends Method {
super.optionalBody,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Post);
Expand All @@ -281,6 +294,7 @@ final class Delete extends Method {
super.optionalBody = true,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Delete);
Expand All @@ -299,6 +313,7 @@ final class Put extends Method {
super.optionalBody,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Put);
Expand All @@ -316,6 +331,7 @@ final class Patch extends Method {
super.optionalBody,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Patch);
Expand All @@ -332,6 +348,7 @@ final class Head extends Method {
super.optionalBody = true,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Head);
Expand All @@ -348,6 +365,7 @@ final class Options extends Method {
super.optionalBody = true,
super.path,
super.headers,
super.listFormat,
super.useBrackets,
super.includeNullQueryVars,
}) : super(HttpMethod.Options);
Expand Down
29 changes: 29 additions & 0 deletions chopper/lib/src/list_format.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import 'package:qs_dart/qs_dart.dart' as qs show ListFormat;

/// An enum of all available list format options.
///
/// This is a wrapper around the [qs.ListFormat] enum.
enum ListFormat {
/// Use brackets to represent list items, for example
/// `foo[]=123&foo[]=456&foo[]=789`
brackets(qs.ListFormat.brackets),

/// Use commas to represent list items, for example
/// `foo=123,456,789`
comma(qs.ListFormat.comma),

/// Repeat the same key to represent list items, for example
/// `foo=123&foo=456&foo=789`
repeat(qs.ListFormat.repeat),

/// Use indices in brackets to represent list items, for example
/// `foo[0]=123&foo[1]=456&foo[2]=789`
indices(qs.ListFormat.indices);

const ListFormat(this.qsListFormat);

final qs.ListFormat qsListFormat;

@override
String toString() => name;

Check warning on line 28 in chopper/lib/src/list_format.dart

View check run for this annotation

Codecov / codecov/patch

chopper/lib/src/list_format.dart#L27-L28

Added lines #L27 - L28 were not covered by tests
}
30 changes: 22 additions & 8 deletions chopper/lib/src/request.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'dart:async';
import 'dart:async' show Stream;

import 'package:chopper/src/extensions.dart';
import 'package:chopper/src/list_format.dart';
import 'package:chopper/src/utils.dart';
import 'package:equatable/equatable.dart' show EquatableMixin;
import 'package:http/http.dart' as http;
Expand All @@ -17,8 +18,10 @@ base class Request extends http.BaseRequest with EquatableMixin {
final Object? tag;
final bool multipart;
final List<PartValue> parts;
final bool useBrackets;
final bool includeNullQueryVars;
final ListFormat? listFormat;
@Deprecated('Use listFormat instead')
final bool? useBrackets;
final bool? includeNullQueryVars;

/// {@macro request}
Request(
Expand All @@ -31,8 +34,9 @@ base class Request extends http.BaseRequest with EquatableMixin {
this.multipart = false,
this.parts = const [],
this.tag,
this.useBrackets = false,
this.includeNullQueryVars = false,
this.listFormat,
@Deprecated('Use listFormat instead') this.useBrackets,
this.includeNullQueryVars,
}) : assert(
!baseUri.hasQuery,
'baseUri should not contain query parameters.'
Expand All @@ -45,6 +49,8 @@ base class Request extends http.BaseRequest with EquatableMixin {
baseUri,
uri,
{...uri.queryParametersAll, ...?parameters},
listFormat: listFormat,
// ignore: deprecated_member_use_from_same_package
useBrackets: useBrackets,
includeNullQueryVars: includeNullQueryVars,
),
Expand All @@ -62,7 +68,8 @@ base class Request extends http.BaseRequest with EquatableMixin {
Map<String, String>? headers,
bool? multipart,
List<PartValue>? parts,
bool? useBrackets,
ListFormat? listFormat,
@Deprecated('Use listFormat instead') bool? useBrackets,
bool? includeNullQueryVars,
Object? tag,
}) =>
Expand All @@ -75,6 +82,8 @@ base class Request extends http.BaseRequest with EquatableMixin {
headers: headers ?? this.headers,
multipart: multipart ?? this.multipart,
parts: parts ?? this.parts,
listFormat: listFormat ?? this.listFormat,
// ignore: deprecated_member_use_from_same_package
useBrackets: useBrackets ?? this.useBrackets,
includeNullQueryVars: includeNullQueryVars ?? this.includeNullQueryVars,
tag: tag ?? this.tag,
Expand All @@ -88,8 +97,9 @@ base class Request extends http.BaseRequest with EquatableMixin {
Uri baseUrl,
Uri url,
Map<String, dynamic> parameters, {
bool useBrackets = false,
bool includeNullQueryVars = false,
ListFormat? listFormat,
@Deprecated('Use listFormat instead') bool? useBrackets,
bool? includeNullQueryVars,
}) {
// If the request's url is already a fully qualified URL, we can use it
// as-is and ignore the baseUrl.
Expand All @@ -106,6 +116,8 @@ base class Request extends http.BaseRequest with EquatableMixin {

final String query = mapToQuery(
allParameters,
listFormat: listFormat,
// ignore: deprecated_member_use_from_same_package
useBrackets: useBrackets,
includeNullQueryVars: includeNullQueryVars,
);
Expand Down Expand Up @@ -239,6 +251,8 @@ base class Request extends http.BaseRequest with EquatableMixin {
headers,
multipart,
parts,
listFormat,
// ignore: deprecated_member_use_from_same_package
useBrackets,
includeNullQueryVars,
];
Expand Down
Loading
Loading