Kate
1 year ago
committed by
GitHub
3 changed files with 361 additions and 10 deletions
@ -0,0 +1,245 @@
|
||||
// ignore_for_file: camel_case_types |
||||
// ignore_for_file: discarded_futures |
||||
// ignore_for_file: public_member_api_docs |
||||
// ignore_for_file: unreachable_switch_case |
||||
import 'dart:typed_data'; |
||||
|
||||
import 'package:built_value/serializer.dart'; |
||||
import 'package:built_value/standard_json_plugin.dart'; |
||||
import 'package:dynamite_runtime/built_value.dart'; |
||||
import 'package:dynamite_runtime/http_client.dart'; |
||||
import 'package:meta/meta.dart'; |
||||
import 'package:universal_io/io.dart'; |
||||
|
||||
class Client extends DynamiteClient { |
||||
Client( |
||||
super.baseURL, { |
||||
super.baseHeaders, |
||||
super.userAgent, |
||||
super.httpClient, |
||||
super.cookieJar, |
||||
}); |
||||
|
||||
Client.fromClient(final DynamiteClient client) |
||||
: super( |
||||
client.baseURL, |
||||
baseHeaders: client.baseHeaders, |
||||
httpClient: client.httpClient, |
||||
cookieJar: client.cookieJar, |
||||
authentications: client.authentications, |
||||
); |
||||
|
||||
/// Returns a [Future] containing a [DynamiteResponse] with the status code, deserialized body and headers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * default |
||||
/// |
||||
/// See: |
||||
/// * [$getRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. |
||||
Future<DynamiteResponse<String, void>> $get() async { |
||||
final rawResponse = $getRaw(); |
||||
|
||||
return rawResponse.future; |
||||
} |
||||
|
||||
/// This method and the response it returns is experimental. The API might change without a major version bump. |
||||
/// |
||||
/// Returns a [Future] containing a [DynamiteRawResponse] with the raw [HttpClientResponse] and serialization helpers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * default |
||||
/// |
||||
/// See: |
||||
/// * [$get] for an operation that returns a [DynamiteResponse] with a stable API. |
||||
@experimental |
||||
DynamiteRawResponse<String, void> $getRaw() { |
||||
final queryParameters = <String, dynamic>{}; |
||||
final headers = <String, String>{ |
||||
'Accept': 'application/json', |
||||
}; |
||||
Uint8List? body; |
||||
|
||||
const path = '/'; |
||||
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||
|
||||
return DynamiteRawResponse<String, void>( |
||||
response: executeRequest( |
||||
'get', |
||||
uri, |
||||
headers, |
||||
body, |
||||
null, |
||||
), |
||||
bodyType: const FullType(String), |
||||
headersType: null, |
||||
serializers: _jsonSerializers, |
||||
); |
||||
} |
||||
|
||||
/// Returns a [Future] containing a [DynamiteResponse] with the status code, deserialized body and headers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [putRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. |
||||
Future<DynamiteResponse<String, void>> put() async { |
||||
final rawResponse = putRaw(); |
||||
|
||||
return rawResponse.future; |
||||
} |
||||
|
||||
/// This method and the response it returns is experimental. The API might change without a major version bump. |
||||
/// |
||||
/// Returns a [Future] containing a [DynamiteRawResponse] with the raw [HttpClientResponse] and serialization helpers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [put] for an operation that returns a [DynamiteResponse] with a stable API. |
||||
@experimental |
||||
DynamiteRawResponse<String, void> putRaw() { |
||||
final queryParameters = <String, dynamic>{}; |
||||
final headers = <String, String>{ |
||||
'Accept': 'application/json', |
||||
}; |
||||
Uint8List? body; |
||||
|
||||
const path = '/'; |
||||
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||
|
||||
return DynamiteRawResponse<String, void>( |
||||
response: executeRequest( |
||||
'put', |
||||
uri, |
||||
headers, |
||||
body, |
||||
const {200}, |
||||
), |
||||
bodyType: const FullType(String), |
||||
headersType: null, |
||||
serializers: _jsonSerializers, |
||||
); |
||||
} |
||||
|
||||
/// Returns a [Future] containing a [DynamiteResponse] with the status code, deserialized body and headers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * default |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [postRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. |
||||
Future<DynamiteResponse<String, void>> post() async { |
||||
final rawResponse = postRaw(); |
||||
|
||||
return rawResponse.future; |
||||
} |
||||
|
||||
/// This method and the response it returns is experimental. The API might change without a major version bump. |
||||
/// |
||||
/// Returns a [Future] containing a [DynamiteRawResponse] with the raw [HttpClientResponse] and serialization helpers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * default |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [post] for an operation that returns a [DynamiteResponse] with a stable API. |
||||
@experimental |
||||
DynamiteRawResponse<String, void> postRaw() { |
||||
final queryParameters = <String, dynamic>{}; |
||||
final headers = <String, String>{ |
||||
'Accept': 'application/json', |
||||
}; |
||||
Uint8List? body; |
||||
|
||||
const path = '/'; |
||||
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||
|
||||
return DynamiteRawResponse<String, void>( |
||||
response: executeRequest( |
||||
'post', |
||||
uri, |
||||
headers, |
||||
body, |
||||
null, |
||||
), |
||||
bodyType: const FullType(String), |
||||
headersType: null, |
||||
serializers: _jsonSerializers, |
||||
); |
||||
} |
||||
|
||||
/// Returns a [Future] containing a [DynamiteResponse] with the status code, deserialized body and headers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [patchRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. |
||||
Future<DynamiteResponse<String, void>> patch() async { |
||||
final rawResponse = patchRaw(); |
||||
|
||||
return rawResponse.future; |
||||
} |
||||
|
||||
/// This method and the response it returns is experimental. The API might change without a major version bump. |
||||
/// |
||||
/// Returns a [Future] containing a [DynamiteRawResponse] with the raw [HttpClientResponse] and serialization helpers. |
||||
/// Throws a [DynamiteApiException] if the API call does not return an expected status code. |
||||
/// |
||||
/// Status codes: |
||||
/// * 200 |
||||
/// * 201 |
||||
/// |
||||
/// See: |
||||
/// * [patch] for an operation that returns a [DynamiteResponse] with a stable API. |
||||
@experimental |
||||
DynamiteRawResponse<String, void> patchRaw() { |
||||
final queryParameters = <String, dynamic>{}; |
||||
final headers = <String, String>{ |
||||
'Accept': 'application/json', |
||||
}; |
||||
Uint8List? body; |
||||
|
||||
const path = '/'; |
||||
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||
|
||||
return DynamiteRawResponse<String, void>( |
||||
response: executeRequest( |
||||
'patch', |
||||
uri, |
||||
headers, |
||||
body, |
||||
const {200, 201}, |
||||
), |
||||
bodyType: const FullType(String), |
||||
headersType: null, |
||||
serializers: _jsonSerializers, |
||||
); |
||||
} |
||||
} |
||||
|
||||
// coverage:ignore-start |
||||
final Serializers _serializers = Serializers().toBuilder().build(); |
||||
|
||||
final Serializers _jsonSerializers = (_serializers.toBuilder() |
||||
..add(DynamiteDoubleSerializer()) |
||||
..addPlugin(StandardJsonPlugin()) |
||||
..addPlugin(const ContentStringPlugin())) |
||||
.build(); |
||||
// coverage:ignore-end |
@ -0,0 +1,108 @@
|
||||
{ |
||||
"openapi": "3.1.0", |
||||
"info": { |
||||
"title": "responses test", |
||||
"version": "0.0.1" |
||||
}, |
||||
"paths": { |
||||
"/": { |
||||
"get": { |
||||
"responses": { |
||||
"default": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"post": { |
||||
"responses": { |
||||
"default": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"200": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"201": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"put": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"201": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "integer" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"patch": { |
||||
"responses": { |
||||
"200": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"201": { |
||||
"description": "", |
||||
"content": { |
||||
"application/json": { |
||||
"schema": { |
||||
"type": "string" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
"tags": [] |
||||
} |
Loading…
Reference in new issue