Skip to content

Commit 76736b2

Browse files
committed
feat(dart-dio): add methods to remove auth tokens in api client
There is currently no way to easily remove a previously set auth token. Adding these methods will provide a convenient way to 'revoke' tokens. Design-Choice: Adding those new methods is a better alternative as just making the values of existing methods nullable, as e.g. #setBasicAuth(String, String, String) has two value parameters, which then would have to be checked for nullability and special handling would be required if only one value is null. This would result in a less clear API. By adding new methods following the naming #removeXY(String) no ambiguity is added and a clear API is kept.
1 parent 0659b25 commit 76736b2

8 files changed

Lines changed: 192 additions & 0 deletions

File tree

  • modules/openapi-generator/src/main/resources/dart/libraries/dio
  • samples/openapi3/client/petstore/dart-dio

modules/openapi-generator/src/main/resources/dart/libraries/dio/api_client.mustache

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,46 @@ class {{clientName}} {
4646
}
4747
}
4848

49+
void removeOAuthToken(String name) {
50+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
51+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
52+
}
53+
}
54+
4955
void setBearerAuth(String name, String token) {
5056
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5157
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5258
}
5359
}
5460

61+
void removeBearerAuth(String name) {
62+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
63+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
64+
}
65+
}
66+
5567
void setBasicAuth(String name, String username, String password) {
5668
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5769
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
5870
}
5971
}
6072

73+
void removeBasicAuth(String name) {
74+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
75+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
76+
}
77+
}
78+
6179
void setApiKey(String name, String apiKey) {
6280
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6381
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6482
}
83+
}
84+
85+
void removeApiKey(String name) {
86+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
87+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
88+
}
6589
}{{#apiInfo}}{{#apis}}
6690

6791
/// Get {{classname}} instance, base route and serializer can be overridden by a given but be careful,

samples/openapi3/client/petstore/dart-dio/binary_response/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,48 @@ class Openapi {
4242
}
4343
}
4444

45+
void removeOAuthToken(String name) {
46+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
47+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
48+
}
49+
}
50+
4551
void setBearerAuth(String name, String token) {
4652
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
4753
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
4854
}
4955
}
5056

57+
void removeBearerAuth(String name) {
58+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
59+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
60+
}
61+
}
62+
5163
void setBasicAuth(String name, String username, String password) {
5264
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5365
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
5466
}
5567
}
5668

69+
void removeBasicAuth(String name) {
70+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
71+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
72+
}
73+
}
74+
5775
void setApiKey(String name, String apiKey) {
5876
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
5977
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6078
}
6179
}
6280

81+
void removeApiKey(String name) {
82+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
83+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
84+
}
85+
}
86+
6387
/// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
6488
/// by doing that all interceptors will not be executed
6589
DefaultApi getDefaultApi() {

samples/openapi3/client/petstore/dart-dio/oneof/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,48 @@ class Openapi {
4747
}
4848
}
4949

50+
void removeOAuthToken(String name) {
51+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
52+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
53+
}
54+
}
55+
5056
void setBearerAuth(String name, String token) {
5157
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5258
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5359
}
5460
}
5561

62+
void removeBearerAuth(String name) {
63+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
64+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
65+
}
66+
}
67+
5668
void setBasicAuth(String name, String username, String password) {
5769
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5870
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
5971
}
6072
}
6173

74+
void removeBasicAuth(String name) {
75+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
76+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
77+
}
78+
}
79+
6280
void setApiKey(String name, String apiKey) {
6381
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6482
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6583
}
6684
}
6785

86+
void removeApiKey(String name) {
87+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
88+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
89+
}
90+
}
91+
6892
/// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
6993
/// by doing that all interceptors will not be executed
7094
DefaultApi getDefaultApi() {

samples/openapi3/client/petstore/dart-dio/oneof_polymorphism_and_inheritance/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,48 @@ class Openapi {
4848
}
4949
}
5050

51+
void removeOAuthToken(String name) {
52+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
53+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
54+
}
55+
}
56+
5157
void setBearerAuth(String name, String token) {
5258
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5359
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5460
}
5561
}
5662

63+
void removeBearerAuth(String name) {
64+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
65+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
66+
}
67+
}
68+
5769
void setBasicAuth(String name, String username, String password) {
5870
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5971
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
6072
}
6173
}
6274

75+
void removeBasicAuth(String name) {
76+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
77+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
78+
}
79+
}
80+
6381
void setApiKey(String name, String apiKey) {
6482
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6583
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6684
}
6785
}
6886

