feat: ability to override content type

This commit is contained in:
APPALA REDDI
2023-12-30 12:35:10 +05:30
parent 3423eb7d8f
commit e0fe907d19
4 changed files with 36 additions and 1 deletions

View File

@ -305,6 +305,8 @@ const kTypeVideo = 'video';
const kSubTypeDefaultViewOptions = 'all';
const kContentType = 'Content-Type';
const kContentTypeMap = {
ContentType.json: "$kTypeApplication/$kSubTypeJson",
ContentType.text: "$kTypeText/$kSubTypePlain",

View File

@ -1,4 +1,5 @@
import 'dart:math';
import 'package:apidash/utils/header_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:davi/davi.dart';
@ -78,6 +79,23 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
grow: 1,
cellBuilder: (_, row) {
int idx = row.index;
if (row.data.name == kContentType) {
return HeaderField(
keyId: "$activeId-$idx-headers-v-$seed",
initialValue: rows[idx].value,
hintText: " Add Header Value",
onChanged: (value) {
rows[idx] = rows[idx].copyWith(value: value);
_onFieldChange(activeId!);
},
headerSuggestionsCallback: (pattern) {
return getHeaderValueSuggestions(pattern);
},
colorScheme: Theme.of(context).colorScheme,
);
}
return CellField(
keyId: "$activeId-$idx-headers-v-$seed",
initialValue: rows[idx].value,

View File

@ -15,6 +15,7 @@ Map<String, String> headers = {
"Indicates the encoding transformations that have been applied to the entity body of the response.",
"Content-Security-Policy":
"Controls the sources from which content can be loaded on a web page to mitigate various types of attacks.",
"Content-Type": "Indicates the original media type of the resource (prior to any content encoding applied for sending)",
"Cookie": "Used to send previously stored cookies back to the server.",
"Cross-Origin-Embedder-Policy":
"Controls whether a document is allowed to be embedded in another document.",
@ -70,3 +71,13 @@ List<String> getHeaderSuggestions(String pattern) {
)
.toList();
}
List<String> headerValues = ['application/json', 'text/plain'];
List<String> getHeaderValueSuggestions(String pattern) {
return headerValues
.where(
(element) => element.contains(pattern.toLowerCase()),
)
.toList();
}

View File

@ -1,3 +1,5 @@
import 'dart:async';
import 'package:apidash/utils/header_utils.dart';
import 'package:flutter/material.dart';
import 'package:apidash/consts.dart';
@ -10,12 +12,14 @@ class HeaderField extends StatefulWidget {
this.hintText,
this.initialValue,
this.onChanged,
this.headerSuggestionsCallback,
this.colorScheme,
});
final String keyId;
final String? hintText;
final String? initialValue;
final void Function(String)? onChanged;
final FutureOr<Iterable<String>> Function(String)? headerSuggestionsCallback;
final ColorScheme? colorScheme;
@override
@ -67,7 +71,7 @@ class _HeaderFieldState extends State<HeaderField> {
title: Text(suggestion),
);
},
suggestionsCallback: headerSuggestionCallback,
suggestionsCallback: widget.headerSuggestionsCallback ?? headerSuggestionCallback,
suggestionsBoxDecoration: suggestionBoxDecorations(context),
textFieldConfiguration: TextFieldConfiguration(
onChanged: widget.onChanged,