Users can now choose whether or not to save response results

This commit is contained in:
Ankit Mahato
2023-05-04 12:49:34 +05:30
parent 464e6e8c20
commit 26207a9fc7
3 changed files with 12 additions and 7 deletions

View File

@ -139,7 +139,7 @@ class RequestModel {
); );
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson({bool includeResponse = true}) {
return { return {
"id": id, "id": id,
"method": method.name, "method": method.name,
@ -150,9 +150,9 @@ class RequestModel {
"requestParams": rowsToMap(requestParams), "requestParams": rowsToMap(requestParams),
"requestBodyContentType": requestBodyContentType.name, "requestBodyContentType": requestBodyContentType.name,
"requestBody": requestBody, "requestBody": requestBody,
"responseStatus": responseStatus, "responseStatus": includeResponse ? responseStatus : null,
"message": message, "message": includeResponse ? message : null,
"responseModel": responseModel?.toJson(), "responseModel": includeResponse ? responseModel?.toJson() : null,
}; };
} }

View File

@ -188,10 +188,15 @@ class CollectionStateNotifier extends StateNotifier<List<RequestModel>?> {
} }
Future<void> saveData() async { Future<void> saveData() async {
final saveResponse =
ref.read(settingsProvider.select((value) => value.saveResponses));
final ids = getIds(); final ids = getIds();
await hiveHandler.setIds(ids); await hiveHandler.setIds(ids);
for (var e in state!) { for (var e in state!) {
await hiveHandler.setRequestModel(e.id, e.toJson()); await hiveHandler.setRequestModel(
e.id,
e.toJson(includeResponse: saveResponse),
);
} }
await hiveHandler.removeUnused(); await hiveHandler.removeUnused();
} }

View File

@ -64,8 +64,8 @@ class _SettingsPageState extends ConsumerState<SettingsPage> {
CheckboxListTile( CheckboxListTile(
contentPadding: EdgeInsets.zero, contentPadding: EdgeInsets.zero,
title: const Text("Save Responses"), title: const Text("Save Responses"),
subtitle: const Text( subtitle:
"Saves disk space & clears all previous responses on App start"), const Text("Save disk space by not storing API responses"),
value: settings.saveResponses, value: settings.saveResponses,
onChanged: (value) { onChanged: (value) {
ref ref