This commit is contained in:
Hamza-Ayed
2023-09-06 12:01:52 +03:00
parent 4380826253
commit c2600c5938
56 changed files with 259 additions and 54 deletions

View File

@@ -6,7 +6,9 @@ import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/style.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/controller/functions/launch.dart';
import 'package:ride/controller/functions/toast.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../constant/box_name.dart';
@@ -136,14 +138,16 @@ class FirebasMessagesController extends GetxController {
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'Distance is '.tr + myList[4].toString() + ' Minutes'.tr,
'Distance is '.tr + myList[5].toString() + ' KM'.tr,
style: AppStyle.title,
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'Duration of Trip is '.tr + myList[5].toString(),
'Duration of Trip is '.tr +
myList[4].toString() +
' Minutes'.tr,
style: AppStyle.title,
),
),
@@ -154,14 +158,30 @@ class FirebasMessagesController extends GetxController {
children: [
MyElevatedButton(
title: 'Apply Order'.tr,
onPressed: () {
//TODO save and request to passenger
onPressed: () async {
await CRUD().postFromDialogue(
link: AppLink.addDriverOrder,
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id':
message.notification!.body.toString(),
'status': 'Apply'
});
},
),
MyElevatedButton(
title: 'Refuse Order'.tr,
onPressed: () {
//TODO save and request to passenger and driver log upto 3 per 1 day
onPressed: () async {
await CRUD().postFromDialogue(
link: AppLink.addDriverOrder,
payload: {
'driver_id': myList[6].toString(),
// box.read(BoxName.driverID).toString(),
'order_id':
message.notification!.body.toString(),
'status': 'Refused'
});
},
kolor: AppColor.redColor,
),
@@ -170,6 +190,8 @@ class FirebasMessagesController extends GetxController {
)
],
));
} else if (message.notification!.title!.contains('Promo')) {
// Get.to(page)
}
}
});
@@ -285,7 +307,7 @@ class FirebasMessagesController extends GetxController {
// }
void sendNotificationDriverId(String title, body, Strin1, Strin2, Strin3,
Strin4, Strin5, Strin6, token) async {
Strin4, Strin5, Strin6, String7, token) async {
http
.post(Uri.parse('https://fcm.googleapis.com/fcm/send'),
headers: <String, String>{
@@ -300,7 +322,7 @@ class FirebasMessagesController extends GetxController {
},
'data': {
'myList': jsonEncode(
[Strin1, Strin2, Strin3, Strin4, Strin5, Strin6]),
[Strin1, Strin2, Strin3, Strin4, Strin5, Strin6, String7]),
},
'priority': 'high',
'to': token,

View File

@@ -26,7 +26,7 @@ class CRUD {
if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
print(jsonData);
// print(jsonData);
return response.body;
}
return jsonData['status'];
@@ -65,6 +65,39 @@ class CRUD {
return (jsonData['status']);
}
Future<dynamic> postFromDialogue({
required String link,
Map<String, dynamic>? payload,
}) async {
var url = Uri.parse(
link,
);
var response = await http.post(
url,
body: payload,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization':
'Basic ${base64Encode(utf8.encode(AppCredintials.basicAuthCredentials))}',
},
);
print(response.request);
var jsonData = jsonDecode(response.body);
if (response.statusCode == 200) {
if (jsonData['status'] == 'success') {
Get.back();
Get.snackbar(
jsonData['status'],
jsonData['message'],
);
return response.body;
}
}
return (jsonData['status']);
}
Future<dynamic> getGoogleApi({
required String link,
Map<String, dynamic>? payload,

View File

@@ -1,20 +1,17 @@
import 'dart:async';
import 'dart:convert';
import 'dart:math' show sqrt, pi, cos, sin;
import 'dart:math' show cos;
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
import 'package:location/location.dart';
import 'package:path/path.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/constant/credential.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/controller/functions/secure_storage.dart';
import 'package:ride/controller/functions/toast.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../main.dart';
import '../../models/model/locations.dart';
@@ -46,6 +43,7 @@ class MapController extends GetxController {
bool isPickerShown = false;
bool isButtomSheetShown = false;
bool mapType = false;
bool mapTraficON = false;
bool isCancelRidePageShown = false;
bool isCashConfirmPageShown = false;
bool isPaymentMethodPageShown = false;
@@ -53,6 +51,7 @@ class MapController extends GetxController {
bool isMainBottomMenuMap = true;
double heightButtomSheetShown = 0;
double cashConfirmPageShown = 250;
double widthMapTypeAndTrafic = 50;
double paymentPageShown = Get.height * .6;
late LatLng southwest;
late LatLng northeast;
@@ -92,6 +91,11 @@ class MapController extends GetxController {
update();
}
void changeMapTraffic() {
mapTraficON = !mapTraficON;
update();
}
void changeCancelRidePageShow() {
// rideConfirm == true
// ?
@@ -102,6 +106,7 @@ class MapController extends GetxController {
void getDrawerMenu() {
heightMenuBool = !heightMenuBool;
widthMapTypeAndTrafic = heightMenuBool == true ? 0 : 50;
heightMenu = heightMenuBool == true ? 100 : 0;
widthMenu = heightMenuBool == true ? 110 : 0;
update();
@@ -140,7 +145,7 @@ class MapController extends GetxController {
"price_for_passenger": totaME.toString(),
"distance": distance.toString()
}).then((value) {
print(value);
// print(jsonDecode(value)['message']);
List<String> body = [
'${data[0]["start_location"]['lat']},${data[0]["start_location"]['lng']}',
'${data[0]["end_location"]['lat']},${data[0]["end_location"]['lng']}',
@@ -148,16 +153,19 @@ class MapController extends GetxController {
totalDriver.toString(),
duration.toString(),
distance.toString(),
dataCarsLocationByPassenger['message'][0]['id'].toString()
];
FirebasMessagesController().sendNotificationDriverId(
'Order',
'body',
jsonDecode(value)['message'].toString(),
body[0],
body[1],
body[2],
body[3],
body[4],
body[5],
body[6],
box.read(BoxName.tokenFCM).toString(), //TODO change to Driver
);
});

View File

@@ -0,0 +1,36 @@
import 'dart:convert';
import 'package:get/get.dart';
import 'package:ride/constant/box_name.dart';
import 'package:ride/constant/links.dart';
import 'package:ride/controller/functions/crud.dart';
import 'package:ride/main.dart';
class OrderHistoryController extends GetxController {
List<dynamic> orderHistoryListPassenger = [];
bool isloading = true;
@override
void onInit() {
getOrderHistoryByPassenger();
super.onInit();
}
Future getOrderHistoryByPassenger() async {
var res = await CRUD().get(link: AppLink.getRides, payload: {
'passenger_id': box.read(BoxName.pasengerID).toString(),
});
if (res.toString() == 'failure') {
Get.snackbar('failure', 'message');
isloading = false;
update();
} else {
var jsonDecoded = jsonDecode(res);
orderHistoryListPassenger = jsonDecoded['data'];
print(orderHistoryListPassenger);
isloading = false;
update();
}
}
}

View File

@@ -11,7 +11,7 @@ import '../functions/crud.dart';
class PaymentController extends GetxController {
bool isloading = false;
bool isWalletCheced = false;
bool isWalletCheced = true;
bool isCashCheced = false;
bool isWalletFound = false;
final formKey = GlobalKey<FormState>();
@@ -23,23 +23,20 @@ class PaymentController extends GetxController {
getPassengerWallet() async {
isloading = true;
update();
box.write(BoxName.passengerWalletFound, isWalletFound);
// box.write(BoxName.passengerWalletFound, isWalletFound);
// totalPassengerWalletDetails = box.read(BoxName.passengerWalletDetails);
if (totalPassengerWalletDetails.isEmpty) {
await CRUD().get(link: AppLink.getWalletByPassenger, payload: {
'passenger_id': box.read(BoxName.pasengerID)
}).then((value) {
print(value);
totalPassengerWalletDetails = jsonDecode(value)['message'];
passengerTotalWalletAmount = totalPassengerWalletDetails[0]['total'];
box.write(BoxName.passengerWalletDetails, totalPassengerWalletDetails);
});
}
// if (box.read(BoxName.passengerWalletTotal).toString().isEmpty) {
await CRUD().get(
link: AppLink.getWalletByPassenger,
payload: {'passenger_id': box.read(BoxName.pasengerID)}).then((value) {
box.write(BoxName.passengerWalletTotal,
jsonDecode(value)['message'][0]['total'].toString());
});
// }
isloading = false;
update();
print(totalPassengerWalletDetails);
}
void onChangedPymentethodWallet(bool? value) {