mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
Update previewer error messages
This commit is contained in:
@ -502,38 +502,15 @@ const kResponseCodeReasons = {
|
|||||||
511: 'Network Authentication Required',
|
511: 'Network Authentication Required',
|
||||||
};
|
};
|
||||||
|
|
||||||
const kMimeTypeRawRaiseIssueStart =
|
|
||||||
"Please click on 'Raw' to view the unformatted raw results as the response preview for Content-Type ";
|
|
||||||
|
|
||||||
const kMimeTypeRaiseIssueStart = "Response preview for Content-Type ";
|
|
||||||
|
|
||||||
const kMimeTypeRaiseIssue =
|
const kMimeTypeRaiseIssue =
|
||||||
" is currently not supported.\nPlease raise an issue in API Dash GitHub repo so that we can add a Previewer for this content-type.";
|
"{% if showRaw %}Please click on 'Raw' to view the unformatted raw results as we{% else %}We{% endif %} encountered an error rendering this {% if showContentType %}Content-Type {% endif %}{{type}}.\nPlease raise an issue in API Dash GitHub repo so that we can look into this issue.";
|
||||||
|
|
||||||
const kUnexpectedRaiseIssue =
|
const kUnexpectedRaiseIssue =
|
||||||
"\nIf the behaviour is unexpected, please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
"\nIf the behaviour is unexpected, please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||||
|
|
||||||
const kVideoError =
|
|
||||||
"There seems to be an issue playing this video. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kImageError =
|
|
||||||
"There seems to be an issue rendering this image. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kSvgError =
|
|
||||||
"There seems to be an issue rendering this SVG image. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kPdfError =
|
|
||||||
"There seems to be an issue rendering this pdf. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kAudioError =
|
|
||||||
"There seems to be an issue playing this audio. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kRaiseIssue =
|
const kRaiseIssue =
|
||||||
"\nPlease raise an issue in API Dash GitHub repo so that we can resolve it.";
|
"\nPlease raise an issue in API Dash GitHub repo so that we can resolve it.";
|
||||||
|
|
||||||
const kCsvError =
|
|
||||||
"There seems to be an issue rendering this CSV. Please raise an issue in API Dash GitHub repo so that we can resolve it.";
|
|
||||||
|
|
||||||
const kHintTextUrlCard = "Enter API endpoint like https://$kDefaultUri/";
|
const kHintTextUrlCard = "Enter API endpoint like https://$kDefaultUri/";
|
||||||
const kLabelPlusNew = "+ New";
|
const kLabelPlusNew = "+ New";
|
||||||
const kLabelSend = "Send";
|
const kLabelSend = "Send";
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:csv/csv.dart';
|
import 'package:csv/csv.dart';
|
||||||
import 'error_message.dart';
|
|
||||||
import '../consts.dart';
|
|
||||||
|
|
||||||
class CsvPreviewer extends StatelessWidget {
|
class CsvPreviewer extends StatelessWidget {
|
||||||
const CsvPreviewer({super.key, required this.body});
|
const CsvPreviewer({
|
||||||
|
super.key,
|
||||||
|
required this.body,
|
||||||
|
required this.errorWidget,
|
||||||
|
});
|
||||||
|
|
||||||
final String body;
|
final String body;
|
||||||
|
final Widget errorWidget;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
@ -47,7 +50,7 @@ class CsvPreviewer extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return const ErrorMessage(message: kCsvError);
|
return errorWidget;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:jinja/jinja.dart' as jj;
|
||||||
import 'package:printing/printing.dart';
|
import 'package:printing/printing.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:vector_graphics_compiler/vector_graphics_compiler.dart';
|
import 'package:vector_graphics_compiler/vector_graphics_compiler.dart';
|
||||||
@ -34,6 +35,7 @@ class Previewer extends StatefulWidget {
|
|||||||
class _PreviewerState extends State<Previewer> {
|
class _PreviewerState extends State<Previewer> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
var errorTemplate = jj.Template(kMimeTypeRaiseIssue);
|
||||||
if (widget.type == kTypeApplication && widget.subtype == kSubTypeJson) {
|
if (widget.type == kTypeApplication && widget.subtype == kSubTypeJson) {
|
||||||
try {
|
try {
|
||||||
var preview = JsonPreviewer(
|
var preview = JsonPreviewer(
|
||||||
@ -53,14 +55,26 @@ class _PreviewerState extends State<Previewer> {
|
|||||||
);
|
);
|
||||||
return svgImg;
|
return svgImg;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return const ErrorMessage(message: kSvgError);
|
return ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": true,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": "svg",
|
||||||
|
}),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (widget.type == kTypeImage) {
|
if (widget.type == kTypeImage) {
|
||||||
return Image.memory(
|
return Image.memory(
|
||||||
widget.bytes,
|
widget.bytes,
|
||||||
errorBuilder: (context, _, stackTrace) {
|
errorBuilder: (context, _, stackTrace) {
|
||||||
return const ErrorMessage(message: kImageError);
|
return ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": false,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": kTypeImage,
|
||||||
|
}),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -69,7 +83,13 @@ class _PreviewerState extends State<Previewer> {
|
|||||||
build: (_) => widget.bytes,
|
build: (_) => widget.bytes,
|
||||||
useActions: false,
|
useActions: false,
|
||||||
onError: (context, error) {
|
onError: (context, error) {
|
||||||
return const ErrorMessage(message: kPdfError);
|
return ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": false,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": kSubTypePdf,
|
||||||
|
}),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -79,24 +99,49 @@ class _PreviewerState extends State<Previewer> {
|
|||||||
type: widget.type!,
|
type: widget.type!,
|
||||||
subtype: widget.subtype!,
|
subtype: widget.subtype!,
|
||||||
errorBuilder: (context, error, stacktrace) {
|
errorBuilder: (context, error, stacktrace) {
|
||||||
return const ErrorMessage(message: kAudioError);
|
return ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": false,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": kTypeAudio,
|
||||||
|
}),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (widget.type == kTypeText && widget.subtype == kSubTypeCsv) {
|
if (widget.type == kTypeText && widget.subtype == kSubTypeCsv) {
|
||||||
return CsvPreviewer(body: widget.body);
|
return CsvPreviewer(
|
||||||
|
body: widget.body,
|
||||||
|
errorWidget: ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": false,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": kSubTypeCsv,
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if (widget.type == kTypeVideo) {
|
if (widget.type == kTypeVideo) {
|
||||||
try {
|
try {
|
||||||
var preview = VideoPreviewer(videoBytes: widget.bytes);
|
var preview = VideoPreviewer(videoBytes: widget.bytes);
|
||||||
return preview;
|
return preview;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return const ErrorMessage(message: kVideoError);
|
return ErrorMessage(
|
||||||
|
message: errorTemplate.render({
|
||||||
|
"showRaw": false,
|
||||||
|
"showContentType": false,
|
||||||
|
"type": kTypeVideo,
|
||||||
|
}),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String message = widget.hasRaw
|
var errorText = errorTemplate.render({
|
||||||
? "$kMimeTypeRawRaiseIssueStart${widget.type}/${widget.subtype}$kMimeTypeRaiseIssue"
|
"showRaw": widget.hasRaw,
|
||||||
: "$kMimeTypeRaiseIssueStart${widget.type}/${widget.subtype}$kMimeTypeRaiseIssue";
|
"showContentType": true,
|
||||||
return ErrorMessage(message: message);
|
"type": "${widget.type}/${widget.subtype}",
|
||||||
|
});
|
||||||
|
return ErrorMessage(
|
||||||
|
message: errorText,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user