This commit is contained in:
Hamza-Ayed
2023-11-21 18:20:31 +03:00
parent 252cecb6ca
commit 1d2ceed031
10 changed files with 225 additions and 87 deletions

View File

@@ -1,18 +1,17 @@
import 'dart:convert';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:ride/env/env.dart';
import '../../constant/api_key.dart';
import '../../constant/box_name.dart';
import '../../main.dart';
class CRUD {
Future<dynamic> get({
required String link,
Map<String, dynamic>? payload,
}) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse(
link,
);
@@ -22,16 +21,19 @@ class CRUD {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization':
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
// 'Basic ${base64Encode(utf8.encode('hamzaayedphp:malDEV@2101'))}',
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials.toString()))}',
// 'Basic ${base64Encode(utf8.encode(basicAuthCredentials.toString()))}',
},
);
print("--------------" + response.request.toString());
print("--------------" + payload.toString());
//print("-----basicAuthCredentials----" + AK.basicAuthCredentials.toString());
//print("-----request----" + response.request.toString());
//print("-----headers-----" + response.headers.toString());
//print("-----payload-----" + payload.toString());
if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
// print(jsonData);
// //print(jsonData);
return response.body;
}
@@ -40,11 +42,45 @@ class CRUD {
}
}
Future<dynamic> getLlama({
required String link,
required String payload,
}) async {
var url = Uri.parse(
link,
);
var headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ${Env.llamaKey}'
};
var data = json.encode({
"model": "llama-13b-chat",
"messages": [
{
"role": "user",
"content":
"Extract the desired information from the following passage as json decoded like vin,make,made,color,owner and all you find in this:\n\n$payload"
}
],
"temperature": 0.9
});
var response = await http.post(
url,
body: data,
headers: headers,
);
if (response.statusCode == 200) {
return response.body;
}
return response.statusCode;
}
Future<dynamic> postStripe({
required String link,
Map<String, dynamic>? payload,
}) async {
String? secretKey = await storage.read(key: BoxName.secretKey);
// String? secretKey = await storage.read(key: BoxName.secretKey);
var url = Uri.parse(
link,
);
@@ -64,8 +100,8 @@ class CRUD {
required String link,
Map<String, dynamic>? payload,
}) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse(
link,
);
@@ -78,8 +114,8 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
},
);
print(response.request);
print(payload);
//print(response.request);
//print(payload);
var jsonData = jsonDecode(response.body);
if (response.statusCode == 200) {
@@ -88,7 +124,7 @@ class CRUD {
jsonData['status'],
jsonData['message'],
);
print(response.body);
//print(response.body);
return response.body;
}
}
@@ -99,8 +135,8 @@ class CRUD {
required String link,
Map<String, dynamic>? payload,
}) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse(
link,
);
@@ -113,9 +149,9 @@ class CRUD {
'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
},
);
print(response.request);
print('body=========================');
print(response.body);
//print(response.request);
//print('body=========================');
//print(response.body);
if (response.body.isNotEmpty) {
var jsonData = jsonDecode(response.body);
@@ -145,9 +181,9 @@ class CRUD {
url,
body: payload,
);
print(response.request);
//print(response.request);
var jsonData = jsonDecode(response.body);
// print(jsonData);
// //print(jsonData);
if (jsonData['status'] == 'OK') {
return jsonData;
}
@@ -159,8 +195,8 @@ class CRUD {
required Map<String, dynamic> data,
required String id,
}) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse('$endpoint/$id');
var response = await http.put(
url,
@@ -177,8 +213,8 @@ class CRUD {
required String endpoint,
required String id,
}) async {
String? basicAuthCredentials =
await storage.read(key: BoxName.basicAuthCredentials);
// String? basicAuthCredentials =
// await storage.read(key: BoxName.basicAuthCredentials);
var url = Uri.parse('$endpoint/$id');
var response = await http.delete(
url,

View File

@@ -0,0 +1,34 @@
import 'dart:convert';
import 'package:ride/constant/links.dart';
import 'package:ride/controller/functions/crud.dart';
class LlamaAi {
Future getExractionData(String input) async {
print(true);
String oneLine = input.replaceAll('\n', ' ');
var res = await CRUD().getLlama(link: AppLink.llama, payload: oneLine);
var decod = jsonDecode(res);
// print(decod['choices'][0]['message']['content']);
extractDataFromJsonString(decod['choices'][0]['message']['content']);
print(false);
}
Map<String, dynamic> extractDataFromJsonString(String jsonString) {
// Remove any leading or trailing whitespace from the string
jsonString = jsonString.trim();
// Extract the JSON substring from the given string
final startIndex = jsonString.indexOf('{');
final endIndex = jsonString.lastIndexOf('}');
final jsonSubstring = jsonString.substring(startIndex, endIndex + 1);
// Parse the JSON substring into a Map
final jsonData = json.decode(jsonSubstring);
// Return the extracted data
print(jsonData);
return jsonData;
}
}

View File

@@ -5,18 +5,17 @@ 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:ride/constant/box_name.dart';
import 'package:ride/constant/colors.dart';
import 'package:ride/controller/firebase/firbase_messge.dart';
import 'package:ride/controller/functions/location_controller.dart';
import 'package:ride/main.dart';
import 'package:ride/views/Rate/rate_passenger.dart';
import 'package:ride/views/home/Captin/home_captin.dart';
import '../../../constant/api_key.dart';
import '../../../constant/credential.dart';
import '../../../constant/box_name.dart';
import '../../../constant/colors.dart';
import '../../../constant/links.dart';
import '../../../main.dart';
import '../../../views/Rate/rate_passenger.dart';
import '../../../views/home/Captin/home_captin.dart';
import '../../firebase/firbase_messge.dart';
import '../../functions/crud.dart';
import '../../functions/location_controller.dart';
class MapDriverController extends GetxController {
bool isLoading = true;

View File

@@ -6,19 +6,19 @@ 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:ride/constant/box_name.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/payment/payment_controller.dart';
import 'package:ride/views/Rate/rate_captain.dart';
import 'package:ride/views/widgets/elevated_btn.dart';
import '../../constant/api_key.dart';
import '../../constant/box_name.dart';
import '../../constant/info.dart';
import '../../constant/links.dart';
import '../../main.dart';
import '../../models/model/locations.dart';
import '../../views/Rate/rate_captain.dart';
import '../../views/widgets/elevated_btn.dart';
import '../firebase/firbase_messge.dart';
import '../functions/crud.dart';
import '../functions/launch.dart';
import '../functions/secure_storage.dart';
import '../payment/payment_controller.dart';
class MapPassengerController extends GetxController {
bool isLoading = true;
@@ -140,7 +140,7 @@ class MapPassengerController extends GetxController {
// Format the message.
String message =
'Hi! This is ${box.read(BoxName.name)}. I am using Sefer to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.';
'Hi! This is ${box.read(BoxName.name)}. I am using ${box.read(AppInformation.appName)} to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.';
// Launch the URL to send the SMS.
launchCommunication('sms', to, message);
@@ -153,7 +153,7 @@ class MapPassengerController extends GetxController {
// Format the message.
String message =
'Hi! This is ${box.read(BoxName.name)}. I am using Sefer to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.';
'Hi! This is ${box.read(BoxName.name)}. I am using ${box.read(AppInformation.appName)} to ride with ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} as the driver. ${dataCarsLocationByPassenger['message'][carsOrder]['first_name'].toString()} is driving a ${dataCarsLocationByPassenger['message'][carsOrder]['model'].toString()} with license plate ${dataCarsLocationByPassenger['message'][carsOrder]['license_plate'].toString()}. I am currently located at $myLocation. If you need to reach me, please contact the driver directly at $driverPhone.';
// Launch the URL to send the SMS.
launchCommunication('whatsapp', to, message);
@@ -599,7 +599,7 @@ class MapPassengerController extends GetxController {
Future getPlaces() async {
var url =
// '${AppLink.googleMapsLink}place/nearbysearch/json?location=${mylocation.longitude}&radius=25000&language=ar&keyword=&key=${placeController.text}${AK.mapAPIKEY}';
'${AppLink.googleMapsLink}place/nearbysearch/json?keyword=${placeController.text}&location=${myLocation.latitude},${myLocation.longitude}&radius=50000&language=ar&key=${AK.mapAPIKEY.toString()}';
'${AppLink.googleMapsLink}place/nearbysearch/json?keyword=${placeController.text}&location=${myLocation.latitude},${myLocation.longitude}&radius=50000&language=en&key=${AK.mapAPIKEY.toString()}';
var response = await CRUD().getGoogleApi(link: url, payload: {});