25-1/4/1
This commit is contained in:
@@ -3,12 +3,18 @@ import 'package:SEFER/env/env.dart';
|
||||
import 'package:SEFER/main.dart';
|
||||
|
||||
class AppLink {
|
||||
static final String seferPaymentServer0 = Env.seferPaymentServer;
|
||||
static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
||||
static final String seferAlexandriaServer = Env.seferAlexandriaServer;
|
||||
static final String seferCairoServer = Env.seferCairoServer;
|
||||
static final String seferGizaServer = Env.seferGizaServer;
|
||||
|
||||
// static final String seferPaymentServer0 = Env.seferPaymentServer;
|
||||
// static final String seferPaymentServer = '${Env.seferPaymentServer}/ride';
|
||||
// static final String seferAlexandriaServer = Env.seferAlexandriaServer;
|
||||
// static final String seferCairoServer = Env.seferCairoServer;
|
||||
static String serverPHP = box.read('serverPHP');
|
||||
static String seferCairoServer = box.read('seferCairoServer');
|
||||
static String seferGizaServer = box.read('seferGizaServer');
|
||||
static String seferAlexandriaServer = box.read('seferAlexandriaServer');
|
||||
static String seferPaymentServer = box.read('seferPaymentServer');
|
||||
static String seferPaymentServer0 = box.read('seferPaymentServer');
|
||||
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
|
||||
// static final String seferGizaServer = Env.seferGizaServer;
|
||||
static final String endPoint = box.read(BoxName.serverChosen);
|
||||
static final String server = Env.seferCairoServer;
|
||||
// static final String server = Env.serverPHP;
|
||||
@@ -29,8 +35,8 @@ class AppLink {
|
||||
static String packageInfo = "$server/auth/packageInfo.php";
|
||||
|
||||
//=======================Wallet===================
|
||||
static String wallet = '$seferPaymentServer/passengerWallet';
|
||||
static String walletDriver = '$seferPaymentServer/driverWallet';
|
||||
static String wallet = '$seferPaymentServer/ride/passengerWallet';
|
||||
static String walletDriver = '$seferPaymentServer/ride/driverWallet';
|
||||
static String getAllPassengerTransaction =
|
||||
"$wallet/getAllPassengerTransaction.php";
|
||||
static String getWalletByPassenger = "$wallet/getWalletByPassenger.php";
|
||||
@@ -38,8 +44,8 @@ class AppLink {
|
||||
static String getPassengerWalletArchive =
|
||||
"$wallet/getPassengerWalletArchive.php";
|
||||
|
||||
static String addDrivePayment = "$seferPaymentServer/payment/add.php";
|
||||
static String addSeferWallet = "$seferPaymentServer/seferWallet/add.php";
|
||||
static String addDrivePayment = "$seferPaymentServer/ride/payment/add.php";
|
||||
static String addSeferWallet = "$seferPaymentServer/ride/seferWallet/add.php";
|
||||
static String addPassengersWallet = "$wallet/add.php";
|
||||
static String deletePassengersWallet = "$wallet/delete.php";
|
||||
static String updatePassengersWallet = "$wallet/update.php";
|
||||
@@ -93,9 +99,9 @@ class AppLink {
|
||||
static String addDriverpayment = "$ride/payment/add.php";
|
||||
static String addDriverPaymentPoints = "$ride/driverPayment/add.php";
|
||||
static String addPaymentTokenPassenger =
|
||||
"$seferPaymentServer/passengerWallet/addPaymentTokenPassenger.php";
|
||||
"$seferPaymentServer/ride/passengerWallet/addPaymentTokenPassenger.php";
|
||||
static String addPaymentTokenDriver =
|
||||
"$seferPaymentServer/driverWallet/addPaymentToken.php";
|
||||
"$seferPaymentServer/ride/driverWallet/addPaymentToken.php";
|
||||
static String getDriverPaymentPoints = "$ride/driverWallet/get.php";
|
||||
static String getDriverpaymentToday = "$ride/payment/get.php";
|
||||
static String getCountRide = "$ride/payment/getCountRide.php";
|
||||
|
||||
198
lib/constant/sefer cairo server.php
Normal file
198
lib/constant/sefer cairo server.php
Normal file
@@ -0,0 +1,198 @@
|
||||
sefer cairo server
|
||||
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
{{ssl_certificate_key}}
|
||||
{{ssl_certificate}}
|
||||
server_name www.sefer.click;
|
||||
return 301 https://sefer.click$request_uri;
|
||||
}
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
{{ssl_certificate_key}}
|
||||
{{ssl_certificate}}
|
||||
server_name sefer.click www1.sefer.click;
|
||||
{{root}}
|
||||
{{nginx_access_log}}
|
||||
{{nginx_error_log}}
|
||||
# Set the maximum request body size
|
||||
client_max_body_size 10m;
|
||||
if ($scheme != "https") {
|
||||
rewrite ^ https://$host$uri permanent;
|
||||
}
|
||||
location ~ /.well-known {
|
||||
auth_basic off;
|
||||
allow all;
|
||||
}
|
||||
# Security headers
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline';" always;
|
||||
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
||||
add_header Permissions-Policy "geolocation=(), microphone=()" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
|
||||
{{settings}}
|
||||
location / {
|
||||
{{varnish_proxy_pass}}
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_hide_header X-Varnish;
|
||||
proxy_redirect off;
|
||||
proxy_max_temp_file_size 0;
|
||||
proxy_connect_timeout 720;
|
||||
proxy_send_timeout 720;
|
||||
proxy_read_timeout 720;
|
||||
proxy_buffer_size 128k;
|
||||
proxy_buffers 4 256k;
|
||||
proxy_busy_buffers_size 256k;
|
||||
proxy_temp_file_write_size 256k;
|
||||
}
|
||||
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map|mjs)$ {
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
expires max;
|
||||
access_log off;
|
||||
}
|
||||
location ~ /\.(ht|svn|git) {
|
||||
deny all;
|
||||
}
|
||||
if (-f $request_filename) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
server {
|
||||
listen 8080;
|
||||
listen [::]:8080;
|
||||
server_name sefer.click www1.sefer.click;
|
||||
{{root}}
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
index index.php index.html;
|
||||
location ~ \.php$ {
|
||||
include fastcgi_params;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
try_files $uri =404;
|
||||
fastcgi_read_timeout 3600;
|
||||
fastcgi_send_timeout 3600;
|
||||
proxy_read_timeout 3600;
|
||||
proxy_send_timeout 3600;
|
||||
fastcgi_param HTTPS "on";
|
||||
fastcgi_param SERVER_PORT 443;
|
||||
fastcgi_pass 127.0.0.1:{{php_fpm_port}};
|
||||
fastcgi_param PHP_VALUE "{{php_settings}}";
|
||||
}
|
||||
if (-f $request_filename) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
wallet server
|
||||
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
{{ssl_certificate_key}}
|
||||
{{ssl_certificate}}
|
||||
server_name www.seferpw.shop;
|
||||
return 301 https://seferpw.shop$request_uri;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
{{ssl_certificate_key}}
|
||||
{{ssl_certificate}}
|
||||
server_name seferpw.shop www1.seferpw.shop 156.67.82.188;
|
||||
{{root}}
|
||||
{{nginx_access_log}}
|
||||
{{nginx_error_log}}
|
||||
# Set the maximum request body size
|
||||
client_max_body_size 10m;
|
||||
if ($scheme != "https") {
|
||||
rewrite ^ https://$host$uri permanent;
|
||||
}
|
||||
location ~ /.well-known {
|
||||
auth_basic off;
|
||||
allow all;
|
||||
}
|
||||
# Security headers
|
||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline';" always;
|
||||
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
||||
add_header Permissions-Policy "geolocation=(), microphone=()" always;
|
||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||
add_header X-Content-Type-Options "nosniff" always;
|
||||
|
||||
{{settings}}
|
||||
location / {
|
||||
{{varnish_proxy_pass}}
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_hide_header X-Varnish;
|
||||
proxy_redirect off;
|
||||
proxy_max_temp_file_size 0;
|
||||
proxy_connect_timeout 720;
|
||||
proxy_send_timeout 720;
|
||||
proxy_read_timeout 720;
|
||||
proxy_buffer_size 128k;
|
||||
proxy_buffers 4 256k;
|
||||
proxy_busy_buffers_size 256k;
|
||||
proxy_temp_file_write_size 256k;
|
||||
}
|
||||
location ~* ^.+\.(css|js|jpg|jpeg|gif|png|ico|gz|svg|svgz|ttf|otf|woff|woff2|eot|mp4|ogg|ogv|webm|webp|zip|swf|map|mjs)$ {
|
||||
add_header Access-Control-Allow-Origin "*";
|
||||
expires max;
|
||||
access_log off;
|
||||
}
|
||||
location ~ /\.(ht|svn|git) {
|
||||
deny all;
|
||||
}
|
||||
if (-f $request_filename) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
listen [::]:8080;
|
||||
server_name seferpw.shop www1.seferpw.shop 156.67.82.188;
|
||||
{{root}}
|
||||
try_files $uri $uri/ /index.php?$args;
|
||||
index index.php index.html;
|
||||
location ~ \.php$ {
|
||||
include fastcgi_params;
|
||||
fastcgi_intercept_errors on;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
try_files $uri =404;
|
||||
fastcgi_read_timeout 3600;
|
||||
fastcgi_send_timeout 3600;
|
||||
proxy_read_timeout 3600;
|
||||
proxy_send_timeout 3600;
|
||||
fastcgi_param HTTPS "on";
|
||||
fastcgi_param SERVER_PORT 443;
|
||||
fastcgi_pass 127.0.0.1:{{php_fpm_port}};
|
||||
fastcgi_param PHP_VALUE "{{php_settings}}";
|
||||
}
|
||||
if (-f $request_filename) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -166,7 +166,7 @@ class FirebaseMessagesController extends GetxController {
|
||||
'token change'.tr, 'token change'.tr, 'cancel');
|
||||
}
|
||||
GoogleSignInHelper.signOut();
|
||||
} else if (message.notification!.title! == 'DriverIsGoingToPassenger'.tr) {
|
||||
} else if (message.notification!.title! == 'Driver Is Going To Passenger'.tr) {
|
||||
Get.find<MapPassengerController>().isDriverInPassengerWay = true;
|
||||
Get.find<MapPassengerController>().update();
|
||||
if (Platform.isAndroid) {
|
||||
|
||||
@@ -31,12 +31,6 @@ class CRUD {
|
||||
},
|
||||
);
|
||||
|
||||
Log.print('response.request: ${response.request}');
|
||||
Log.print('payload: ${payload}');
|
||||
// Log.print('response.reasonPhrase: ${response.reasonPhrase}');
|
||||
|
||||
Log.print('response.body: ${response.body}');
|
||||
// print(payload);
|
||||
// if (response.statusCode == 200) {
|
||||
var jsonData = jsonDecode(response.body);
|
||||
if (jsonData['status'] == 'success') {
|
||||
@@ -110,15 +104,10 @@ class CRUD {
|
||||
request.headers.addAll(headers);
|
||||
|
||||
try {
|
||||
print('Sending request to $url');
|
||||
print('Request headers: $headers');
|
||||
print('Request body: $body');
|
||||
|
||||
http.StreamedResponse response = await request.send();
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
String responseBody = await response.stream.bytesToString();
|
||||
print('Response: $responseBody');
|
||||
|
||||
Get.defaultDialog(
|
||||
title: 'You will receive a code in WhatsApp Messenger'.tr,
|
||||
@@ -132,12 +121,8 @@ class CRUD {
|
||||
);
|
||||
} else {
|
||||
String errorBody = await response.stream.bytesToString();
|
||||
print('Error ${response.statusCode}: ${response.reasonPhrase}');
|
||||
print('Error body: $errorBody');
|
||||
}
|
||||
} catch (e) {
|
||||
print('Exception occurred: $e');
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
Future<dynamic> getAgoraToken({
|
||||
@@ -302,9 +287,6 @@ class CRUD {
|
||||
// 'Basic ${base64Encode(utf8.encode(AK.basicAuthCredentials))}',
|
||||
// },
|
||||
// );
|
||||
// Log.print('payload: ${payload}');
|
||||
// Log.print('response.request: ${response.request}');
|
||||
// Log.print('response.body: ${response.body}');
|
||||
// var jsonData = jsonDecode(response.body);
|
||||
// if (response.statusCode == 200) {
|
||||
// if (jsonData['status'] == 'success') {
|
||||
@@ -332,11 +314,6 @@ class CRUD {
|
||||
},
|
||||
);
|
||||
|
||||
Log.print('Response.request: ${response.request}');
|
||||
Log.print('Payload: $payload');
|
||||
// Log.print('Response.statusCode: ${response.statusCode}');
|
||||
Log.print('Response.body: ${response.body}');
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
try {
|
||||
var jsonData = jsonDecode(response.body);
|
||||
@@ -347,18 +324,15 @@ class CRUD {
|
||||
return jsonData['status'];
|
||||
}
|
||||
} catch (e) {
|
||||
Log.print('JSON parsing error: $e');
|
||||
addError(e.toString(), 'crud().post');
|
||||
return 'failure'; // Return a recognizable failure string for JSON errors
|
||||
}
|
||||
} else {
|
||||
Log.print('Non-200 response code: ${response.statusCode}');
|
||||
addError(
|
||||
'Non-200 response code: ${response.statusCode}', 'crud().post');
|
||||
return 'failure'; // Handle unexpected status codes as failures
|
||||
}
|
||||
} catch (e) {
|
||||
Log.print('HTTP request error: $e');
|
||||
addError('HTTP request error: $e', 'crud().post');
|
||||
return 'failure'; // Handle HTTP request errors as failures
|
||||
}
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
|
||||
import '../../constant/links.dart';
|
||||
import '../../main.dart';
|
||||
import 'crud.dart';
|
||||
|
||||
class SecureStorage {
|
||||
final FlutterSecureStorage _storage = const FlutterSecureStorage();
|
||||
|
||||
@@ -12,3 +18,41 @@ class SecureStorage {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
const List<String> keysToFetch = [
|
||||
'serverPHP',
|
||||
'seferAlexandriaServer',
|
||||
'seferPaymentServer',
|
||||
'seferCairoServer',
|
||||
'seferGizaServer',
|
||||
];
|
||||
|
||||
class AppInitializer {
|
||||
// final FlutterSecureStorage _storage = const FlutterSecureStorage();
|
||||
|
||||
Future<void> initializeApp() async {
|
||||
// Check if app is running for the first time
|
||||
|
||||
// Loop through the keys and fetch their values
|
||||
for (String key in keysToFetch) {
|
||||
try {
|
||||
String? value = await getKey(key); // Fetch from server
|
||||
if (value != null) {
|
||||
await box.write(key, value); // Save securely
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
|
||||
Future<String?> getKey(String key) async {
|
||||
var res =
|
||||
await CRUD().get(link: AppLink.getapiKey, payload: {"keyName": key});
|
||||
if (res != 'failure') {
|
||||
try {
|
||||
var data = jsonDecode(res)['message'];
|
||||
return data[key]?.toString();
|
||||
} catch (e) {}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5222,13 +5222,24 @@ class MapPassengerController extends GetxController {
|
||||
link: AppLink.getPassengerRate,
|
||||
payload: {'passenger_id': box.read(BoxName.passengerID)});
|
||||
if (res != 'failure') {
|
||||
if (jsonDecode(res)['message']['rating'] == null) {
|
||||
passengerRate = 5;
|
||||
var message = jsonDecode(res)['message'];
|
||||
if (message['rating'] == null) {
|
||||
passengerRate = 5.0; // Default rating
|
||||
} else {
|
||||
passengerRate = jsonDecode(res)['message']['rating'].toDouble();
|
||||
// Safely parse the rating to double
|
||||
var rating = message['rating'];
|
||||
if (rating is String) {
|
||||
passengerRate =
|
||||
double.tryParse(rating) ?? 5.0; // Default if parsing fails
|
||||
} else if (rating is num) {
|
||||
passengerRate =
|
||||
rating.toDouble(); // Already a number, convert to double
|
||||
} else {
|
||||
passengerRate = 5.0; // Default for unexpected data types
|
||||
}
|
||||
}
|
||||
} else {
|
||||
passengerRate = 5;
|
||||
passengerRate = 5.0; // Default rating for failure
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import 'constant/info.dart';
|
||||
import 'constant/notification.dart';
|
||||
import 'controller/firebase/firbase_messge.dart';
|
||||
import 'controller/firebase/local_notification.dart';
|
||||
import 'controller/functions/secure_storage.dart';
|
||||
import 'controller/local/local_controller.dart';
|
||||
import 'controller/local/translations.dart';
|
||||
import 'controller/payment/paymob/paymob_wallet.dart';
|
||||
@@ -100,6 +101,8 @@ void main() async {
|
||||
randomMessage.split(':')[1],
|
||||
"tone1",
|
||||
);
|
||||
final AppInitializer initializer = AppInitializer();
|
||||
await initializer.initializeApp();
|
||||
runApp(const MyApp());
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
import '../../../constant/box_name.dart';
|
||||
import '../../../constant/colors.dart';
|
||||
import '../../../constant/table_names.dart';
|
||||
import '../../../controller/functions/tts.dart';
|
||||
@@ -14,7 +15,10 @@ GetBuilder<MapPassengerController> leftMainMenuIcons() {
|
||||
return GetBuilder<MapPassengerController>(
|
||||
builder: (controller) => Positioned(
|
||||
top: Get.height * .008,
|
||||
left: Get.width * .02, // Adjust left position for better spacing
|
||||
left: box.read(BoxName.lang) != 'ar' ? Get.width * .2 : null,
|
||||
right: box.read(BoxName.lang) != 'ar'
|
||||
? Get.width * .2
|
||||
: null, // Adjust left position for better spacing
|
||||
child: Row(
|
||||
mainAxisAlignment:
|
||||
MainAxisAlignment.spaceAround, // Distribute space evenly
|
||||
|
||||
Reference in New Issue
Block a user