87+
void removeApiKey(String name) {
88+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
89+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
90+
}
91+
}
92+
6993
/// Get BarApi instance, base route and serializer can be overridden by a given but be careful,
7094
/// by doing that all interceptors will not be executed
7195
BarApi getBarApi() {

samples/openapi3/client/petstore/dart-dio/oneof_primitive/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,48 @@ class Openapi {
4747
}
4848
}
4949

50+
void removeOAuthToken(String name) {
51+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
52+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
53+
}
54+
}
55+
5056
void setBearerAuth(String name, String token) {
5157
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5258
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5359
}
5460
}
5561

62+
void removeBearerAuth(String name) {
63+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
64+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
65+
}
66+
}
67+
5668
void setBasicAuth(String name, String username, String password) {
5769
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5870
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
5971
}
6072
}
6173

74+
void removeBasicAuth(String name) {
75+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
76+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
77+
}
78+
}
79+
6280
void setApiKey(String name, String apiKey) {
6381
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6482
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6583
}
6684
}
6785

86+
void removeApiKey(String name) {
87+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
88+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
89+
}
90+
}
91+
6892
/// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
6993
/// by doing that all interceptors will not be executed
7094
DefaultApi getDefaultApi() {

samples/openapi3/client/petstore/dart-dio/petstore-timemachine/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,24 +49,48 @@ class Openapi {
4949
}
5050
}
5151

52+
void removeOAuthToken(String name) {
53+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
54+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
55+
}
56+
}
57+
5258
void setBearerAuth(String name, String token) {
5359
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5460
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5561
}
5662
}
5763

64+
void removeBearerAuth(String name) {
65+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
66+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
67+
}
68+
}
69+
5870
void setBasicAuth(String name, String username, String password) {
5971
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
6072
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
6173
}
6274
}
6375

76+
void removeBasicAuth(String name) {
77+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
78+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
79+
}
80+
}
81+
6482
void setApiKey(String name, String apiKey) {
6583
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6684
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6785
}
6886
}
6987

88+
void removeApiKey(String name) {
89+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
90+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
91+
}
92+
}
93+
7094
/// Get PetApi instance, base route and serializer can be overridden by a given but be careful,
7195
/// by doing that all interceptors will not be executed
7296
PetApi getPetApi() {

samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,48 @@ class Openapi {
4848
}
4949
}
5050

51+
void removeOAuthToken(String name) {
52+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
53+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
54+
}
55+
}
56+
5157
void setBearerAuth(String name, String token) {
5258
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5359
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5460
}
5561
}
5662

63+
void removeBearerAuth(String name) {
64+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
65+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
66+
}
67+
}
68+
5769
void setBasicAuth(String name, String username, String password) {
5870
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
5971
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
6072
}
6173
}
6274

75+
void removeBasicAuth(String name) {
76+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
77+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
78+
}
79+
}
80+
6381
void setApiKey(String name, String apiKey) {
6482
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
6583
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
6684
}
6785
}
6886

87+
void removeApiKey(String name) {
88+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
89+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
90+
}
91+
}
92+
6993
/// Get AnotherFakeApi instance, base route and serializer can be overridden by a given but be careful,
7094
/// by doing that all interceptors will not be executed
7195
AnotherFakeApi getAnotherFakeApi() {

samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/api.dart

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,24 +53,48 @@ class Openapi {
5353
}
5454
}
5555

56+
void removeOAuthToken(String name) {
57+
if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
58+
(this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens.remove(name);
59+
}
60+
}
61+
5662
void setBearerAuth(String name, String token) {
5763
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
5864
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
5965
}
6066
}
6167

68+
void removeBearerAuth(String name) {
69+
if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
70+
(this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens.remove(name);
71+
}
72+
}
73+
6274
void setBasicAuth(String name, String username, String password) {
6375
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
6476
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
6577
}
6678
}
6779

80+
void removeBasicAuth(String name) {
81+
if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
82+
(this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo.remove(name);
83+
}
84+
}
85+
6886
void setApiKey(String name, String apiKey) {
6987
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
7088
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
7189
}
7290
}
7391

92+
void removeApiKey(String name) {
93+
if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
94+
(this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys.remove(name);
95+
}
96+
}
97+
7498
/// Get AnotherFakeApi instance, base route and serializer can be overridden by a given but be careful,
7599
/// by doing that all interceptors will not be executed
76100
AnotherFakeApi getAnotherFakeApi() {

0 commit comments

Comments
 (0)