Commit 3de480a8 authored by Dio Maulana's avatar Dio Maulana

config dalam file json

parent 0cf77a68
{
"base_url": "https://hibiscus-dev.ravku.com/",
"end_point": "rav/attendance/",
"brand": "EXC",
"title": "Excelso Attendance",
"debug": true
}
\ No newline at end of file
...@@ -10,6 +10,7 @@ import 'package:excelso_attendance/models/shift.dart'; ...@@ -10,6 +10,7 @@ import 'package:excelso_attendance/models/shift.dart';
import 'package:excelso_attendance/resource/constanta_string.dart'; import 'package:excelso_attendance/resource/constanta_string.dart';
import 'package:excelso_attendance/resource/strings.dart'; import 'package:excelso_attendance/resource/strings.dart';
import 'package:geolocator/geolocator.dart'; import 'package:geolocator/geolocator.dart';
import 'package:get_ip_address/get_ip_address.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
class Api { class Api {
...@@ -147,6 +148,8 @@ class Api { ...@@ -147,6 +148,8 @@ class Api {
String branchId, String nik, String shiftId, String photoBase64) async { String branchId, String nik, String shiftId, String photoBase64) async {
String apiUrl = "$baseUrl${endPoint}clock_in"; String apiUrl = "$baseUrl${endPoint}clock_in";
Position position = await Geolocator.getCurrentPosition(); Position position = await Geolocator.getCurrentPosition();
IpAddress ipAddress = IpAddress(type: RequestType.json);
dynamic dataIp = await ipAddress.getIpAddress();
try { try {
Map<String, dynamic> data = { Map<String, dynamic> data = {
"branch_id": branchId, "branch_id": branchId,
...@@ -156,6 +159,7 @@ class Api { ...@@ -156,6 +159,7 @@ class Api {
"user_lat": position.latitude, "user_lat": position.latitude,
"user_long": position.longitude, "user_long": position.longitude,
"photo_base64": "data:image/jpeg;base64,$photoBase64", "photo_base64": "data:image/jpeg;base64,$photoBase64",
"ip": dataIp['ip']
}; };
String bodies = jsonEncode(data); String bodies = jsonEncode(data);
dynamic jsonObject = dynamic jsonObject =
...@@ -201,6 +205,8 @@ class Api { ...@@ -201,6 +205,8 @@ class Api {
String apiUrl = "$baseUrl${endPoint}clock_out"; String apiUrl = "$baseUrl${endPoint}clock_out";
Position position = await Geolocator.getCurrentPosition(); Position position = await Geolocator.getCurrentPosition();
IpAddress ipAddress = IpAddress(type: RequestType.json);
dynamic dataIp = await ipAddress.getIpAddress();
try { try {
Map<String, dynamic> data = { Map<String, dynamic> data = {
"branch_id": branchId, "branch_id": branchId,
...@@ -209,6 +215,7 @@ class Api { ...@@ -209,6 +215,7 @@ class Api {
"user_lat": position.latitude, "user_lat": position.latitude,
"user_long": position.longitude, "user_long": position.longitude,
"photo_base64": photoBase64, "photo_base64": photoBase64,
"ip": dataIp['ip'],
}; };
String bodies = jsonEncode(data); String bodies = jsonEncode(data);
dynamic jsonObject = dynamic jsonObject =
......
import 'dart:convert';
import 'package:excelso_attendance/resource/routes.dart'; import 'package:excelso_attendance/resource/routes.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
import 'package:url_strategy/url_strategy.dart'; import 'package:url_strategy/url_strategy.dart';
import 'package:flutter/services.dart' as bundle_root;
// all config here // all config here
bool debug = true; late bool debug;
late SharedPreferences prefs; late SharedPreferences prefs;
String titleApp = 'Excelso Attendance'; late String titleApp;
String brandCode = "EXC"; late String brandCode;
String baseUrl = "https://hibiscus-dev.ravku.com/"; late String baseUrl;
String endPoint = "rav/attendance/"; late String endPoint;
// final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>(); // final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
...@@ -21,6 +24,7 @@ void main() async { ...@@ -21,6 +24,7 @@ void main() async {
setPathUrlStrategy(); setPathUrlStrategy();
configLoading(); configLoading();
await loadConfigFile();
SharedPreferences.getInstance().then((value) { SharedPreferences.getInstance().then((value) {
prefs = value; prefs = value;
runApp(const MyApp()); runApp(const MyApp());
...@@ -44,6 +48,16 @@ void configLoading() { ...@@ -44,6 +48,16 @@ void configLoading() {
..dismissOnTap = false; ..dismissOnTap = false;
} }
Future<void> loadConfigFile() async {
String datas = await bundle_root.rootBundle.loadString('config.json');
var decodeJson = jsonDecode(datas);
titleApp = decodeJson['title'].toString();
brandCode = decodeJson['brand'].toString();
baseUrl = decodeJson['base_url'].toString();
endPoint = decodeJson['end_point'].toString();
debug = decodeJson['debug'];
}
class MyApp extends StatelessWidget { class MyApp extends StatelessWidget {
const MyApp({super.key}); const MyApp({super.key});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment