update Access Controlls nav
This commit is contained in:
@@ -1,11 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_service_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_access_controls_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_button.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_error_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_success_message.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_warning_message.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
||||||
@@ -47,18 +48,6 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void successPopUp(String message) {
|
|
||||||
showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return MIHSuccessMessage(
|
|
||||||
successType: "Success",
|
|
||||||
successMessage: message,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void accessCancelledWarning() {
|
void accessCancelledWarning() {
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
@@ -352,9 +341,10 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
spacing: 10,
|
spacing: 10,
|
||||||
children: [
|
children: [
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
print("request declined");
|
print("request declined");
|
||||||
MIHApiCalls.updatePatientAccessAPICall(
|
int statusCode = await MihAccessControlsServices()
|
||||||
|
.updatePatientAccessAPICall(
|
||||||
widget.patientAccessList[index].business_id,
|
widget.patientAccessList[index].business_id,
|
||||||
widget.patientAccessList[index].requested_by,
|
widget.patientAccessList[index].requested_by,
|
||||||
widget.patientAccessList[index].app_id,
|
widget.patientAccessList[index].app_id,
|
||||||
@@ -363,6 +353,12 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
widget.signedInUser,
|
widget.signedInUser,
|
||||||
context,
|
context,
|
||||||
);
|
);
|
||||||
|
if (statusCode == 200) {
|
||||||
|
successPopUp("Successfully Actioned Request",
|
||||||
|
"You have successfully Declined access request");
|
||||||
|
} else {
|
||||||
|
internetConnectionPopUp();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getRedColor(
|
buttonColor: MihColors.getRedColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
@@ -380,9 +376,10 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
MihButton(
|
MihButton(
|
||||||
onPressed: () {
|
onPressed: () async {
|
||||||
print("request approved");
|
print("request approved");
|
||||||
MIHApiCalls.updatePatientAccessAPICall(
|
int statusCode = await MihAccessControlsServices()
|
||||||
|
.updatePatientAccessAPICall(
|
||||||
widget.patientAccessList[index].business_id,
|
widget.patientAccessList[index].business_id,
|
||||||
widget.patientAccessList[index].requested_by,
|
widget.patientAccessList[index].requested_by,
|
||||||
widget.patientAccessList[index].app_id,
|
widget.patientAccessList[index].app_id,
|
||||||
@@ -391,6 +388,12 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
widget.signedInUser,
|
widget.signedInUser,
|
||||||
context,
|
context,
|
||||||
);
|
);
|
||||||
|
if (statusCode == 200) {
|
||||||
|
successPopUp("Successfully Actioned Request",
|
||||||
|
"You have successfully Accepted access request");
|
||||||
|
} else {
|
||||||
|
internetConnectionPopUp();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
buttonColor: MihColors.getGreenColor(
|
buttonColor: MihColors.getGreenColor(
|
||||||
MzansiInnovationHub.of(context)!.theme.mode ==
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
@@ -421,6 +424,64 @@ class _BuildPatientsListState extends State<BuildBusinessAccessList> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void successPopUp(String title, String message) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return MihPackageAlert(
|
||||||
|
alertIcon: Icon(
|
||||||
|
Icons.check_circle_outline_rounded,
|
||||||
|
size: 150,
|
||||||
|
color: MihColors.getGreenColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
|
),
|
||||||
|
alertTitle: title,
|
||||||
|
alertBody: Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
message,
|
||||||
|
style: TextStyle(
|
||||||
|
color: MihColors.getSecondaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
|
fontSize: 15,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 25),
|
||||||
|
Center(
|
||||||
|
child: MihButton(
|
||||||
|
onPressed: () {
|
||||||
|
context.pop();
|
||||||
|
context.goNamed(
|
||||||
|
"mihAccess",
|
||||||
|
extra: widget.signedInUser,
|
||||||
|
);
|
||||||
|
},
|
||||||
|
buttonColor: MihColors.getGreenColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
|
elevation: 10,
|
||||||
|
width: 300,
|
||||||
|
child: Text(
|
||||||
|
"Dismiss",
|
||||||
|
style: TextStyle(
|
||||||
|
color: MihColors.getPrimaryColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode ==
|
||||||
|
"Dark"),
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
alertColour: MihColors.getGreenColor(
|
||||||
|
MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
super.dispose();
|
super.dispose();
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import 'package:go_router/go_router.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart';
|
||||||
@@ -40,7 +42,13 @@ class _MihAccessState extends State<MihAccess> {
|
|||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
iconSize: 35,
|
iconSize: 35,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pop();
|
context.goNamed(
|
||||||
|
'mihHome',
|
||||||
|
extra: AuthArguments(
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
);
|
||||||
FocusScope.of(context).unfocus();
|
FocusScope.of(context).unfocus();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tile.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart';
|
||||||
@@ -24,10 +25,14 @@ class _MihAccessTileState extends State<MihAccessTile> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return MihPackageTile(
|
return MihPackageTile(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
Navigator.of(context).pushNamed(
|
context.goNamed(
|
||||||
'/mih-access',
|
"mihAccess",
|
||||||
arguments: widget.signedInUser,
|
extra: widget.signedInUser,
|
||||||
);
|
);
|
||||||
|
// Navigator.of(context).pushNamed(
|
||||||
|
// '/mih-access',
|
||||||
|
// arguments: widget.signedInUser,
|
||||||
|
// );
|
||||||
},
|
},
|
||||||
appName: "Access Controls",
|
appName: "Access Controls",
|
||||||
appIcon: Icon(
|
appIcon: Icon(
|
||||||
|
|||||||
79
Frontend/lib/mih_services/mih_access_controls_services.dart
Normal file
79
Frontend/lib/mih_services/mih_access_controls_services.dart
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
import 'dart:convert';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/app_user.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
|
||||||
|
import 'package:supertokens_flutter/http.dart' as http;
|
||||||
|
|
||||||
|
class MihAccessControlsServices {
|
||||||
|
/// This function is used to UPDATE access the business has.
|
||||||
|
///
|
||||||
|
/// Patameters:-
|
||||||
|
/// String business_id,
|
||||||
|
/// String business_name,
|
||||||
|
/// String app_id,
|
||||||
|
/// String status,
|
||||||
|
/// String approved_by,
|
||||||
|
/// AppUser signedInUser,
|
||||||
|
/// BuildContext context,
|
||||||
|
///
|
||||||
|
/// Returns void (on success 200 navigate to /mih-access ).
|
||||||
|
Future<int> updatePatientAccessAPICall(
|
||||||
|
String business_id,
|
||||||
|
String business_name,
|
||||||
|
String app_id,
|
||||||
|
String status,
|
||||||
|
String approved_by,
|
||||||
|
AppUser signedInUser,
|
||||||
|
BuildContext context,
|
||||||
|
) async {
|
||||||
|
loadingPopUp(context);
|
||||||
|
var response = await http.put(
|
||||||
|
Uri.parse(
|
||||||
|
"${AppEnviroment.baseApiUrl}/access-requests/update/permission/"),
|
||||||
|
headers: <String, String>{
|
||||||
|
"Content-Type": "application/json; charset=UTF-8"
|
||||||
|
},
|
||||||
|
// business_id: str
|
||||||
|
// app_id: str
|
||||||
|
// status: str
|
||||||
|
// approved_by: str
|
||||||
|
body: jsonEncode(<String, dynamic>{
|
||||||
|
"business_id": business_id,
|
||||||
|
"app_id": app_id,
|
||||||
|
"status": status,
|
||||||
|
"approved_by": approved_by,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
return response.statusCode;
|
||||||
|
// if (response.statusCode == 200) {
|
||||||
|
// //Navigator.of(context).pushNamed('/home');
|
||||||
|
// Navigator.of(context).pop();
|
||||||
|
// Navigator.of(context).pop();
|
||||||
|
// Navigator.of(context).pushNamed(
|
||||||
|
// '/mih-access',
|
||||||
|
// arguments: signedInUser,
|
||||||
|
// );
|
||||||
|
// String message = "";
|
||||||
|
// if (status == "approved") {
|
||||||
|
// message =
|
||||||
|
// "You've successfully approved the access request! $business_name now has access to your profile forever.";
|
||||||
|
// } else {
|
||||||
|
// message =
|
||||||
|
// "You've declined the access request. $business_name will not have access to your profile.";
|
||||||
|
// }
|
||||||
|
// successPopUp(message, context);
|
||||||
|
// } else {
|
||||||
|
// internetConnectionPopUp(context);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
static void loadingPopUp(BuildContext context) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return const Mihloadingcircle();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user