update fixes

This commit is contained in:
2023-11-24 11:58:17 +05:30
parent 23fde37e3d
commit d8fd352a62
11 changed files with 187 additions and 64 deletions

View File

@ -5,9 +5,11 @@ import 'package:intl/intl.dart';
import 'package:rogapp/model/rog.dart';
import 'package:rogapp/pages/destination/destination_controller.dart';
import 'package:rogapp/pages/index/index_controller.dart';
import 'package:rogapp/utils/database_gps.dart';
import 'package:rogapp/utils/database_helper.dart';
import 'dart:convert';
import '../model/gps_data.dart';
import '../utils/const.dart';
//
@ -340,6 +342,73 @@ class ExternalService {
return Future.value(false);
}
String timestampToTimeString(int timestamp) {
// Convert timestamp to DateTime and format it as needed
var dateTime = DateTime.fromMillisecondsSinceEpoch(timestamp * 1000);
// Format dateTime to a time string (e.g., '12:00:00')
// Adjust the format as needed
return "${dateTime.hour}:${dateTime.minute}:${dateTime.second}";
}
Future<bool> pushGPS() async {
final IndexController indexController = Get.find<IndexController>();
//int userId = indexController.currentUser[0]["user"]["id"];
//print("--- Pressed -----");
String team = indexController.currentUser[0]["user"]['team_name'];
//print("--- _team : ${_team}-----");
String eventCode = indexController.currentUser[0]["user"]["event_code"];
List<GpsData> gpsDataList = [];
if (indexController.connectionStatusName.value != "wifi" &&
indexController.connectionStatusName.value != "mobile") {
return Future.value(false);
} else {
// Step 1: Fetch data from the local database
gpsDataList =
await GpsDatabaseHelper.instance.getUnsyncedGPSData(team, eventCode);
// Step 2: Transform data into the required format
var payload = {
'team_name': team,
'event_code': eventCode,
'waypoints': gpsDataList.map((gpsData) {
return {
'latitude': gpsData.lat.toString(),
'longitude': gpsData.lon.toString(),
// Convert the timestamp to a formatted time string
'time': timestampToTimeString(gpsData.created_at),
};
}).toList(),
};
print("calling push gps step 2 ${payload}");
String urlS =
'https://rogaining.sumasen.net/gifuroge/get_waypoint_datas_from_rogapp';
//print('++++++++$url');
var url = Uri.parse(urlS); // Replace with your server URL
var response = await http.post(
url,
headers: {"Content-Type": "application/json"},
body: json.encode(payload),
);
print("GPS Data res ${response.statusCode}");
if (response.statusCode == 200) {
// Handle success
// make local data as synced
await GpsDatabaseHelper.instance.setSyncData(gpsDataList);
print("GPS Data sent successfully");
} else {
// Handle error
print("Failed to send data");
}
}
return Future.value(false);
}
static Future<Map<String, dynamic>> usersEventCode(
String teamcode, String password) async {
Map<String, dynamic> res = {};