Merge pull request #236 from yaso-meth/NEW--sql-alchemy-integration
NEW--sql-alchemy-integration
This commit is contained in:
@@ -25,9 +25,9 @@ class _MzansiInnovationHubState extends State<MzansiInnovationHub> {
|
|||||||
|
|
||||||
String getTitle() {
|
String getTitle() {
|
||||||
if (AppEnviroment.getEnv() == "Dev") {
|
if (AppEnviroment.getEnv() == "Dev") {
|
||||||
return "Mzansi Innovation Hub - Dev";
|
return "Dev | MIH App: Mzansi Innovation Hub";
|
||||||
} else {
|
} else {
|
||||||
return "Mzansi Innovation Hub";
|
return "MIH App: Mzansi Innovation Hub";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ class _MihBusinessProfilePreviewState extends State<MihBusinessProfilePreview> {
|
|||||||
return Icon(
|
return Icon(
|
||||||
MihIcons.mihRing,
|
MihIcons.mihRing,
|
||||||
size: profilePictureWidth,
|
size: profilePictureWidth,
|
||||||
|
color:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|||||||
74
Frontend/lib/mih_config/mih_colors.dart
Normal file
74
Frontend/lib/mih_config/mih_colors.dart
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
|
|
||||||
|
class MihColors {
|
||||||
|
|
||||||
|
static Color getPrimaryColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0XFF3A4454);
|
||||||
|
}else{
|
||||||
|
return const Color(0XFFbedcfe);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getSecondaryColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0XFFbedcfe);
|
||||||
|
}else{
|
||||||
|
return const Color(0XFF3A4454);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getGreenColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xff8ae290);
|
||||||
|
}else{
|
||||||
|
return const Color(0xffB0F2B4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getRedColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xffD87E8B);
|
||||||
|
}else{
|
||||||
|
return const Color(0xffbb3d4f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getPinkColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xffdaa2e9);
|
||||||
|
}else{
|
||||||
|
// Add a different shade of pink for light mode
|
||||||
|
return const Color(0xffdaa2e9);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getOrangeColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xffd69d7d);
|
||||||
|
}else{
|
||||||
|
// Add a different shade of pink for light mode
|
||||||
|
return const Color(0xffd69d7d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getYellowColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xfff4e467);
|
||||||
|
}else{
|
||||||
|
// Add a different shade of pink for light mode
|
||||||
|
return const Color(0xffd4af37);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static Color getBluishPurpleColor(BuildContext context) {
|
||||||
|
if(MzansiInnovationHub.of(context)!.theme.mode == "Dark"){
|
||||||
|
return const Color(0xff6e7dcc);
|
||||||
|
}else{
|
||||||
|
// Add a different shade of pink for light mode
|
||||||
|
return const Color(0xff6e7dcc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import 'package:flutter/services.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_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_form.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_form.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
||||||
@@ -155,8 +156,21 @@ class _MihRegisterState extends State<MihRegister> {
|
|||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return AlertDialog(
|
return MihPackageAlert(
|
||||||
title: Text(error),
|
alertIcon: Icon(
|
||||||
|
Icons.warning_amber_rounded,
|
||||||
|
color: MzansiInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
size: 100,
|
||||||
|
),
|
||||||
|
alertTitle: "Error While Signing Up",
|
||||||
|
alertBody: Text(
|
||||||
|
"An error occurred while signing up. Please try again later.",
|
||||||
|
style: TextStyle(
|
||||||
|
color: MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
fontSize: 18,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
alertColour: MzansiInnovationHub.of(context)!.theme.errorColor(),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -135,18 +135,16 @@ class _MihSearchMzansiState extends State<MihSearchMzansi> {
|
|||||||
FutureBuilder(
|
FutureBuilder(
|
||||||
future: futurePosition,
|
future: futurePosition,
|
||||||
builder: (context, asyncSnapshot) {
|
builder: (context, asyncSnapshot) {
|
||||||
|
String myLocation = "";
|
||||||
if (asyncSnapshot.connectionState == ConnectionState.waiting) {
|
if (asyncSnapshot.connectionState == ConnectionState.waiting) {
|
||||||
return const Mihloadingcircle(
|
myLocation = "Getting Your GPS Location Ready";
|
||||||
message: "Getting Your GPS Location Ready",
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
final myLocation = asyncSnapshot.data
|
myLocation = asyncSnapshot.data
|
||||||
.toString()
|
.toString()
|
||||||
.replaceAll("Latitude: ", "")
|
.replaceAll("Latitude: ", "")
|
||||||
.replaceAll("Longitude: ", "");
|
.replaceAll("Longitude: ", "");
|
||||||
print("My Location is : $myLocation");
|
|
||||||
return displaySearchResults(userSearch, myLocation);
|
|
||||||
}
|
}
|
||||||
|
return displaySearchResults(userSearch, myLocation);
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import 'package:custom_rating_bar/custom_rating_bar.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.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_alert.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_alert.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
||||||
import 'package:supertokens_flutter/supertokens.dart';
|
import 'package:supertokens_flutter/supertokens.dart';
|
||||||
@@ -362,42 +363,12 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
),
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 10),
|
|
||||||
RatingBar.readOnly(
|
|
||||||
size: 50,
|
|
||||||
alignment: Alignment.center,
|
|
||||||
filledIcon: Icons.star,
|
|
||||||
emptyIcon: Icons.star_border,
|
|
||||||
halfFilledIcon: Icons.star_half,
|
|
||||||
filledColor: const Color(0xffe9e8a1),
|
|
||||||
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
emptyColor: MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
halfFilledColor: const Color(0xffe9e8a1),
|
|
||||||
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
isHalfAllowed: true,
|
|
||||||
initialRating: widget.business.rating.isNotEmpty
|
|
||||||
? double.parse(widget.business.rating)
|
|
||||||
: 0,
|
|
||||||
maxRating: 5,
|
|
||||||
),
|
|
||||||
// Text(
|
|
||||||
// "Rating: ${widget.rating}",
|
|
||||||
// style: TextStyle(
|
|
||||||
// fontSize: 15,
|
|
||||||
// fontWeight: FontWeight.bold,
|
|
||||||
// color: MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// height: 1.0,
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// Divider(
|
|
||||||
// color: MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
|
||||||
// ),
|
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
_buildContactInfo(
|
_buildContactInfo(
|
||||||
"Call",
|
"Call",
|
||||||
"Give us a quick call.",
|
"Give us a quick call.",
|
||||||
Icons.phone,
|
Icons.phone,
|
||||||
const Color(0xffaff0b3),
|
MihColors.getGreenColor(context),
|
||||||
() {
|
() {
|
||||||
// print("Calling ${widget.cellNumber}");
|
// print("Calling ${widget.cellNumber}");
|
||||||
_makePhoneCall(widget.business.contact_no);
|
_makePhoneCall(widget.business.contact_no);
|
||||||
@@ -410,7 +381,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
"Email",
|
"Email",
|
||||||
"Send us an email.",
|
"Send us an email.",
|
||||||
Icons.email,
|
Icons.email,
|
||||||
const Color(0xffdaa2e9),
|
MihColors.getPinkColor(context),
|
||||||
() {
|
() {
|
||||||
// print("Emailing ${widget.email}");
|
// print("Emailing ${widget.email}");
|
||||||
_launchEmail(
|
_launchEmail(
|
||||||
@@ -427,7 +398,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
"Location",
|
"Location",
|
||||||
"Come visit us.",
|
"Come visit us.",
|
||||||
Icons.location_on,
|
Icons.location_on,
|
||||||
const Color(0xffd69d7d),
|
MihColors.getOrangeColor(context),
|
||||||
() {
|
() {
|
||||||
final latitude =
|
final latitude =
|
||||||
double.parse(widget.business.gps_location.split(',')[0]);
|
double.parse(widget.business.gps_location.split(',')[0]);
|
||||||
@@ -453,7 +424,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
"Website",
|
"Website",
|
||||||
"Find out more about us.",
|
"Find out more about us.",
|
||||||
Icons.vpn_lock,
|
Icons.vpn_lock,
|
||||||
const Color(0xffd67d8a),
|
MihColors.getRedColor(context),
|
||||||
() {
|
() {
|
||||||
_launchWebsite(widget.business.website);
|
_launchWebsite(widget.business.website);
|
||||||
},
|
},
|
||||||
@@ -469,7 +440,7 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
"Rate Us",
|
"Rate Us",
|
||||||
"Let us know how we are doing.",
|
"Let us know how we are doing.",
|
||||||
Icons.star_rate_rounded,
|
Icons.star_rate_rounded,
|
||||||
const Color(0xffe9e8a1),
|
MihColors.getYellowColor(context),
|
||||||
() {
|
() {
|
||||||
businessReviewRatingWindow(true, widget.width);
|
businessReviewRatingWindow(true, widget.width);
|
||||||
},
|
},
|
||||||
@@ -484,10 +455,11 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
// "Bookmark",
|
// "Bookmark",
|
||||||
// "Save us for later.",
|
// "Save us for later.",
|
||||||
// Icons.bookmark_add_rounded,
|
// Icons.bookmark_add_rounded,
|
||||||
// const Color(0xff6e7dcc),
|
// MihColors.getBluishPurpleColor(context),
|
||||||
// () {
|
// () {
|
||||||
// // _launchWebsite(widget.website);
|
// // _launchWebsite(widget.website);
|
||||||
// print("Saving ${widget.businessName} to Directory");
|
// print("Saving ${widget.business.Name} to Directory");
|
||||||
|
// showBookmarkAlert();
|
||||||
// },
|
// },
|
||||||
// ),
|
// ),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
@@ -550,4 +522,69 @@ class _MihBusinessCardState extends State<MihBusinessCard> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void showBookmarkAlert() {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => MihPackageAlert(
|
||||||
|
alertColour: MihColors.getSecondaryColor(context),
|
||||||
|
alertIcon: Icon(
|
||||||
|
Icons.warning_rounded,
|
||||||
|
size: 100,
|
||||||
|
color: MihColors.getSecondaryColor(context),
|
||||||
|
),
|
||||||
|
alertTitle: "Bookmark Business",
|
||||||
|
alertBody: Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"Are you sure you want to save ${widget.business.Name} to your Mzansi Directory?",
|
||||||
|
style: TextStyle(
|
||||||
|
color: MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
fontSize: 15,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 25),
|
||||||
|
Wrap(
|
||||||
|
spacing: 10,
|
||||||
|
runSpacing: 10,
|
||||||
|
children: [
|
||||||
|
MihButton(
|
||||||
|
width: 300,
|
||||||
|
onPressed: () async {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
buttonColor:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.errorColor(),
|
||||||
|
child: Text(
|
||||||
|
"Cancel",
|
||||||
|
style: TextStyle(
|
||||||
|
color:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
MihButton(
|
||||||
|
width: 300,
|
||||||
|
onPressed: () {},
|
||||||
|
buttonColor:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.successColor(),
|
||||||
|
child: Text(
|
||||||
|
"Save Business",
|
||||||
|
style: TextStyle(
|
||||||
|
color:
|
||||||
|
MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_text_form_field.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
|
||||||
@@ -358,15 +359,17 @@ class _MihReviewBusinessWindowState extends State<MihReviewBusinessWindow> {
|
|||||||
filledIcon: Icons.star,
|
filledIcon: Icons.star,
|
||||||
emptyIcon: Icons.star_border,
|
emptyIcon: Icons.star_border,
|
||||||
halfFilledIcon: Icons.star_half,
|
halfFilledIcon: Icons.star_half,
|
||||||
filledColor: MzansiInnovationHub.of(context)!
|
filledColor: MihColors.getYellowColor(context),
|
||||||
.theme
|
// filledColor: MzansiInnovationHub.of(context)!
|
||||||
.secondaryColor(),
|
// .theme
|
||||||
|
// .secondaryColor(),
|
||||||
emptyColor: MzansiInnovationHub.of(context)!
|
emptyColor: MzansiInnovationHub.of(context)!
|
||||||
.theme
|
.theme
|
||||||
.secondaryColor(),
|
.secondaryColor(),
|
||||||
halfFilledColor: MzansiInnovationHub.of(context)!
|
halfFilledColor: MihColors.getYellowColor(context),
|
||||||
.theme
|
// MzansiInnovationHub.of(context)!
|
||||||
.secondaryColor(),
|
// .theme
|
||||||
|
// .secondaryColor(),
|
||||||
isHalfAllowed: true,
|
isHalfAllowed: true,
|
||||||
initialRating: widget.businessReview != null
|
initialRating: widget.businessReview != null
|
||||||
? double.parse(_reviewScoreController.text)
|
? double.parse(_reviewScoreController.text)
|
||||||
@@ -379,16 +382,11 @@ class _MihReviewBusinessWindowState extends State<MihReviewBusinessWindow> {
|
|||||||
filledIcon: Icons.star,
|
filledIcon: Icons.star,
|
||||||
emptyIcon: Icons.star_border,
|
emptyIcon: Icons.star_border,
|
||||||
halfFilledIcon: Icons.star_half,
|
halfFilledIcon: Icons.star_half,
|
||||||
filledColor: MzansiInnovationHub.of(context)!
|
filledColor: MihColors.getYellowColor(context),
|
||||||
.theme
|
|
||||||
.secondaryColor(),
|
|
||||||
emptyColor: MzansiInnovationHub.of(context)!
|
emptyColor: MzansiInnovationHub.of(context)!
|
||||||
.theme
|
.theme
|
||||||
.secondaryColor(),
|
.secondaryColor(),
|
||||||
halfFilledColor: MzansiInnovationHub.of(context)!
|
halfFilledColor: MihColors.getYellowColor(context), isHalfAllowed: true,
|
||||||
.theme
|
|
||||||
.secondaryColor(),
|
|
||||||
isHalfAllowed: true,
|
|
||||||
initialRating: widget.businessReview != null
|
initialRating: widget.businessReview != null
|
||||||
? double.parse(_reviewScoreController.text)
|
? double.parse(_reviewScoreController.text)
|
||||||
: 1,
|
: 1,
|
||||||
|
|||||||
@@ -646,6 +646,19 @@ class _MihBusinessDetailsState extends State<MihBusinessDetails> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
FittedBox(
|
||||||
|
child: Text(
|
||||||
|
widget.arguments.business!.type,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 5),
|
||||||
// FittedBox(
|
// FittedBox(
|
||||||
// child: Text(
|
// child: Text(
|
||||||
// "Mission & Vision",
|
// "Mission & Vision",
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
|
import 'package:custom_rating_bar/custom_rating_bar.dart';
|
||||||
import 'package:file_picker/file_picker.dart';
|
import 'package:file_picker/file_picker.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.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';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_business_info_card.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_single_child_scroll.dart';
|
||||||
@@ -130,6 +132,19 @@ class _MihBusinessDetailsViewState extends State<MihBusinessDetailsView> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
FittedBox(
|
||||||
|
child: Text(
|
||||||
|
widget.business.type,
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: MzansiInnovationHub.of(context)!
|
||||||
|
.theme
|
||||||
|
.secondaryColor(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(height: 5),
|
||||||
// FittedBox(
|
// FittedBox(
|
||||||
// child: Text(
|
// child: Text(
|
||||||
// "Mission & Vision",
|
// "Mission & Vision",
|
||||||
@@ -160,6 +175,24 @@ class _MihBusinessDetailsViewState extends State<MihBusinessDetailsView> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
const SizedBox(height: 10),
|
||||||
|
RatingBar.readOnly(
|
||||||
|
size: 50,
|
||||||
|
alignment: Alignment.center,
|
||||||
|
filledIcon: Icons.star,
|
||||||
|
emptyIcon: Icons.star_border,
|
||||||
|
halfFilledIcon: Icons.star_half,
|
||||||
|
filledColor: MihColors.getYellowColor(context),
|
||||||
|
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
emptyColor: MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
halfFilledColor: MihColors.getYellowColor(context),
|
||||||
|
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
isHalfAllowed: true,
|
||||||
|
initialRating: widget.business.rating.isNotEmpty
|
||||||
|
? double.parse(widget.business.rating)
|
||||||
|
: 0,
|
||||||
|
maxRating: 5,
|
||||||
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 700,
|
width: 700,
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import 'package:mzansi_innovation_hub/main.dart';
|
|||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_objects/business_review.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart';
|
import 'package:mzansi_innovation_hub/mih_packages/mzansi_profile/business_profile/components/mih_review_business_window.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_directory_services.dart';
|
||||||
|
|
||||||
@@ -94,12 +95,12 @@ class _MihBusinessReviewsState extends State<MihBusinessReviews> {
|
|||||||
filledIcon: Icons.star,
|
filledIcon: Icons.star,
|
||||||
emptyIcon: Icons.star_border,
|
emptyIcon: Icons.star_border,
|
||||||
halfFilledIcon: Icons.star_half,
|
halfFilledIcon: Icons.star_half,
|
||||||
filledColor: const Color(0xffe9e8a1),
|
filledColor: MihColors.getYellowColor(context),
|
||||||
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
emptyColor: MzansiInnovationHub.of(context)!
|
emptyColor: MzansiInnovationHub.of(context)!
|
||||||
.theme
|
.theme
|
||||||
.secondaryColor(),
|
.secondaryColor(),
|
||||||
halfFilledColor: const Color(0xffe9e8a1),
|
halfFilledColor: MihColors.getYellowColor(context),
|
||||||
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
// MzansiInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
// filledColor:
|
// filledColor:
|
||||||
// MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
// MzansiInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
||||||
<meta name="description"
|
<meta name="description"
|
||||||
content="Digitizing Mzansi one process at a time. Discover essential Mzansi apps to streamline your personal and professional life. Simplify your daily tasks with our user-friendly solutions.">
|
content="MIH, the first Mzansi super app by Mzansi Innovation Hub. Streamline your life with Mzansi Profile, Wallet, Patient Manager, AI, Directory, Calendar, Calculator, & secure MIH Access. Unify social, business & personal tools.">
|
||||||
|
|
||||||
<!-- iOS meta tags & icons -->
|
<!-- iOS meta tags & icons -->
|
||||||
<meta name="mobile-web-app-capable" content="yes">
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="favicon.ico">
|
<link rel="icon" href="favicon.ico">
|
||||||
|
|
||||||
<title>Mzansi Innovation Hub</title>
|
<title>MIH App: Mzansi Innovation Hub - All-in-One Super App for Business & Personal Life</title>
|
||||||
<link rel="manifest" href="manifest.json">
|
<link rel="manifest" href="manifest.json">
|
||||||
|
|
||||||
<!-- test stuff for speed -->
|
<!-- test stuff for speed -->
|
||||||
@@ -138,9 +138,78 @@
|
|||||||
document.body.style.background = "transparent";
|
document.body.style.background = "transparent";
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "http://schema.org",
|
||||||
|
"@type": "SoftwareApplication",
|
||||||
|
"name": "MIH App",
|
||||||
|
"alternateName": "Mzansi Innovation Hub App",
|
||||||
|
"applicationCategory": "ProductivityApplication",
|
||||||
|
"operatingSystem": ["Android", "iOS", "Web"],
|
||||||
|
"description": "MIH, the first super app of Mzansi, streamlines personal and business life with features like Mzansi Profile, Wallet, Patient Manager, AI, Directory, Calendar, Calculator, and MIH Access.",
|
||||||
|
"softwareRequirements": "Internet connection",
|
||||||
|
"offers": {
|
||||||
|
"@type": "Offer",
|
||||||
|
"price": "0",
|
||||||
|
"priceCurrency": "ZAR"
|
||||||
|
},
|
||||||
|
"url": "https://app.mzansi-innovation-hub.co.za/",
|
||||||
|
"sameAs": [
|
||||||
|
"https://play.google.com/store/apps/details?id=za.co.mzansiinnovationhub.mih&hl=en_ZA",
|
||||||
|
"https://apps.apple.com/za/app/mih-app-mzansi-innovation-hub/id6743310890"
|
||||||
|
],
|
||||||
|
"featureList": [
|
||||||
|
"Mzansi Profile (Personal & Business)",
|
||||||
|
"Mzansi Wallet (Loyalty Cards)",
|
||||||
|
"Patient Manager (Appointment Scheduling)",
|
||||||
|
"Mzansi AI (Chat Assistant)",
|
||||||
|
"Mzansi Directory (People & Businesses)",
|
||||||
|
"Integrated Calendar",
|
||||||
|
"Calculator (Tips & Forex)",
|
||||||
|
"MIH Access (Profile Security Management)"
|
||||||
|
],
|
||||||
|
"publisher": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "Mzansi Innovation Hub"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
<div id="seo-content" style="display:none;">
|
||||||
|
<h1>Mzansi Innovation Hub (MIH) - Your All-in-One Super App for South Africa</h1>
|
||||||
|
<p>Tired of juggling multiple apps? Mzansi Innovation Hub (MIH) presents the first super app designed specifically for the people and businesses of Mzansi. MIH is your unified online information technology system to streamline both your personal and professional life, bridging the socio-economic divide during the digital revolution.</p>
|
||||||
|
|
||||||
|
<h2>Key Features of the MIH Super App:</h2>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Mzansi Profile:</strong> Effortlessly manage your professional profile, personal information, and valuable business team details. Amplify your online presence.</li>
|
||||||
|
<li><strong>Mzansi Wallet:</strong> Go digital! Securely store all your loyalty cards in one convenient place, reducing clutter.</li>
|
||||||
|
<li><strong>Patient Manager:</strong> Revolutionize medical practices with seamless patient appointment scheduling and efficient data management.</li>
|
||||||
|
<li><strong>Mzansi AI:</strong> Get instant support and quick answers with our friendly AI assistant, available 24/7.</li>
|
||||||
|
<li><li><strong>Mzansi Directory:</strong> Discover and connect with people and businesses across Mzansi.</li>
|
||||||
|
<li><strong>Calendar:</strong> Stay perfectly organized with an integrated calendar for all your personal and business appointments.</li>
|
||||||
|
<li><strong>Calculator:</strong> Perform quick calculations, including tips and forex, right within the app.</li>
|
||||||
|
<li><strong>MIH Access:</strong> Take control of your security. Easily manage and view who has access to your profile and data.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>MIH simplifies daily tasks, reduces costs, and helps you manage your professional profile, team, and appointments all from a single, user-friendly platform. It's the essential mobile app for business owners and individuals looking to streamline their online presence in South Africa.</p>
|
||||||
|
|
||||||
|
<h3>Download the MIH Super App Today!</h3>
|
||||||
|
<p>Available for Android and iOS. Search "Mzansi Innovation Hub" or "MIH App" on your app store.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Hide the SEO content once the Flutter app starts to load
|
||||||
|
window.addEventListener('load', function() {
|
||||||
|
const seoContent = document.getElementById('seo-content');
|
||||||
|
if (seoContent) {
|
||||||
|
seoContent.style.display = 'none'; // Or 'hidden'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// You might need to adjust this script to ensure it hides *after* the Flutter app's visual elements are fully rendered.
|
||||||
|
// A more robust solution might involve listening for a Flutter-specific event when the app is ready.
|
||||||
|
</script>
|
||||||
<picture id="splash-branding">
|
<picture id="splash-branding">
|
||||||
<source
|
<source
|
||||||
srcset="splash/img/branding-1x.png 1x, splash/img/branding-2x.png 2x, splash/img/branding-3x.png 3x, splash/img/branding-4x.png 4x"
|
srcset="splash/img/branding-1x.png 1x, splash/img/branding-2x.png 2x, splash/img/branding-3x.png 3x, splash/img/branding-4x.png 4x"
|
||||||
@@ -148,7 +217,7 @@
|
|||||||
<source
|
<source
|
||||||
srcset="splash/img/branding-dark-1x.png 1x, splash/img/branding-dark-2x.png 2x, splash/img/branding-dark-3x.png 3x, splash/img/branding-dark-4x.png 4x"
|
srcset="splash/img/branding-dark-1x.png 1x, splash/img/branding-dark-2x.png 2x, splash/img/branding-dark-3x.png 3x, splash/img/branding-dark-4x.png 4x"
|
||||||
media="(prefers-color-scheme: dark)">
|
media="(prefers-color-scheme: dark)">
|
||||||
<img class="bottom" aria-hidden="true" src="splash/img/branding-1x.png" alt="">
|
<img class="bottom" aria-hidden="true" src="splash/img/branding-1x.png" alt="Mzansi Innovation Hub Branding Logo">
|
||||||
</picture>
|
</picture>
|
||||||
<picture id="splash">
|
<picture id="splash">
|
||||||
<source
|
<source
|
||||||
@@ -157,7 +226,7 @@
|
|||||||
<source
|
<source
|
||||||
srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x"
|
srcset="splash/img/dark-1x.png 1x, splash/img/dark-2x.png 2x, splash/img/dark-3x.png 3x, splash/img/dark-4x.png 4x"
|
||||||
media="(prefers-color-scheme: dark)">
|
media="(prefers-color-scheme: dark)">
|
||||||
<img class="center" aria-hidden="true" src="splash/img/light-1x.png" alt="">
|
<img class="center" aria-hidden="true" src="splash/img/light-1x.png" alt="MIH App Splash Screen Logo">
|
||||||
</picture>
|
</picture>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
75
backend/mih_database/mihDbConnections.py
Normal file
75
backend/mih_database/mihDbConnections.py
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
from sqlalchemy import create_engine
|
||||||
|
import mysql.connector
|
||||||
|
from urllib.parse import quote_plus
|
||||||
|
import os
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
load_dotenv()
|
||||||
|
dbUser = os.getenv("DB_USER")
|
||||||
|
dbPass = os.getenv("DB_PASSWD")
|
||||||
|
dbHost = "mysqldb"
|
||||||
|
dbPort = 3306
|
||||||
|
encoded_dbPass = quote_plus(dbPass)
|
||||||
|
base_connect_url = f"mysql+mysqlconnector://{dbUser}:{encoded_dbPass}@{dbHost}:{dbPort}/"
|
||||||
|
|
||||||
|
def dbPatientManagerConnect():
|
||||||
|
return create_engine(base_connect_url+"patient_manager", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="patient_manager"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbAppDataConnect():
|
||||||
|
return create_engine(base_connect_url+"app_data", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="app_data"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbDataAccessConnect():
|
||||||
|
return create_engine(base_connect_url+"data_access", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="data_access"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbMzansiWalletConnect():
|
||||||
|
return create_engine(base_connect_url+"mzansi_wallet", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="mzansi_wallet"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbMzansiDirectoryConnect():
|
||||||
|
return create_engine(base_connect_url+"mzansi_directory", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="mzansi_directory"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbMzansiCalendarConnect():
|
||||||
|
return create_engine(base_connect_url+"mzansi_calendar", echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# database="mzansi_calendar"
|
||||||
|
# )
|
||||||
|
|
||||||
|
def dbAllConnect():
|
||||||
|
return create_engine(base_connect_url, echo=True, pool_recycle=3600)
|
||||||
|
# return mysql.connector.connect(
|
||||||
|
# host="mysqldb",
|
||||||
|
# user=dbUser,
|
||||||
|
# passwd=dbPass,
|
||||||
|
# )
|
||||||
73
backend/mih_database/mihDbObjects.py
Normal file
73
backend/mih_database/mihDbObjects.py
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
from sqlalchemy import DateTime, Column, Integer, String
|
||||||
|
from sqlalchemy.orm import declarative_base
|
||||||
|
Base = declarative_base()
|
||||||
|
|
||||||
|
class User(Base):
|
||||||
|
__tablename__ = 'users'
|
||||||
|
__table_args__ = {'schema': 'app_data'}
|
||||||
|
idusers = Column(Integer, primary_key=True)
|
||||||
|
email = Column(String(128), nullable=False, unique=True)
|
||||||
|
fname = Column(String(128), nullable=False)
|
||||||
|
lname = Column(String(128), nullable=False)
|
||||||
|
type = Column(String(128), nullable=False)
|
||||||
|
app_id = Column(String(128), nullable=False)
|
||||||
|
username = Column(String(128), nullable=False)
|
||||||
|
pro_pic_path = Column(String(128), nullable=False)
|
||||||
|
purpose = Column(String(256), nullable=False, server_default="")
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return (
|
||||||
|
f"<User(idusers={self.idusers}, email='{self.email}', "
|
||||||
|
f"fname='{self.fname}', lname='{self.lname}', type='{self.type}', "
|
||||||
|
f"app_id='{self.app_id}', username='{self.username}', "
|
||||||
|
f"pro_pic_path='{self.pro_pic_path}', purpose='{self.purpose}')>"
|
||||||
|
)
|
||||||
|
|
||||||
|
class Business(Base):
|
||||||
|
__tablename__ = 'business'
|
||||||
|
__table_args__ = {'schema': 'app_data'}
|
||||||
|
idbusiness = Column(Integer, primary_key=True)
|
||||||
|
business_id = Column(String(128), nullable=False, unique=True)
|
||||||
|
Name = Column(String(128))
|
||||||
|
type = Column(String(128))
|
||||||
|
registration_no = Column(String(128))
|
||||||
|
logo_name = Column(String(128))
|
||||||
|
logo_path = Column(String(128))
|
||||||
|
contact_no = Column(String(45))
|
||||||
|
bus_email = Column(String(128))
|
||||||
|
gps_location = Column(String(128))
|
||||||
|
practice_no = Column(String(45))
|
||||||
|
vat_no = Column(String(45))
|
||||||
|
website = Column(String(128))
|
||||||
|
rating = Column(String(45), server_default="''") # Changed to match image default
|
||||||
|
mission_vision = Column(String(256))
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return (
|
||||||
|
f"<Business(idbusiness={self.idbusiness}, business_id='{self.business_id}', "
|
||||||
|
f"Name='{self.Name}', type='{self.type}', "
|
||||||
|
f"registration_no='{self.registration_no}', logo_name='{self.logo_name}', "
|
||||||
|
f"logo_path='{self.logo_path}', contact_no='{self.contact_no}', "
|
||||||
|
f"bus_email='{self.bus_email}', gps_location='{self.gps_location}', "
|
||||||
|
f"practice_no='{self.practice_no}', vat_no='{self.vat_no}', "
|
||||||
|
f"website='{self.website}', rating='{self.rating}', "
|
||||||
|
f"mission_vision='{self.mission_vision}')>"
|
||||||
|
)
|
||||||
|
|
||||||
|
class BusinessRating(Base):
|
||||||
|
__tablename__ = 'business_ratings'
|
||||||
|
__table_args__ = {'schema': 'mzansi_directory'}
|
||||||
|
idbusiness_ratings = Column(Integer, primary_key=True)
|
||||||
|
app_id = Column(String(128), nullable=False, server_default="")
|
||||||
|
business_id = Column(String(128), nullable=False, server_default="")
|
||||||
|
rating_title = Column(String(128), nullable=False, server_default="")
|
||||||
|
rating_description = Column(String(256), nullable=False, server_default="")
|
||||||
|
rating_score = Column(String(45), nullable=False, server_default="")
|
||||||
|
date_time = Column(DateTime, nullable=True)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return (
|
||||||
|
f"<BusinessRating(idbusiness_ratings={self.idbusiness_ratings}, app_id='{self.app_id}', "
|
||||||
|
f"business_id='{self.business_id}', rating_title='{self.rating_title}', rating_description='{self.rating_description}', "
|
||||||
|
f"rating_score='{self.rating_score}', date_time='{self.date_time}')>"
|
||||||
|
)
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
fastapi
|
fastapi
|
||||||
uvicorn
|
uvicorn
|
||||||
|
sqlalchemy
|
||||||
mysql-connector-python
|
mysql-connector-python
|
||||||
minio
|
minio
|
||||||
reportlab
|
reportlab
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import date
|
from datetime import date
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -32,7 +32,7 @@ class accessExtensionRequest(BaseModel):
|
|||||||
|
|
||||||
@router.get("/access-requests/{app_id}", tags=["Access Requests"])
|
@router.get("/access-requests/{app_id}", tags=["Access Requests"])
|
||||||
async def read_all_access_request_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_access_request_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT patient_queue.idpatient_queue, patient_queue.business_id, "
|
query = "SELECT patient_queue.idpatient_queue, patient_queue.business_id, "
|
||||||
query += "patient_queue.app_id, patient_queue.date_time, patient_queue.access, patient_queue.revoke_date, "
|
query += "patient_queue.app_id, patient_queue.date_time, patient_queue.access, patient_queue.revoke_date, "
|
||||||
@@ -63,7 +63,7 @@ async def read_all_access_request_by_app_id(app_id: str, session: SessionContain
|
|||||||
|
|
||||||
@router.put("/access-requests/update/", tags=["Access Requests"])
|
@router.put("/access-requests/update/", tags=["Access Requests"])
|
||||||
async def Update_access_request_approcal(itemRequest : accessUpdateRequest): #, session: SessionContainer = Depends(verify_session())
|
async def Update_access_request_approcal(itemRequest : accessUpdateRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update patient_queue "
|
query = "update patient_queue "
|
||||||
query += "set access=%s"
|
query += "set access=%s"
|
||||||
@@ -86,7 +86,7 @@ async def Update_access_request_approcal(itemRequest : accessUpdateRequest): #,
|
|||||||
|
|
||||||
@router.put("/access-requests/extension/", tags=["Access Requests"])
|
@router.put("/access-requests/extension/", tags=["Access Requests"])
|
||||||
async def Update_access_request_approcal(itemRequest : accessExtensionRequest): #, session: SessionContainer = Depends(verify_session())
|
async def Update_access_request_approcal(itemRequest : accessExtensionRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update patient_queue "
|
query = "update patient_queue "
|
||||||
query += "set access=%s, revoke_date=%s"
|
query += "set access=%s, revoke_date=%s"
|
||||||
@@ -111,7 +111,7 @@ async def Update_access_request_approcal(itemRequest : accessExtensionRequest):
|
|||||||
# # Get List of all files
|
# # Get List of all files
|
||||||
# @router.get("/files/patients/", tags="patients_files")
|
# @router.get("/files/patients/", tags="patients_files")
|
||||||
# async def read_all_files(session: SessionContainer = Depends(verify_session())):
|
# async def read_all_files(session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patient_files"
|
# query = "SELECT * FROM patient_files"
|
||||||
# cursor.execute(query)
|
# cursor.execute(query)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import datetime, timedelta, date
|
from datetime import datetime, timedelta, date
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -32,7 +32,7 @@ class appointmentDeleteRequest(BaseModel):
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/appointments/business/{business_id}", tags=["Appointments"])
|
@router.get("/appointments/business/{business_id}", tags=["Appointments"])
|
||||||
async def read_all_appointments_by_business_id(business_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_appointments_by_business_id(business_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiCalendarConnect()
|
db = mih_database.dbConnection.dbMzansiCalendarConnect()
|
||||||
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT appointments.idappointments, appointments.app_id, "
|
query = "SELECT appointments.idappointments, appointments.app_id, "
|
||||||
@@ -60,7 +60,7 @@ async def read_all_appointments_by_business_id(business_id: str, date: str, sess
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/appointments/personal/{app_id}", tags=["Appointments"])
|
@router.get("/appointments/personal/{app_id}", tags=["Appointments"])
|
||||||
async def read_all_appointments_by_business_id(app_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_appointments_by_business_id(app_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiCalendarConnect()
|
db = mih_database.dbConnection.dbMzansiCalendarConnect()
|
||||||
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT appointments.idappointments, appointments.app_id, "
|
query = "SELECT appointments.idappointments, appointments.app_id, "
|
||||||
@@ -90,7 +90,7 @@ async def read_all_appointments_by_business_id(app_id: str, date: str, session:
|
|||||||
@router.post("/appointment/insert/", tags=["Appointments"], status_code=201)
|
@router.post("/appointment/insert/", tags=["Appointments"], status_code=201)
|
||||||
async def insert_appointment(itemRequest : appointmentInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_appointment(itemRequest : appointmentInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
||||||
db = database.dbConnection.dbMzansiCalendarConnect()
|
db = mih_database.dbConnection.dbMzansiCalendarConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into appointments "
|
query = "insert into appointments "
|
||||||
query += "(app_id, business_id, title, description, date_time) "
|
query += "(app_id, business_id, title, description, date_time) "
|
||||||
@@ -117,7 +117,7 @@ async def Update_appointment(itemRequest : appointmentUpdateRequest, session: Se
|
|||||||
|
|
||||||
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
||||||
|
|
||||||
db = database.dbConnection.dbMzansiCalendarConnect()
|
db = mih_database.dbConnection.dbMzansiCalendarConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update appointments "
|
query = "update appointments "
|
||||||
query += "set date_time=%s, title=%s, description=%s "
|
query += "set date_time=%s, title=%s, description=%s "
|
||||||
@@ -140,7 +140,7 @@ async def Update_appointment(itemRequest : appointmentUpdateRequest, session: Se
|
|||||||
# Update Patient on table
|
# Update Patient on table
|
||||||
@router.delete("/appointment/delete/", tags=["Appointments"])
|
@router.delete("/appointment/delete/", tags=["Appointments"])
|
||||||
async def Delete_appointment(itemRequest : appointmentDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Delete_appointment(itemRequest : appointmentDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiCalendarConnect()
|
db = mih_database.dbConnection.dbMzansiCalendarConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from appointments "
|
query = "delete from appointments "
|
||||||
query += "where idappointments=%s"
|
query += "where idappointments=%s"
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import database.dbConnection
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
# class userRequest(BaseModel):
|
# class userRequest(BaseModel):
|
||||||
@@ -64,7 +62,7 @@ class businessUpdateRequestV2(BaseModel):
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/businesses/search/{search}", tags=["MIH Business"])
|
@router.get("/businesses/search/{search}", tags=["MIH Business"])
|
||||||
async def read_all_businesses(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_businesses(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
||||||
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
||||||
@@ -103,7 +101,7 @@ async def read_all_businesses(search: str, session: SessionContainer = Depends(v
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/business/business_id/{business_id}", tags=["MIH Business"])
|
@router.get("/business/business_id/{business_id}", tags=["MIH Business"])
|
||||||
async def read_business_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_business_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
||||||
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
||||||
@@ -150,7 +148,7 @@ async def read_business_by_business_id(business_id: str, session: SessionContain
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/business/app_id/{app_id}", tags=["MIH Business"])
|
@router.get("/business/app_id/{app_id}", tags=["MIH Business"])
|
||||||
async def read_business_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_business_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
query = "SELECT business.business_id, business.Name, business.type, business.registration_no, "
|
||||||
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
query += "business.logo_name, business.logo_path, business.contact_no, business.bus_email, "
|
||||||
@@ -195,7 +193,7 @@ async def read_business_by_app_id(app_id: str, session: SessionContainer = Depen
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/business/insert/", tags=["MIH Business"], status_code=201)
|
@router.post("/business/insert/", tags=["MIH Business"], status_code=201)
|
||||||
async def insert_business_details(itemRequest : businessInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_business_details(itemRequest : businessInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into business "
|
query = "insert into business "
|
||||||
query += "(business_id, Name, type, registration_no, logo_name, logo_path, contact_no, bus_email, gps_location, practice_no, vat_no, website, rating, mission_vision) "
|
query += "(business_id, Name, type, registration_no, logo_name, logo_path, contact_no, bus_email, gps_location, practice_no, vat_no, website, rating, mission_vision) "
|
||||||
@@ -230,7 +228,7 @@ async def insert_business_details(itemRequest : businessInsertRequest, session:
|
|||||||
|
|
||||||
@router.put("/business/update/", tags=["MIH Business"])
|
@router.put("/business/update/", tags=["MIH Business"])
|
||||||
async def Update_Business_details(itemRequest : businessUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Update_Business_details(itemRequest : businessUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
# print(itemRequest.gps_location)
|
# print(itemRequest.gps_location)
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update business "
|
query = "update business "
|
||||||
@@ -260,7 +258,7 @@ async def Update_Business_details(itemRequest : businessUpdateRequest, session:
|
|||||||
|
|
||||||
@router.put("/business/update/v2/", tags=["MIH Business"])
|
@router.put("/business/update/v2/", tags=["MIH Business"])
|
||||||
async def Update_Business_details(itemRequest : businessUpdateRequestV2, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Update_Business_details(itemRequest : businessUpdateRequestV2, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
# print(itemRequest.gps_location)
|
# print(itemRequest.gps_location)
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update business "
|
query = "update business "
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
|
|
||||||
import database.dbConnection
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
# class userRequest(BaseModel):
|
# class userRequest(BaseModel):
|
||||||
@@ -44,7 +42,7 @@ class employeeDeleteRequest(BaseModel):
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/business-user/{app_id}", tags=["MIH Business_User"])
|
@router.get("/business-user/{app_id}", tags=["MIH Business_User"])
|
||||||
async def read_business_users_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_business_users_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM business_users where app_id = %s"
|
query = "SELECT * FROM business_users where app_id = %s"
|
||||||
try:
|
try:
|
||||||
@@ -73,7 +71,7 @@ async def read_business_users_by_app_id(app_id: str, session: SessionContainer =
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/business-user/employees/{business_id}", tags=["MIH Business_User"])
|
@router.get("/business-user/employees/{business_id}", tags=["MIH Business_User"])
|
||||||
async def read_business_users_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_business_users_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = ""
|
query = ""
|
||||||
query += "SELECT business_users.business_id, business_users.app_id, business_users.title, business_users.access, "
|
query += "SELECT business_users.business_id, business_users.app_id, business_users.title, business_users.access, "
|
||||||
@@ -108,7 +106,7 @@ async def read_business_users_by_business_id(business_id: str, session: SessionC
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/business-user/insert/", tags=["MIH Business_User"], status_code=201)
|
@router.post("/business-user/insert/", tags=["MIH Business_User"], status_code=201)
|
||||||
async def insert_User_details(itemRequest : businessUserInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_User_details(itemRequest : businessUserInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
checkQuery = "SELECT * FROM business_users where app_id = %s"
|
checkQuery = "SELECT * FROM business_users where app_id = %s"
|
||||||
try:
|
try:
|
||||||
@@ -175,7 +173,7 @@ async def insert_User_details(itemRequest : businessUserInsertRequest, session:
|
|||||||
# Update User on table
|
# Update User on table
|
||||||
@router.put("/business-user/update/", tags=["MIH Business_User"])
|
@router.put("/business-user/update/", tags=["MIH Business_User"])
|
||||||
async def Update_User_details(itemRequest : BusinessUserUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Update_User_details(itemRequest : BusinessUserUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update business_users "
|
query = "update business_users "
|
||||||
query += "set signature=%s,sig_path=%s, title=%s, access=%s"
|
query += "set signature=%s,sig_path=%s, title=%s, access=%s"
|
||||||
@@ -200,7 +198,7 @@ async def Update_User_details(itemRequest : BusinessUserUpdateRequest, session:
|
|||||||
# Update User on table
|
# Update User on table
|
||||||
@router.put("/business-user/employees/update/", tags=["MIH Business_User"])
|
@router.put("/business-user/employees/update/", tags=["MIH Business_User"])
|
||||||
async def Update_User_details(itemRequest : EmployeeUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Update_User_details(itemRequest : EmployeeUpdateRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update business_users "
|
query = "update business_users "
|
||||||
query += "set title=%s, access=%s"
|
query += "set title=%s, access=%s"
|
||||||
@@ -225,7 +223,7 @@ async def Update_User_details(itemRequest : EmployeeUpdateRequest, session: Sess
|
|||||||
@router.delete("/business-user/employees/delete/", tags=["MIH Business_User"])
|
@router.delete("/business-user/employees/delete/", tags=["MIH Business_User"])
|
||||||
async def Delete_Patient_note(itemRequest : employeeDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Delete_Patient_note(itemRequest : employeeDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from business_users "
|
query = "delete from business_users "
|
||||||
query += "where business_id=%s "
|
query += "where business_id=%s "
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import date
|
from datetime import date
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -24,7 +24,7 @@ class claimStatementInsertRequest(BaseModel):
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/files/claim-statement/patient/{app_id}", tags=["Claim Statement Files"])
|
@router.get("/files/claim-statement/patient/{app_id}", tags=["Claim Statement Files"])
|
||||||
async def read_all_claim_statement_files_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_all_claim_statement_files_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM claim_statement_file where app_id = %s ORDER BY insert_date DESC"
|
query = "SELECT * FROM claim_statement_file where app_id = %s ORDER BY insert_date DESC"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -46,7 +46,7 @@ async def read_all_claim_statement_files_by_app_id(app_id: str, session: Session
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/files/claim-statement/business/{business_id}", tags=["Claim Statement Files"])
|
@router.get("/files/claim-statement/business/{business_id}", tags=["Claim Statement Files"])
|
||||||
async def read_all_claim_statement_files_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_all_claim_statement_files_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM claim_statement_file where business_id = %s ORDER BY insert_date DESC"
|
query = "SELECT * FROM claim_statement_file where business_id = %s ORDER BY insert_date DESC"
|
||||||
cursor.execute(query, (business_id,))
|
cursor.execute(query, (business_id,))
|
||||||
@@ -69,7 +69,7 @@ async def read_all_claim_statement_files_by_business_id(business_id: str, sessio
|
|||||||
@router.delete("/files/claim-statement/delete/", tags=["Claim Statement Files"])
|
@router.delete("/files/claim-statement/delete/", tags=["Claim Statement Files"])
|
||||||
async def Delete_Patient_File(itemRequest : claimStatementDeleteRequest, session: SessionContainer = Depends(verify_session())): #session: SessionContainer = Depends(verify_session())
|
async def Delete_Patient_File(itemRequest : claimStatementDeleteRequest, session: SessionContainer = Depends(verify_session())): #session: SessionContainer = Depends(verify_session())
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from claim_statement_file "
|
query = "delete from claim_statement_file "
|
||||||
query += "where idclaim_statement_file=%s"
|
query += "where idclaim_statement_file=%s"
|
||||||
@@ -88,7 +88,7 @@ async def Delete_Patient_File(itemRequest : claimStatementDeleteRequest, session
|
|||||||
@router.post("/files/claim-statement/insert/", tags=["Claim Statement Files"], status_code=201)
|
@router.post("/files/claim-statement/insert/", tags=["Claim Statement Files"], status_code=201)
|
||||||
async def insert_Patient_Files(itemRequest : claimStatementInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_Patient_Files(itemRequest : claimStatementInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
today = date.today()
|
today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into claim_statement_file "
|
query = "insert into claim_statement_file "
|
||||||
query += "(app_id, business_id, file_path, file_name, insert_date) "
|
query += "(app_id, business_id, file_path, file_name, insert_date) "
|
||||||
|
|||||||
@@ -1,20 +1,18 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
|
|
||||||
import database.dbConnection
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
# Get Doctors Office By ID
|
# Get Doctors Office By ID
|
||||||
@router.get("/docOffices/{docOffic_id}", tags=["Doctor Office"])
|
@router.get("/docOffices/{docOffic_id}", tags=["Doctor Office"])
|
||||||
async def read_docOffice_By_ID(docOffic_id: int, session: SessionContainer = Depends(verify_session())):
|
async def read_docOffice_By_ID(docOffic_id: int, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM doctor_offices WHERE iddoctor_offices=%s"
|
query = "SELECT * FROM doctor_offices WHERE iddoctor_offices=%s"
|
||||||
cursor.execute(query, (docOffic_id,))
|
cursor.execute(query, (docOffic_id,))
|
||||||
@@ -29,7 +27,7 @@ async def read_docOffice_By_ID(docOffic_id: int, session: SessionContainer = Dep
|
|||||||
# Get Doctors Office By user
|
# Get Doctors Office By user
|
||||||
@router.get("/docOffices/user/{user}", tags=["Doctor Office"])
|
@router.get("/docOffices/user/{user}", tags=["Doctor Office"])
|
||||||
async def read_docOffice_By_ID(user: str, session: SessionContainer = Depends(verify_session())):
|
async def read_docOffice_By_ID(user: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM users WHERE email=%s"
|
query = "SELECT * FROM users WHERE email=%s"
|
||||||
cursor.execute(query, (user,))
|
cursor.execute(query, (user,))
|
||||||
@@ -50,7 +48,7 @@ async def read_docOffice_By_ID(user: str, session: SessionContainer = Depends(ve
|
|||||||
# Get List of all Doctors Office
|
# Get List of all Doctors Office
|
||||||
@router.get("/docOffices/", tags=["Doctor Office"])
|
@router.get("/docOffices/", tags=["Doctor Office"])
|
||||||
async def read_All_Doctors_Office(session: SessionContainer = Depends(verify_session())):
|
async def read_All_Doctors_Office(session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM doctor_offices"
|
query = "SELECT * FROM doctor_offices"
|
||||||
cursor.execute(query)
|
cursor.execute(query)
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException, status
|
||||||
|
from sqlalchemy import desc
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import database
|
import mih_database.mihDbConnections
|
||||||
|
from mih_database.mihDbObjects import User, Business, BusinessRating
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
# class BusinessRatingUserGet(BaseModel):
|
# class BusinessRatingUserGet(BaseModel):
|
||||||
@@ -37,200 +42,254 @@ class BusinessRatingUpdateRequest(BaseModel):
|
|||||||
|
|
||||||
@router.get("/mzansi-directory/business-ratings/user/{app_id}/{business_id}", tags=["Mzansi Directory"])
|
@router.get("/mzansi-directory/business-ratings/user/{app_id}/{business_id}", tags=["Mzansi Directory"])
|
||||||
async def read_all_ratings_by_business_id(app_id: str,business_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
async def read_all_ratings_by_business_id(app_id: str,business_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAllConnect()
|
dbEngine = mih_database.mihDbConnections.dbAllConnect()
|
||||||
cursor = db.cursor()
|
dbSession = Session(dbEngine)
|
||||||
query = ""
|
try:
|
||||||
query += "SELECT business_ratings.idbusiness_ratings, business_ratings.app_id, business_ratings.business_id, "
|
queryResults = dbSession.query(BusinessRating, User).\
|
||||||
query += "business_ratings.rating_title, business_ratings.rating_description, business_ratings.rating_score, "
|
join(User, BusinessRating.app_id == User.app_id).\
|
||||||
query += "business_ratings.date_time, users.username as 'reviewer' "
|
filter(
|
||||||
query += "FROM mzansi_directory.business_ratings "
|
BusinessRating.business_id == business_id,
|
||||||
query += "inner join app_data.users "
|
BusinessRating.app_id == app_id
|
||||||
query += "on business_ratings.app_id = users.app_id "
|
).first()
|
||||||
query += "where business_ratings.business_id = %s and business_ratings.app_id = %s;"
|
if queryResults:
|
||||||
cursor.execute(query, (business_id,
|
rating_obj, user_obj = queryResults
|
||||||
app_id,))
|
# Return a single dictionary
|
||||||
item = cursor.fetchone() # Get only one row
|
return {
|
||||||
cursor.close()
|
"idbusiness_ratings": rating_obj.idbusiness_ratings,
|
||||||
db.close()
|
"app_id": rating_obj.app_id,
|
||||||
|
"business_id": rating_obj.business_id,
|
||||||
if item:
|
"rating_title": rating_obj.rating_title,
|
||||||
# Return a single dictionary
|
"rating_description": rating_obj.rating_description,
|
||||||
return {
|
"rating_score": rating_obj.rating_score,
|
||||||
"idbusiness_ratings": item[0],
|
"date_time": rating_obj.date_time,
|
||||||
"app_id": item[1],
|
"reviewer": user_obj.username,
|
||||||
"business_id": item[2],
|
}
|
||||||
"rating_title": item[3],
|
else:
|
||||||
"rating_description": item[4],
|
# Return an empty response or a specific message
|
||||||
"rating_score": item[5],
|
raise HTTPException(
|
||||||
"date_time": item[6],
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
"reviewer": item[7],
|
detail="Business rating not found for the given app_id and business_id."
|
||||||
}
|
)
|
||||||
else:
|
except HTTPException as http_exc:
|
||||||
# Return an empty response or a specific message
|
# Re-raise HTTPException directly if it was raised within the try block
|
||||||
return None
|
raise http_exc
|
||||||
# items = [
|
except Exception as e:
|
||||||
# {
|
print(f"An error occurred during the ORM query: {e}")
|
||||||
# "idbusiness_ratings": item[0],
|
if dbSession.is_active:
|
||||||
# "app_id": item[1],
|
dbSession.rollback()
|
||||||
# "business_id": item[2],
|
raise HTTPException(
|
||||||
# "rating_title": item[3],
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||||
# "rating_description": item[4],
|
detail="Failed to retrieve records due to an internal server error."
|
||||||
# "rating_score": item[5],
|
)
|
||||||
# "date_time": item[6],
|
finally:
|
||||||
# "reviewer": item[7],
|
dbSession.close()
|
||||||
# }
|
|
||||||
# for item in cursor.fetchall()
|
|
||||||
# ]
|
|
||||||
# cursor.close()
|
|
||||||
# db.close()
|
|
||||||
# return items[0]
|
|
||||||
|
|
||||||
@router.get("/mzansi-directory/business-ratings/all/{business_id}", tags=["Mzansi Directory"])
|
@router.get("/mzansi-directory/business-ratings/all/{business_id}", tags=["Mzansi Directory"])
|
||||||
async def read_all_ratings_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
async def read_all_ratings_by_business_id(business_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAllConnect()
|
dbEngine = mih_database.mihDbConnections.dbAllConnect()
|
||||||
cursor = db.cursor()
|
dbSession = Session(dbEngine)
|
||||||
query = ""
|
try:
|
||||||
query += "SELECT business_ratings.idbusiness_ratings, business_ratings.app_id, business_ratings.business_id, "
|
queryResults = dbSession.query(BusinessRating, User).\
|
||||||
query += "business_ratings.rating_title, business_ratings.rating_description, business_ratings.rating_score, "
|
join(User, BusinessRating.app_id == User.app_id).\
|
||||||
query += "business_ratings.date_time, users.username as 'reviewer' "
|
filter(
|
||||||
query += "FROM mzansi_directory.business_ratings "
|
BusinessRating.business_id == business_id,
|
||||||
query += "inner join app_data.users "
|
).order_by(
|
||||||
query += "on business_ratings.app_id = users.app_id "
|
desc(BusinessRating.date_time)
|
||||||
query += "where business_ratings.business_id = %s "
|
).all()
|
||||||
query += "order by business_ratings.date_time desc;"
|
response_data = []
|
||||||
cursor.execute(query, (business_id,))
|
for rating_obj, user_obj in queryResults:
|
||||||
items = [
|
response_data.append({
|
||||||
{
|
"idbusiness_ratings": rating_obj.idbusiness_ratings,
|
||||||
"idbusiness_ratings": item[0],
|
"app_id": rating_obj.app_id,
|
||||||
"app_id": item[1],
|
"business_id": rating_obj.business_id,
|
||||||
"business_id": item[2],
|
"rating_title": rating_obj.rating_title,
|
||||||
"rating_title": item[3],
|
"rating_description": rating_obj.rating_description,
|
||||||
"rating_description": item[4],
|
"rating_score": rating_obj.rating_score,
|
||||||
"rating_score": item[5],
|
"date_time": rating_obj.date_time,
|
||||||
"date_time": item[6],
|
"reviewer": user_obj.username,
|
||||||
"reviewer": item[7],
|
})
|
||||||
}
|
if len(response_data) > 0:
|
||||||
for item in cursor.fetchall()
|
return response_data
|
||||||
]
|
else:
|
||||||
cursor.close()
|
# Return an empty response or a specific message
|
||||||
db.close()
|
raise HTTPException(
|
||||||
return items
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="Business rating not found for the given business_id."
|
||||||
|
)
|
||||||
|
except HTTPException as http_exc:
|
||||||
|
# Re-raise HTTPException directly if it was raised within the try block
|
||||||
|
raise http_exc
|
||||||
|
except Exception as e:
|
||||||
|
print(f"An error occurred during the ORM query: {e}")
|
||||||
|
if dbSession.is_active:
|
||||||
|
dbSession.rollback()
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||||
|
detail="Failed to retrieve records due to an internal server error."
|
||||||
|
)
|
||||||
|
finally:
|
||||||
|
dbSession.close()
|
||||||
|
|
||||||
@router.post("/mzansi-directory/business-rating/insert/", tags=["Mzansi Directory"], status_code=201)
|
@router.post("/mzansi-directory/business-rating/insert/", tags=["Mzansi Directory"], status_code=201)
|
||||||
async def insert_loyalty_card(itemRequest : BusinessRatingInsertRequest): #, session: SessionContainer = Depends(verify_session())
|
async def insert_loyalty_card(itemRequest : BusinessRatingInsertRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAllConnect()
|
dbEngine = mih_database.mihDbConnections.dbAllConnect()
|
||||||
nowDateTime = datetime.now()
|
nowDateTime = datetime.now()
|
||||||
formatedDateTime = nowDateTime.strftime("%Y-%m-%d %H:%M:%S")
|
formatedDateTime = nowDateTime.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
cursor = db.cursor()
|
dbSession = Session(dbEngine)
|
||||||
try:
|
try:
|
||||||
# Get No Of reviews for business
|
# Get No Of reviews for business
|
||||||
businessReviewCountQuery = "select count(*) from mzansi_directory.business_ratings where business_ratings.business_id = %s"
|
businessReviewCountQueryResults = dbSession.query(BusinessRating).\
|
||||||
countData = (itemRequest.business_id,)
|
filter(
|
||||||
cursor.execute(businessReviewCountQuery, countData)
|
BusinessRating.business_id == itemRequest.business_id,
|
||||||
countResult = cursor.fetchone()
|
).all()
|
||||||
row_count = countResult[0] if countResult else 0
|
businessReviewCount = len(businessReviewCountQueryResults)
|
||||||
print(f"Number of rows in business_ratings: {row_count}")
|
print(f"Number of rows in business_ratings: {businessReviewCount}")
|
||||||
|
dbSession.flush() # Ensure the session is flushed before adding new records
|
||||||
# add business rating
|
# add business rating
|
||||||
addQuery = "insert into mzansi_directory.business_ratings "
|
new_rating = BusinessRating(
|
||||||
addQuery += "(business_ratings.app_id, business_ratings.business_id, business_ratings.rating_title, business_ratings.rating_description, business_ratings.rating_score, business_ratings.date_time) "
|
app_id=itemRequest.app_id,
|
||||||
addQuery += "values (%s, %s, %s, %s, %s, %s)"
|
business_id=itemRequest.business_id,
|
||||||
addQueryData = (itemRequest.app_id,
|
rating_title=itemRequest.rating_title,
|
||||||
itemRequest.business_id,
|
rating_description=itemRequest.rating_description,
|
||||||
itemRequest.rating_title,
|
rating_score=itemRequest.rating_score,
|
||||||
itemRequest.rating_description,
|
date_time=formatedDateTime
|
||||||
itemRequest.rating_score,
|
)
|
||||||
formatedDateTime,
|
dbSession.add(new_rating)
|
||||||
)
|
dbSession.flush() # Ensure the new rating is added to the session
|
||||||
cursor.execute(addQuery, addQueryData)
|
|
||||||
# Calc New Rating and update business rating
|
# Calc New Rating and update business rating
|
||||||
newRating = ((float(itemRequest.current_rating) * row_count) + float(itemRequest.rating_score)) / (row_count + 1)
|
newRating = ((float(itemRequest.current_rating) * businessReviewCount) + float(itemRequest.rating_score)) / (businessReviewCount + 1)
|
||||||
print(f"New Rating: {newRating}")
|
businessToUpdate = dbSession.query(Business).filter(Business.business_id == itemRequest.business_id).first()
|
||||||
updateBusinessQuery = "update app_data.business "
|
if businessToUpdate:
|
||||||
updateBusinessQuery += "set rating = %s "
|
businessToUpdate.rating = str(newRating)
|
||||||
updateBusinessQuery += "where business_id = %s"
|
dbSession.commit()
|
||||||
updateBusinessData = (newRating, itemRequest.business_id)
|
else:
|
||||||
cursor.execute(updateBusinessQuery, updateBusinessData)
|
# Return an empty response or a specific message
|
||||||
db.commit()
|
raise HTTPException(
|
||||||
except Exception as error:
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
print(error)
|
detail="Business not found for the given business_id."
|
||||||
raise HTTPException(status_code=404, detail="Failed to Create Record")
|
)
|
||||||
# return {"message": error}
|
except HTTPException as http_exc:
|
||||||
cursor.close()
|
# Re-raise HTTPException directly if it was raised within the try block
|
||||||
db.close()
|
raise http_exc
|
||||||
return {"message": "Successfully Created Record"}
|
except Exception as e:
|
||||||
|
print(f"An error occurred during the ORM query: {e}")
|
||||||
|
if dbSession.is_active:
|
||||||
|
dbSession.rollback()
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||||
|
detail="Failed to insert records due to an internal server error."
|
||||||
|
)
|
||||||
|
finally:
|
||||||
|
dbSession.close()
|
||||||
|
return {"message": "Successfully Created Record"}
|
||||||
|
|
||||||
@router.delete("/mzansi-directory/business-rating/delete/", tags=["Mzansi Directory"])
|
@router.delete("/mzansi-directory/business-rating/delete/", tags=["Mzansi Directory"])
|
||||||
async def Delete_loyalty_card(itemRequest : BusinessRatingDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Delete_loyalty_card(itemRequest : BusinessRatingDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAllConnect()
|
dbEngine = mih_database.mihDbConnections.dbAllConnect()
|
||||||
cursor = db.cursor()
|
dbSession = Session(dbEngine)
|
||||||
try:
|
try:
|
||||||
# Get No Of reviews for business
|
# Get No Of reviews for business
|
||||||
businessReviewCountQuery = "select count(*) from mzansi_directory.business_ratings where business_ratings.business_id = %s"
|
businessReviewCountQueryResults = dbSession.query(BusinessRating).\
|
||||||
countData = (itemRequest.business_id,)
|
filter(
|
||||||
cursor.execute(businessReviewCountQuery, countData)
|
BusinessRating.business_id == itemRequest.business_id,
|
||||||
countResult = cursor.fetchone()
|
).all()
|
||||||
row_count = countResult[0] if countResult else 0
|
businessReviewCount = len(businessReviewCountQueryResults)
|
||||||
print(f"Number of rows in business_ratings: {row_count}")
|
print(f"Number of rows in business_ratings: {businessReviewCount}")
|
||||||
# Delete business rating
|
dbSession.flush() # Ensure the session is flushed before adding new records
|
||||||
query = "delete from mzansi_directory.business_ratings "
|
# delete business rating
|
||||||
query += "where business_ratings.idbusiness_ratings=%s"
|
rating_to_delete = dbSession.query(BusinessRating).\
|
||||||
cursor.execute(query, (str(itemRequest.idbusiness_ratings),))
|
get(
|
||||||
|
itemRequest.idbusiness_ratings
|
||||||
|
)
|
||||||
|
if not rating_to_delete:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail=f"Business rating with ID {itemRequest.idbusiness_ratings} not found."
|
||||||
|
)
|
||||||
|
dbSession.delete(rating_to_delete)
|
||||||
|
dbSession.flush() # Ensure the new rating is added to the session
|
||||||
# Calc New Rating and update business rating
|
# Calc New Rating and update business rating
|
||||||
if(row_count <= 1):
|
newRating = ((float(itemRequest.current_rating) * businessReviewCount) - float(itemRequest.rating_score)) / (businessReviewCount - 1)
|
||||||
newRating = 0.0
|
businessToUpdate = dbSession.query(Business).filter(Business.business_id == itemRequest.business_id).first()
|
||||||
|
if businessToUpdate:
|
||||||
|
businessToUpdate.rating = str(newRating)
|
||||||
|
dbSession.commit()
|
||||||
else:
|
else:
|
||||||
newRating = ((float(itemRequest.current_rating) * row_count) - float(itemRequest.rating_score)) / (row_count - 1)
|
# Return an empty response or a specific message
|
||||||
print(f"New Rating: {newRating}")
|
raise HTTPException(
|
||||||
updateBusinessQuery = "update app_data.business "
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
updateBusinessQuery += "set rating = %s "
|
detail="Business not found for the given business_id."
|
||||||
updateBusinessQuery += "where business_id = %s"
|
)
|
||||||
updateBusinessData = (newRating, itemRequest.business_id)
|
except HTTPException as http_exc:
|
||||||
cursor.execute(updateBusinessQuery, updateBusinessData)
|
# Re-raise HTTPException directly if it was raised within the try block
|
||||||
db.commit()
|
raise http_exc
|
||||||
except Exception as error:
|
except Exception as e:
|
||||||
print(error)
|
print(f"An error occurred during the ORM query: {e}")
|
||||||
raise HTTPException(status_code=404, detail="Failed to Delete Record")
|
if dbSession.is_active:
|
||||||
cursor.close()
|
dbSession.rollback()
|
||||||
db.close()
|
raise HTTPException(
|
||||||
return {"message": "Successfully deleted Record"}
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||||
|
detail="Failed to insert records due to an internal server error."
|
||||||
|
)
|
||||||
|
finally:
|
||||||
|
dbSession.close()
|
||||||
|
return {"message": "Successfully Deleted Record"}
|
||||||
|
|
||||||
@router.put("/mzansi-directory/business-rating/update/", tags=["Mzansi Directory"])
|
@router.put("/mzansi-directory/business-rating/update/", tags=["Mzansi Directory"])
|
||||||
async def UpdatePatient(itemRequest : BusinessRatingUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
async def UpdatePatient(itemRequest : BusinessRatingUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbMzansiDirectoryConnect()
|
dbEngine = mih_database.mihDbConnections.dbAllConnect()
|
||||||
cursor = db.cursor()
|
|
||||||
nowDateTime = datetime.now()
|
nowDateTime = datetime.now()
|
||||||
formatedDateTime = nowDateTime.strftime("%Y-%m-%d %H:%M:%S")
|
formatedDateTime = nowDateTime.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
dbSession = Session(dbEngine)
|
||||||
try:
|
try:
|
||||||
# Get No Of reviews for business
|
# Get No Of reviews for business
|
||||||
businessReviewCountQuery = "select count(*) from mzansi_directory.business_ratings where business_ratings.business_id = %s"
|
businessReviewCountQueryResults = dbSession.query(BusinessRating).\
|
||||||
countData = (itemRequest.business_id,)
|
filter(
|
||||||
cursor.execute(businessReviewCountQuery, countData)
|
BusinessRating.business_id == itemRequest.business_id,
|
||||||
countResult = cursor.fetchone()
|
).all()
|
||||||
row_count = countResult[0] if countResult else 0
|
businessReviewCount = len(businessReviewCountQueryResults)
|
||||||
print(f"Number of rows in business_ratings: {row_count}")
|
print(f"Number of rows in business_ratings: {businessReviewCount}")
|
||||||
|
dbSession.flush() # Ensure the session is flushed before adding new records
|
||||||
# Update business rating
|
# Update business rating
|
||||||
query = "update business_ratings "
|
rating_to_update = dbSession.query(BusinessRating).\
|
||||||
query += "set rating_title=%s, rating_description=%s, rating_score=%s, date_time=%s "
|
get(
|
||||||
query += "where idbusiness_ratings=%s"
|
itemRequest.idbusiness_ratings
|
||||||
notetData = (itemRequest.rating_title,
|
)
|
||||||
itemRequest.rating_description,
|
if rating_to_update:
|
||||||
itemRequest.rating_new_score,
|
rating_to_update.rating_title = itemRequest.rating_title
|
||||||
formatedDateTime,
|
rating_to_update.rating_description = itemRequest.rating_description
|
||||||
itemRequest.idbusiness_ratings,
|
rating_to_update.rating_score = itemRequest.rating_new_score
|
||||||
)
|
rating_to_update.date_time = formatedDateTime
|
||||||
cursor.execute(query, notetData)
|
dbSession.flush() # Ensure the new rating is added to the session
|
||||||
|
else:
|
||||||
|
# Return an empty response or a specific message
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
detail="Business not found for the given business_id."
|
||||||
|
)
|
||||||
# Calc New Rating and update business rating
|
# Calc New Rating and update business rating
|
||||||
# add new rating and old rating params
|
newRating = ((float(itemRequest.current_rating) * businessReviewCount) - float(itemRequest.rating_old_score) + float(itemRequest.rating_new_score)) / (businessReviewCount)
|
||||||
newRating = ((float(itemRequest.current_rating) * row_count) - float(itemRequest.rating_old_score) + float(itemRequest.rating_new_score)) / (row_count)
|
businessToUpdate = dbSession.query(Business).filter(Business.business_id == itemRequest.business_id).first()
|
||||||
print(f"New Rating: {newRating}")
|
if businessToUpdate:
|
||||||
updateBusinessQuery = "update app_data.business "
|
businessToUpdate.rating = str(newRating)
|
||||||
updateBusinessQuery += "set rating = %s "
|
dbSession.commit()
|
||||||
updateBusinessQuery += "where business_id = %s"
|
else:
|
||||||
updateBusinessData = (newRating, itemRequest.business_id)
|
# Return an empty response or a specific message
|
||||||
cursor.execute(updateBusinessQuery, updateBusinessData)
|
raise HTTPException(
|
||||||
db.commit()
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
except Exception as error:
|
detail="Business not found for the given business_id."
|
||||||
raise HTTPException(status_code=404, detail="Failed to Update Record")
|
)
|
||||||
cursor.close()
|
except HTTPException as http_exc:
|
||||||
db.close()
|
# Re-raise HTTPException directly if it was raised within the try block
|
||||||
return {"message": "Successfully Updated Record"}
|
raise http_exc
|
||||||
|
except Exception as e:
|
||||||
|
print(f"An error occurred during the ORM query: {e}")
|
||||||
|
if dbSession.is_active:
|
||||||
|
dbSession.rollback()
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||||
|
detail="Failed to insert records due to an internal server error."
|
||||||
|
)
|
||||||
|
finally:
|
||||||
|
dbSession.close()
|
||||||
|
return {"message": "Successfully wUpdated Record"}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from datetime import date
|
from datetime import date
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
@@ -38,7 +38,7 @@ class MzansiWalletUpdateRequest(BaseModel):
|
|||||||
# Get List of all loyalty cards by user
|
# Get List of all loyalty cards by user
|
||||||
@router.get("/mzasni-wallet/loyalty-cards/{app_id}", tags=["Mzansi Wallet"])
|
@router.get("/mzasni-wallet/loyalty-cards/{app_id}", tags=["Mzansi Wallet"])
|
||||||
async def read_all_loyalty_cards_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
async def read_all_loyalty_cards_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiWalletConnect()
|
db = mih_database.dbConnection.dbMzansiWalletConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM loyalty_cards where app_id = %s ORDER BY shop_name Asc"
|
query = "SELECT * FROM loyalty_cards where app_id = %s ORDER BY shop_name Asc"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -61,7 +61,7 @@ async def read_all_loyalty_cards_by_app_id(app_id: str, session: SessionContaine
|
|||||||
# Get List of favourite loyalty cards by user
|
# Get List of favourite loyalty cards by user
|
||||||
@router.get("/mzasni-wallet/loyalty-cards/favourites/{app_id}", tags=["Mzansi Wallet"])
|
@router.get("/mzasni-wallet/loyalty-cards/favourites/{app_id}", tags=["Mzansi Wallet"])
|
||||||
async def read_favourite_loyalty_cards_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
async def read_favourite_loyalty_cards_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiWalletConnect()
|
db = mih_database.dbConnection.dbMzansiWalletConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM loyalty_cards where app_id = %s and favourite != '' ORDER BY priority_index Asc"
|
query = "SELECT * FROM loyalty_cards where app_id = %s and favourite != '' ORDER BY priority_index Asc"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -84,7 +84,7 @@ async def read_favourite_loyalty_cards_by_app_id(app_id: str, session: SessionCo
|
|||||||
# Get List of all notes by patient
|
# Get List of all notes by patient
|
||||||
# @router.get("/notes/patients-docOffice/", tags="patients_notes")
|
# @router.get("/notes/patients-docOffice/", tags="patients_notes")
|
||||||
# async def read_all_patientsby(itemRequest: noteRequest, session: SessionContainer = Depends(verify_session())):
|
# async def read_all_patientsby(itemRequest: noteRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "select patient_notes.idpatient_notes, patient_notes.note_name, patient_notes.note_text, patient_notes.patient_id, patient_notes.insert_date, patients.doc_office_id "
|
# query = "select patient_notes.idpatient_notes, patient_notes.note_name, patient_notes.note_text, patient_notes.patient_id, patient_notes.insert_date, patients.doc_office_id "
|
||||||
# query += "from patient_manager.patient_notes "
|
# query += "from patient_manager.patient_notes "
|
||||||
@@ -108,7 +108,7 @@ async def read_favourite_loyalty_cards_by_app_id(app_id: str, session: SessionCo
|
|||||||
# Insert loyalty cards into table
|
# Insert loyalty cards into table
|
||||||
@router.post("/mzasni-wallet/loyalty-cards/insert/", tags=["Mzansi Wallet"], status_code=201)
|
@router.post("/mzasni-wallet/loyalty-cards/insert/", tags=["Mzansi Wallet"], status_code=201)
|
||||||
async def insert_loyalty_card(itemRequest : MzansiWalletInsertRequest): #, session: SessionContainer = Depends(verify_session())
|
async def insert_loyalty_card(itemRequest : MzansiWalletInsertRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbMzansiWalletConnect()
|
db = mih_database.dbConnection.dbMzansiWalletConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into loyalty_cards "
|
query = "insert into loyalty_cards "
|
||||||
query += "(app_id, shop_name, card_number, favourite, priority_index, nickname) "
|
query += "(app_id, shop_name, card_number, favourite, priority_index, nickname) "
|
||||||
@@ -135,7 +135,7 @@ async def insert_loyalty_card(itemRequest : MzansiWalletInsertRequest): #, sessi
|
|||||||
@router.delete("/mzasni-wallet/loyalty-cards/delete/", tags=["Mzansi Wallet"])
|
@router.delete("/mzasni-wallet/loyalty-cards/delete/", tags=["Mzansi Wallet"])
|
||||||
async def Delete_loyalty_card(itemRequest : LoyaltyCardDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Delete_loyalty_card(itemRequest : LoyaltyCardDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
db = database.dbConnection.dbMzansiWalletConnect()
|
db = mih_database.dbConnection.dbMzansiWalletConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from loyalty_cards "
|
query = "delete from loyalty_cards "
|
||||||
query += "where idloyalty_cards=%s"
|
query += "where idloyalty_cards=%s"
|
||||||
@@ -155,7 +155,7 @@ async def Delete_loyalty_card(itemRequest : LoyaltyCardDeleteRequest, session: S
|
|||||||
@router.put("/mzasni-wallet/loyalty-cards/update/", tags=["Mzansi Wallet"])
|
@router.put("/mzasni-wallet/loyalty-cards/update/", tags=["Mzansi Wallet"])
|
||||||
async def UpdatePatient(itemRequest : MzansiWalletUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
async def UpdatePatient(itemRequest : MzansiWalletUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
today = date.today()
|
today = date.today()
|
||||||
db = database.dbConnection.dbMzansiWalletConnect()
|
db = mih_database.dbConnection.dbMzansiWalletConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update loyalty_cards "
|
query = "update loyalty_cards "
|
||||||
query += "set favourite=%s, priority_index=%s, nickname=%s, card_number=%s "
|
query += "set favourite=%s, priority_index=%s, nickname=%s, card_number=%s "
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import mysql.connector
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
@@ -43,7 +43,7 @@ class notificationInsertRequest(BaseModel):
|
|||||||
# Get Notifications By app ID
|
# Get Notifications By app ID
|
||||||
@router.get("/notifications/{app_id}", tags=["Notifications"])
|
@router.get("/notifications/{app_id}", tags=["Notifications"])
|
||||||
async def read_notifications_By_app_ID(app_id: str, amount: int, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
async def read_notifications_By_app_ID(app_id: str, amount: int, session: SessionContainer = Depends(verify_session())): # , session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
#query = "SELECT * FROM patients"
|
#query = "SELECT * FROM patients"
|
||||||
query = "Select * from notifications "
|
query = "Select * from notifications "
|
||||||
@@ -72,7 +72,7 @@ async def read_notifications_By_app_ID(app_id: str, amount: int, session: Sessio
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/notifications/insert/", tags=["Notifications"], status_code=201)
|
@router.post("/notifications/insert/", tags=["Notifications"], status_code=201)
|
||||||
async def insert_Patient(itemRequest : notificationInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_Patient(itemRequest : notificationInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
now = datetime.now() + timedelta(hours=2)
|
now = datetime.now() + timedelta(hours=2)
|
||||||
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
print(notificationDateTime)
|
print(notificationDateTime)
|
||||||
@@ -103,7 +103,7 @@ async def insert_Patient(itemRequest : notificationInsertRequest, session: Sessi
|
|||||||
# Update Patient on table
|
# Update Patient on table
|
||||||
@router.put("/notifications/update/{notification_id}", tags=["Notifications"])
|
@router.put("/notifications/update/{notification_id}", tags=["Notifications"])
|
||||||
async def Update_Patient(notification_id : str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Update_Patient(notification_id : str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update notifications "
|
query = "update notifications "
|
||||||
query += "set notification_read=%s "
|
query += "set notification_read=%s "
|
||||||
@@ -124,7 +124,7 @@ async def Update_Patient(notification_id : str, session: SessionContainer = Depe
|
|||||||
# # delete Patient on table
|
# # delete Patient on table
|
||||||
# @router.delete("/patients/delete/", tags=["Patients"])
|
# @router.delete("/patients/delete/", tags=["Patients"])
|
||||||
# async def Delete_Patient(itemRequest : patientDeleteRequest, session: SessionContainer = Depends(verify_session())):
|
# async def Delete_Patient(itemRequest : patientDeleteRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "delete from patients "
|
# query = "delete from patients "
|
||||||
# query += "where app_id=%s"
|
# query += "where app_id=%s"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import date, datetime, timedelta
|
from datetime import date, datetime, timedelta
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -29,7 +29,7 @@ class accessRequestReapplyRequest(BaseModel):
|
|||||||
|
|
||||||
@router.get("/access-requests/{access_type}/check/{business_id}", tags=["Patient Access"])
|
@router.get("/access-requests/{access_type}/check/{business_id}", tags=["Patient Access"])
|
||||||
async def check_business_id_has_access(access_type: str,business_id: str, app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def check_business_id_has_access(access_type: str,business_id: str, app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "select "
|
query = "select "
|
||||||
query += "patient_business_access.business_id, business.Name, "
|
query += "patient_business_access.business_id, business.Name, "
|
||||||
@@ -73,7 +73,7 @@ async def check_business_id_has_access(access_type: str,business_id: str, app_id
|
|||||||
|
|
||||||
@router.get("/access-requests/business/{access_type}/{business_id}", tags=["Patient Access"])
|
@router.get("/access-requests/business/{access_type}/{business_id}", tags=["Patient Access"])
|
||||||
async def read_all_patient_access_by_business_id(access_type: str,business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_patient_access_by_business_id(access_type: str,business_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "select "
|
query = "select "
|
||||||
query += "patient_business_access.business_id, business.Name, "
|
query += "patient_business_access.business_id, business.Name, "
|
||||||
@@ -115,7 +115,7 @@ async def read_all_patient_access_by_business_id(access_type: str,business_id: s
|
|||||||
|
|
||||||
@router.get("/access-requests/personal/{access_type}/{app_id}", tags=["Patient Access"])
|
@router.get("/access-requests/personal/{access_type}/{app_id}", tags=["Patient Access"])
|
||||||
async def read_all_patient_access_by_app_id(access_type: str,app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_patient_access_by_app_id(access_type: str,app_id: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "select "
|
query = "select "
|
||||||
query += "patient_business_access.business_id, business.Name, "
|
query += "patient_business_access.business_id, business.Name, "
|
||||||
@@ -158,7 +158,7 @@ async def read_all_patient_access_by_app_id(access_type: str,app_id: str, sessio
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/access-requests/insert/", tags=["Patient Access"], status_code=201)
|
@router.post("/access-requests/insert/", tags=["Patient Access"], status_code=201)
|
||||||
async def insert_Patient_access(itemRequest : accessRequestInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_Patient_access(itemRequest : accessRequestInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbDataAccessConnect()
|
db = mih_database.dbConnection.dbDataAccessConnect()
|
||||||
now = datetime.now() + timedelta(hours=2)
|
now = datetime.now() + timedelta(hours=2)
|
||||||
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
print(notificationDateTime)
|
print(notificationDateTime)
|
||||||
@@ -190,7 +190,7 @@ async def insert_Patient_access(itemRequest : accessRequestInsertRequest, sessio
|
|||||||
# Update Patient on table
|
# Update Patient on table
|
||||||
@router.put("/access-requests/update/permission/", tags=["Patient Access"])
|
@router.put("/access-requests/update/permission/", tags=["Patient Access"])
|
||||||
async def Update_Patient_access(itemRequest: accessRequestUpdateRequest): #, session: SessionContainer = Depends(verify_session())
|
async def Update_Patient_access(itemRequest: accessRequestUpdateRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbDataAccessConnect()
|
db = mih_database.dbConnection.dbDataAccessConnect()
|
||||||
now = datetime.now() + timedelta(hours=2)
|
now = datetime.now() + timedelta(hours=2)
|
||||||
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
print(notificationDateTime)
|
print(notificationDateTime)
|
||||||
@@ -218,7 +218,7 @@ async def Update_Patient_access(itemRequest: accessRequestUpdateRequest): #, ses
|
|||||||
# Reapply Patient on table
|
# Reapply Patient on table
|
||||||
@router.put("/access-requests/re-apply/", tags=["Patient Access"])
|
@router.put("/access-requests/re-apply/", tags=["Patient Access"])
|
||||||
async def Reapply_Patient_access(itemRequest: accessRequestReapplyRequest): #, session: SessionContainer = Depends(verify_session())
|
async def Reapply_Patient_access(itemRequest: accessRequestReapplyRequest): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbDataAccessConnect()
|
db = mih_database.dbConnection.dbDataAccessConnect()
|
||||||
now = datetime.now() + timedelta(hours=2)
|
now = datetime.now() + timedelta(hours=2)
|
||||||
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
notificationDateTime = now.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
print(notificationDateTime)
|
print(notificationDateTime)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
@@ -46,7 +46,7 @@ class patientDeleteRequest(BaseModel):
|
|||||||
# # Get Patient By ID Number
|
# # Get Patient By ID Number
|
||||||
# @router.get("/patients/search/{search}", tags=["Patients"])
|
# @router.get("/patients/search/{search}", tags=["Patients"])
|
||||||
# async def read_patientByID(search: str): #, session: SessionContainer = Depends(verify_session())
|
# async def read_patientByID(search: str): #, session: SessionContainer = Depends(verify_session())
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patients WHERE idpatients like %%%s%%" % search
|
# query = "SELECT * FROM patients WHERE idpatients like %%%s%%" % search
|
||||||
# #return {"query": query}
|
# #return {"query": query}
|
||||||
@@ -72,7 +72,7 @@ class patientDeleteRequest(BaseModel):
|
|||||||
# Get Patient By app ID
|
# Get Patient By app ID
|
||||||
@router.get("/patients/{app_id}", tags=["Patients"])
|
@router.get("/patients/{app_id}", tags=["Patients"])
|
||||||
async def read_patient_By_app_ID(app_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_patient_By_app_ID(app_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM patients WHERE app_id=%s"
|
query = "SELECT * FROM patients WHERE app_id=%s"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -99,7 +99,7 @@ async def read_patient_By_app_ID(app_id: str, session: SessionContainer = Depend
|
|||||||
# # Get Patient By ID Number
|
# # Get Patient By ID Number
|
||||||
# @router.get("/patients/email/{email}", tags="patients")
|
# @router.get("/patients/email/{email}", tags="patients")
|
||||||
# async def read_patientByID(email: str, session: SessionContainer = Depends(verify_session())):
|
# async def read_patientByID(email: str, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patients WHERE lower(email)=%s"
|
# query = "SELECT * FROM patients WHERE lower(email)=%s"
|
||||||
# cursor.execute(query, (email.lower(),))
|
# cursor.execute(query, (email.lower(),))
|
||||||
@@ -126,7 +126,7 @@ async def read_patient_By_app_ID(app_id: str, session: SessionContainer = Depend
|
|||||||
# Get List of all patients
|
# Get List of all patients
|
||||||
@router.get("/patients/search/{search}", tags=["Patients"])
|
@router.get("/patients/search/{search}", tags=["Patients"])
|
||||||
async def read_all_patientsByUser(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_patientsByUser(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
#query = "SELECT * FROM patients"
|
#query = "SELECT * FROM patients"
|
||||||
query = "Select * from patients "
|
query = "Select * from patients "
|
||||||
@@ -160,7 +160,7 @@ async def read_all_patientsByUser(search: str, session: SessionContainer = Depen
|
|||||||
# # Get List of all patients
|
# # Get List of all patients
|
||||||
# @router.get("/patients/", tags="patients")
|
# @router.get("/patients/", tags="patients")
|
||||||
# async def read_all_patients(session: SessionContainer = Depends(verify_session())):
|
# async def read_all_patients(session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patients"
|
# query = "SELECT * FROM patients"
|
||||||
# cursor.execute(query)
|
# cursor.execute(query)
|
||||||
@@ -187,7 +187,7 @@ async def read_all_patientsByUser(search: str, session: SessionContainer = Depen
|
|||||||
# # Get List of all patients by Doctors Office
|
# # Get List of all patients by Doctors Office
|
||||||
# @router.get("/patients/docOffice/{docoff_id}", tags="patients")
|
# @router.get("/patients/docOffice/{docoff_id}", tags="patients")
|
||||||
# async def read_all_patientsby(docoff_id: str, session: SessionContainer = Depends(verify_session())):
|
# async def read_all_patientsby(docoff_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patients where doc_office_id=%s"
|
# query = "SELECT * FROM patients where doc_office_id=%s"
|
||||||
# cursor.execute(query, (docoff_id,))
|
# cursor.execute(query, (docoff_id,))
|
||||||
@@ -214,7 +214,7 @@ async def read_all_patientsByUser(search: str, session: SessionContainer = Depen
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/patients/insert/", tags=["Patients"], status_code=201)
|
@router.post("/patients/insert/", tags=["Patients"], status_code=201)
|
||||||
async def insert_Patient(itemRequest : patientInsertRequest, session: SessionContainer = Depends(verify_session())):
|
async def insert_Patient(itemRequest : patientInsertRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into patients "
|
query = "insert into patients "
|
||||||
query += "(id_no, first_name, last_name, email, cell_no, medical_aid, "
|
query += "(id_no, first_name, last_name, email, cell_no, medical_aid, "
|
||||||
@@ -247,7 +247,7 @@ async def insert_Patient(itemRequest : patientInsertRequest, session: SessionCon
|
|||||||
# Update Patient on table
|
# Update Patient on table
|
||||||
@router.put("/patients/update/", tags=["Patients"])
|
@router.put("/patients/update/", tags=["Patients"])
|
||||||
async def Update_Patient(itemRequest : patientUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
async def Update_Patient(itemRequest : patientUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update patients "
|
query = "update patients "
|
||||||
query += "set id_no=%s, first_name=%s, last_name=%s, email=%s, cell_no=%s, medical_aid=%s, "
|
query += "set id_no=%s, first_name=%s, last_name=%s, email=%s, cell_no=%s, medical_aid=%s, "
|
||||||
@@ -281,7 +281,7 @@ async def Update_Patient(itemRequest : patientUpdateRequest, session: SessionCon
|
|||||||
# delete Patient on table
|
# delete Patient on table
|
||||||
@router.delete("/patients/delete/", tags=["Patients"])
|
@router.delete("/patients/delete/", tags=["Patients"])
|
||||||
async def Delete_Patient(itemRequest : patientDeleteRequest, session: SessionContainer = Depends(verify_session())):
|
async def Delete_Patient(itemRequest : patientDeleteRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from patients "
|
query = "delete from patients "
|
||||||
query += "where app_id=%s"
|
query += "where app_id=%s"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import date
|
from datetime import date
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -22,7 +22,7 @@ class fileInsertRequest(BaseModel):
|
|||||||
# # Get List of all files
|
# # Get List of all files
|
||||||
# @router.get("/files/patients/", tags="patients_files")
|
# @router.get("/files/patients/", tags="patients_files")
|
||||||
# async def read_all_files(session: SessionContainer = Depends(verify_session())):
|
# async def read_all_files(session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patient_files"
|
# query = "SELECT * FROM patient_files"
|
||||||
# cursor.execute(query)
|
# cursor.execute(query)
|
||||||
@@ -43,7 +43,7 @@ class fileInsertRequest(BaseModel):
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/patient_files/get/{app_id}", tags=["Patients Files"])
|
@router.get("/patient_files/get/{app_id}", tags=["Patients Files"])
|
||||||
async def read_all_patient_files_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_all_patient_files_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM patient_files where app_id = %s ORDER BY insert_date DESC"
|
query = "SELECT * FROM patient_files where app_id = %s ORDER BY insert_date DESC"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -64,7 +64,7 @@ async def read_all_patient_files_by_app_id(app_id: str, session: SessionContaine
|
|||||||
# # Get List of all files by patient & DocOffice
|
# # Get List of all files by patient & DocOffice
|
||||||
# @router.get("/files/patients-docOffice/", tags="patients_files")
|
# @router.get("/files/patients-docOffice/", tags="patients_files")
|
||||||
# async def read_all_files_by_patient(itemRequest: fileRequest, session: SessionContainer = Depends(verify_session())):
|
# async def read_all_files_by_patient(itemRequest: fileRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "select patient_files.idpatient_files, patient_files.file_path, patient_files.file_name, patient_files.patient_id, patient_files.insert_date, patients.doc_office_id "
|
# query = "select patient_files.idpatient_files, patient_files.file_path, patient_files.file_name, patient_files.patient_id, patient_files.insert_date, patients.doc_office_id "
|
||||||
# query += "from patient_manager.patient_files "
|
# query += "from patient_manager.patient_files "
|
||||||
@@ -92,7 +92,7 @@ async def read_all_patient_files_by_app_id(app_id: str, session: SessionContaine
|
|||||||
@router.delete("/patient_files/delete/", tags=["Patients Files"])
|
@router.delete("/patient_files/delete/", tags=["Patients Files"])
|
||||||
async def Delete_Patient_File(itemRequest : fileDeleteRequest, session: SessionContainer = Depends(verify_session())): #session: SessionContainer = Depends(verify_session())
|
async def Delete_Patient_File(itemRequest : fileDeleteRequest, session: SessionContainer = Depends(verify_session())): #session: SessionContainer = Depends(verify_session())
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from patient_files "
|
query = "delete from patient_files "
|
||||||
query += "where idpatient_files=%s"
|
query += "where idpatient_files=%s"
|
||||||
@@ -111,7 +111,7 @@ async def Delete_Patient_File(itemRequest : fileDeleteRequest, session: SessionC
|
|||||||
@router.post("/patient_files/insert/", tags=["Patients Files"], status_code=201)
|
@router.post("/patient_files/insert/", tags=["Patients Files"], status_code=201)
|
||||||
async def insert_Patient_Files(itemRequest : fileInsertRequest, session: SessionContainer = Depends(verify_session())):
|
async def insert_Patient_Files(itemRequest : fileInsertRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
today = date.today()
|
today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into patient_files "
|
query = "insert into patient_files "
|
||||||
query += "(file_path, file_name, insert_date, app_id) "
|
query += "(file_path, file_name, insert_date, app_id) "
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import mysql.connector
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from datetime import date
|
from datetime import date
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
@@ -32,7 +32,7 @@ class patientNoteUpdateRequest(BaseModel):
|
|||||||
# Get List of all notes
|
# Get List of all notes
|
||||||
# @router.get("/notes/patients/", tags="patients_notes")
|
# @router.get("/notes/patients/", tags="patients_notes")
|
||||||
# async def read_all_notes(session: SessionContainer = Depends(verify_session())):
|
# async def read_all_notes(session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM patient_notes"
|
# query = "SELECT * FROM patient_notes"
|
||||||
# cursor.execute(query)
|
# cursor.execute(query)
|
||||||
@@ -52,7 +52,7 @@ class patientNoteUpdateRequest(BaseModel):
|
|||||||
# Get List of all notes by patient
|
# Get List of all notes by patient
|
||||||
@router.get("/notes/patients/{app_id}", tags=["Patients Notes"])
|
@router.get("/notes/patients/{app_id}", tags=["Patients Notes"])
|
||||||
async def read_all_patient_notes_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_all_patient_notes_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM patient_notes where app_id = %s ORDER BY insert_date DESC"
|
query = "SELECT * FROM patient_notes where app_id = %s ORDER BY insert_date DESC"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -75,7 +75,7 @@ async def read_all_patient_notes_by_app_id(app_id: str, session: SessionContaine
|
|||||||
# Get List of all notes by patient
|
# Get List of all notes by patient
|
||||||
# @router.get("/notes/patients-docOffice/", tags="patients_notes")
|
# @router.get("/notes/patients-docOffice/", tags="patients_notes")
|
||||||
# async def read_all_patientsby(itemRequest: noteRequest, session: SessionContainer = Depends(verify_session())):
|
# async def read_all_patientsby(itemRequest: noteRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "select patient_notes.idpatient_notes, patient_notes.note_name, patient_notes.note_text, patient_notes.patient_id, patient_notes.insert_date, patients.doc_office_id "
|
# query = "select patient_notes.idpatient_notes, patient_notes.note_name, patient_notes.note_text, patient_notes.patient_id, patient_notes.insert_date, patients.doc_office_id "
|
||||||
# query += "from patient_manager.patient_notes "
|
# query += "from patient_manager.patient_notes "
|
||||||
@@ -100,7 +100,7 @@ async def read_all_patient_notes_by_app_id(app_id: str, session: SessionContaine
|
|||||||
@router.post("/notes/insert/", tags=["Patients Notes"], status_code=201)
|
@router.post("/notes/insert/", tags=["Patients Notes"], status_code=201)
|
||||||
async def insert_Patient_Note(itemRequest : patientNoteInsertRequest, session: SessionContainer = Depends(verify_session())):
|
async def insert_Patient_Note(itemRequest : patientNoteInsertRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
today = date.today()
|
today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into patient_notes "
|
query = "insert into patient_notes "
|
||||||
query += "(note_name, note_text, insert_date, doc_office, doctor, app_id) "
|
query += "(note_name, note_text, insert_date, doc_office, doctor, app_id) "
|
||||||
@@ -126,7 +126,7 @@ async def insert_Patient_Note(itemRequest : patientNoteInsertRequest, session: S
|
|||||||
@router.delete("/notes/delete/", tags=["Patients Notes"])
|
@router.delete("/notes/delete/", tags=["Patients Notes"])
|
||||||
async def Delete_Patient_note(itemRequest : noteDeleteRequest, session: SessionContainer = Depends(verify_session()) ): #session: SessionContainer = Depends(verify_session())
|
async def Delete_Patient_note(itemRequest : noteDeleteRequest, session: SessionContainer = Depends(verify_session()) ): #session: SessionContainer = Depends(verify_session())
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from patient_notes "
|
query = "delete from patient_notes "
|
||||||
query += "where idpatient_notes=%s"
|
query += "where idpatient_notes=%s"
|
||||||
@@ -145,7 +145,7 @@ async def Delete_Patient_note(itemRequest : noteDeleteRequest, session: SessionC
|
|||||||
# @router.put("/notes/update/", tags="patients_notes")
|
# @router.put("/notes/update/", tags="patients_notes")
|
||||||
# async def UpdatePatient(itemRequest : patientNoteUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
# async def UpdatePatient(itemRequest : patientNoteUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
# today = date.today()
|
# today = date.today()
|
||||||
# db = database.dbConnection.dbPatientManagerConnect()
|
# db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "update patient_notes "
|
# query = "update patient_notes "
|
||||||
# query += "set note_name=%s, note_text=%s, patient_id=%s, insert_date=%s "
|
# query += "set note_name=%s, note_text=%s, patient_id=%s, insert_date=%s "
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import mysql.connector
|
import mysql.connector
|
||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
from datetime import datetime, timedelta, date
|
from datetime import datetime, timedelta, date
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
@@ -31,7 +31,7 @@ class queueDeleteRequest(BaseModel):
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/queue/appointments/business/{business_id}", tags=["Patients Queue"])
|
@router.get("/queue/appointments/business/{business_id}", tags=["Patients Queue"])
|
||||||
async def read_all_patient_queue_by_business_id(business_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_patient_queue_by_business_id(business_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
||||||
#print("request date: " + str(requestDate))
|
#print("request date: " + str(requestDate))
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
@@ -73,7 +73,7 @@ async def read_all_patient_queue_by_business_id(business_id: str, date: str, ses
|
|||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.get("/queue/appointments/personal/{app_id}", tags=["Patients Queue"])
|
@router.get("/queue/appointments/personal/{app_id}", tags=["Patients Queue"])
|
||||||
async def read_all_patient_queue_by_business_id(app_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_patient_queue_by_business_id(app_id: str, date: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
requestDate = datetime.strptime(date, '%Y-%m-%d').date()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT patient_queue.idpatient_queue, patient_queue.business_id, "
|
query = "SELECT patient_queue.idpatient_queue, patient_queue.business_id, "
|
||||||
@@ -109,7 +109,7 @@ async def read_all_patient_queue_by_business_id(app_id: str, date: str, session:
|
|||||||
@router.post("/queue/appointment/insert/", tags=["Patients Queue"], status_code=201)
|
@router.post("/queue/appointment/insert/", tags=["Patients Queue"], status_code=201)
|
||||||
async def insert_Patient_Files(itemRequest : queueInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def insert_Patient_Files(itemRequest : queueInsertRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into patient_queue "
|
query = "insert into patient_queue "
|
||||||
query += "(business_id, app_id, date_time) "
|
query += "(business_id, app_id, date_time) "
|
||||||
@@ -134,7 +134,7 @@ async def Update_Queue(itemRequest : queueUpdateRequest, session: SessionContain
|
|||||||
|
|
||||||
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
date_time = itemRequest.date + " " + itemRequest.time + ":00"
|
||||||
|
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update patient_queue "
|
query = "update patient_queue "
|
||||||
query += "set date_time=%s "
|
query += "set date_time=%s "
|
||||||
@@ -155,7 +155,7 @@ async def Update_Queue(itemRequest : queueUpdateRequest, session: SessionContain
|
|||||||
# Update Patient on table
|
# Update Patient on table
|
||||||
@router.delete("/queue/appointment/delete/", tags=["Patients Queue"])
|
@router.delete("/queue/appointment/delete/", tags=["Patients Queue"])
|
||||||
async def Delete_Queue(itemRequest : queueDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def Delete_Queue(itemRequest : queueDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbPatientManagerConnect()
|
db = mih_database.dbConnection.dbPatientManagerConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "delete from patient_queue "
|
query = "delete from patient_queue "
|
||||||
query += "where idpatient_queue=%s"
|
query += "where idpatient_queue=%s"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
#from ..database import dbConnection
|
#from ..mih_database import dbConnection
|
||||||
import database
|
import mih_database
|
||||||
#SuperToken Auth from front end
|
#SuperToken Auth from front end
|
||||||
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
from supertokens_python.recipe.session.framework.fastapi import verify_session
|
||||||
from supertokens_python.recipe.session import SessionContainer
|
from supertokens_python.recipe.session import SessionContainer
|
||||||
@@ -9,7 +9,7 @@ from supertokens_python.asyncio import delete_user
|
|||||||
|
|
||||||
from fastapi import Depends
|
from fastapi import Depends
|
||||||
|
|
||||||
import database.dbConnection
|
import mih_database.dbConnection
|
||||||
import Minio_Storage.minioConnection
|
import Minio_Storage.minioConnection
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
@@ -46,7 +46,7 @@ class userDeleteRequest(BaseModel):
|
|||||||
# #get user by email & doc Office ID
|
# #get user by email & doc Office ID
|
||||||
# @router.get("/users/profile/{email}", tags="users")
|
# @router.get("/users/profile/{email}", tags="users")
|
||||||
# async def read_all_users(email: str, session: SessionContainer = Depends(verify_session())):
|
# async def read_all_users(email: str, session: SessionContainer = Depends(verify_session())):
|
||||||
# db = database.dbConnection.dbAppDataConnect()
|
# db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
# cursor = db.cursor()
|
# cursor = db.cursor()
|
||||||
# query = "SELECT * FROM users where email = %s"
|
# query = "SELECT * FROM users where email = %s"
|
||||||
# cursor.execute(query, (email.lower(),))
|
# cursor.execute(query, (email.lower(),))
|
||||||
@@ -70,7 +70,7 @@ class userDeleteRequest(BaseModel):
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/users/search/{search}", tags=["MIH Users"])
|
@router.get("/users/search/{search}", tags=["MIH Users"])
|
||||||
async def read_all_users(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_users(search: str, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = ""
|
query = ""
|
||||||
query += "SELECT * FROM users "
|
query += "SELECT * FROM users "
|
||||||
@@ -101,7 +101,7 @@ async def read_all_users(search: str, session: SessionContainer = Depends(verify
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/users/validate/username/{username}", tags=["MIH Users"])
|
@router.get("/users/validate/username/{username}", tags=["MIH Users"])
|
||||||
async def read_all_users(username: str, session: SessionContainer = Depends(verify_session()) ): #, session: SessionContainer = Depends(verify_session())
|
async def read_all_users(username: str, session: SessionContainer = Depends(verify_session()) ): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM users WHERE LOWER(username) = %s"
|
query = "SELECT * FROM users WHERE LOWER(username) = %s"
|
||||||
# search_term = f"%{username.lower()}%" # Add wildcards and lowercase
|
# search_term = f"%{username.lower()}%" # Add wildcards and lowercase
|
||||||
@@ -114,7 +114,7 @@ async def read_all_users(username: str, session: SessionContainer = Depends(veri
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.get("/user/{app_id}", tags=["MIH Users"])
|
@router.get("/user/{app_id}", tags=["MIH Users"])
|
||||||
async def read_users_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
async def read_users_by_app_id(app_id: str, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "SELECT * FROM users where app_id = %s"
|
query = "SELECT * FROM users where app_id = %s"
|
||||||
cursor.execute(query, (app_id,))
|
cursor.execute(query, (app_id,))
|
||||||
@@ -139,7 +139,7 @@ async def read_users_by_app_id(app_id: str, session: SessionContainer = Depends(
|
|||||||
# Insert Patient into table
|
# Insert Patient into table
|
||||||
@router.post("/user/insert/", tags=["MIH Users"], status_code=201)
|
@router.post("/user/insert/", tags=["MIH Users"], status_code=201)
|
||||||
async def insert_User_details(itemRequest : userInsertRequest, session: SessionContainer = Depends(verify_session())):
|
async def insert_User_details(itemRequest : userInsertRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "insert into users "
|
query = "insert into users "
|
||||||
query += "(email, fname, lname, type, app_id, username, pro_pic_path, purpose) "
|
query += "(email, fname, lname, type, app_id, username, pro_pic_path, purpose) "
|
||||||
@@ -159,7 +159,7 @@ async def insert_User_details(itemRequest : userInsertRequest, session: SessionC
|
|||||||
# Update User on table
|
# Update User on table
|
||||||
@router.put("/user/update/v2/", tags=["MIH Users"])
|
@router.put("/user/update/v2/", tags=["MIH Users"])
|
||||||
async def Update_User_details(itemRequest : userUpdateRequestV2, session: SessionContainer = Depends(verify_session())):
|
async def Update_User_details(itemRequest : userUpdateRequestV2, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update users "
|
query = "update users "
|
||||||
query += "set username=%s, fname=%s, lname=%s, type=%s, pro_pic_path=%s, purpose=%s "
|
query += "set username=%s, fname=%s, lname=%s, type=%s, pro_pic_path=%s, purpose=%s "
|
||||||
@@ -185,7 +185,7 @@ async def Update_User_details(itemRequest : userUpdateRequestV2, session: Sessio
|
|||||||
# Update User on table
|
# Update User on table
|
||||||
@router.put("/user/update/", tags=["MIH Users"])
|
@router.put("/user/update/", tags=["MIH Users"])
|
||||||
async def Update_User_details(itemRequest : userUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
async def Update_User_details(itemRequest : userUpdateRequest, session: SessionContainer = Depends(verify_session())):
|
||||||
db = database.dbConnection.dbAppDataConnect()
|
db = mih_database.dbConnection.dbAppDataConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
query = "update users "
|
query = "update users "
|
||||||
query += "set username=%s, fname=%s, lname=%s, type=%s, pro_pic_path=%s "
|
query += "set username=%s, fname=%s, lname=%s, type=%s, pro_pic_path=%s "
|
||||||
@@ -210,7 +210,7 @@ async def Update_User_details(itemRequest : userUpdateRequest, session: SessionC
|
|||||||
# Get List of all files
|
# Get List of all files
|
||||||
@router.delete("/user/delete/all/", tags=["MIH Users"])
|
@router.delete("/user/delete/all/", tags=["MIH Users"])
|
||||||
async def delete_users_data_by_app_id(itemRequest: userDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
async def delete_users_data_by_app_id(itemRequest: userDeleteRequest, session: SessionContainer = Depends(verify_session())): #, session: SessionContainer = Depends(verify_session())
|
||||||
db = database.dbConnection.dbAllConnect()
|
db = mih_database.dbConnection.dbAllConnect()
|
||||||
cursor = db.cursor()
|
cursor = db.cursor()
|
||||||
db.start_transaction()
|
db.start_transaction()
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user