update fixes
This commit is contained in:
@ -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 = {};
|
||||
|
||||
Reference in New Issue
Block a user