Kate
1 year ago
committed by
GitHub
3 changed files with 200 additions and 1 deletions
@ -0,0 +1,148 @@ |
|||||||
|
// 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:convert'; |
||||||
|
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<void, void>> $get({final Uint8List? uint8List}) async { |
||||||
|
final rawResponse = $getRaw( |
||||||
|
uint8List: uint8List, |
||||||
|
); |
||||||
|
|
||||||
|
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<void, void> $getRaw({final Uint8List? uint8List}) { |
||||||
|
final queryParameters = <String, dynamic>{}; |
||||||
|
final headers = <String, String>{}; |
||||||
|
Uint8List? body; |
||||||
|
|
||||||
|
headers['Content-Type'] = 'application/octet-stream'; |
||||||
|
if (uint8List != null) { |
||||||
|
body = uint8List; |
||||||
|
} |
||||||
|
const path = '/'; |
||||||
|
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||||
|
|
||||||
|
return DynamiteRawResponse<void, void>( |
||||||
|
response: executeRequest( |
||||||
|
'get', |
||||||
|
uri, |
||||||
|
headers, |
||||||
|
body, |
||||||
|
null, |
||||||
|
), |
||||||
|
bodyType: null, |
||||||
|
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 |
||||||
|
/// |
||||||
|
/// See: |
||||||
|
/// * [postRaw] for an experimental operation that returns a [DynamiteRawResponse] that can be serialized. |
||||||
|
Future<DynamiteResponse<void, void>> post({final String? string}) async { |
||||||
|
final rawResponse = postRaw( |
||||||
|
string: string, |
||||||
|
); |
||||||
|
|
||||||
|
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: |
||||||
|
/// * [post] for an operation that returns a [DynamiteResponse] with a stable API. |
||||||
|
@experimental |
||||||
|
DynamiteRawResponse<void, void> postRaw({final String? string}) { |
||||||
|
final queryParameters = <String, dynamic>{}; |
||||||
|
final headers = <String, String>{}; |
||||||
|
Uint8List? body; |
||||||
|
|
||||||
|
headers['Content-Type'] = 'application/octet-stream'; |
||||||
|
if (string != null) { |
||||||
|
body = utf8.encode(string) as Uint8List; |
||||||
|
} |
||||||
|
const path = '/'; |
||||||
|
final uri = Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null); |
||||||
|
|
||||||
|
return DynamiteRawResponse<void, void>( |
||||||
|
response: executeRequest( |
||||||
|
'post', |
||||||
|
uri, |
||||||
|
headers, |
||||||
|
body, |
||||||
|
null, |
||||||
|
), |
||||||
|
bodyType: null, |
||||||
|
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,44 @@ |
|||||||
|
{ |
||||||
|
"openapi": "3.1.0", |
||||||
|
"info": { |
||||||
|
"title": "request body test", |
||||||
|
"version": "0.0.1" |
||||||
|
}, |
||||||
|
"paths": { |
||||||
|
"/": { |
||||||
|
"get": { |
||||||
|
"requestBody": { |
||||||
|
"content": { |
||||||
|
"application/octet-stream": { |
||||||
|
"schema": { |
||||||
|
"type": "string", |
||||||
|
"format": "binary" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"responses": { |
||||||
|
"default": { |
||||||
|
"description": "" |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"post": { |
||||||
|
"requestBody": { |
||||||
|
"content": { |
||||||
|
"application/octet-stream": { |
||||||
|
"schema": { |
||||||
|
"type": "string" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"responses": { |
||||||
|
"default": { |
||||||
|
"description": "" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue