Commit 5348844d authored by valdi's avatar valdi

fix splash

parent 123b7f72
...@@ -3,6 +3,7 @@ import 'dart:convert'; ...@@ -3,6 +3,7 @@ import 'dart:convert';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:manager_queue/helper/config.dart'; import 'package:manager_queue/helper/config.dart';
import 'package:manager_queue/models/queue.dart'; import 'package:manager_queue/models/queue.dart';
import 'package:manager_queue/models/config.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class ApiQueue { class ApiQueue {
...@@ -12,10 +13,10 @@ class ApiQueue { ...@@ -12,10 +13,10 @@ class ApiQueue {
ApiQueue(this.id, this.queue_number, this.status); ApiQueue(this.id, this.queue_number, this.status);
factory ApiQueue.createQueue(Map<String, dynamic> json) { // factory ApiQueue.createQueue(Map<String, dynamic> json) {
return ApiQueue(json['id'].toString(), json['queue_number'].toString(), // return ApiQueue(json['id'].toString(), json['queue_number'].toString(),
json['status'].toString()); // json['status'].toString());
} // }
static Future<List<OrderQueue>> getQueue() async { static Future<List<OrderQueue>> getQueue() async {
String apiUrl = apiUrlQueue; String apiUrl = apiUrlQueue;
...@@ -34,4 +35,23 @@ class ApiQueue { ...@@ -34,4 +35,23 @@ class ApiQueue {
return queues; return queues;
} }
static Future<List<ConfigApl>> getConfig() async {
String apiUrl = apiUrlConfig;
// print("apiUrl dalam getConfig: " + apiUrl);
List<ConfigApl> configs = [];
try {
var apiResult = await http.get(Uri.parse(apiUrl));
var jsonObject = jsonDecode(apiResult.body);
List<dynamic> listConfig = (jsonObject as Map<dynamic, dynamic>)['data'];
for (int i = 0; i < listConfig.length; i++) {
configs.add(ConfigApl.createConfig(listConfig[i]));
}
// ignore: empty_catches
} catch (e) {
print("Errornya pada api.dart config: $e");
}
return configs;
}
} }
import 'package:manager_queue/main.dart'; import 'package:manager_queue/main.dart';
import 'package:mqtt_client/mqtt_browser_client.dart'; import 'package:mqtt_client/mqtt_browser_client.dart';
import 'dart:convert';
final String? baseUrls = prefs.getString('base_url'); final String? baseUrls = prefs.getString('base_url');
final String? mqqtIdentifiers = prefs.getString('uuid'); final String? mqqtIdentifiers = prefs.getString('uuid');
final String mqqtIdentifier = mqqtIdentifiers!; final String mqqtIdentifier = mqqtIdentifiers!;
final String baseUrl = baseUrls!; final String baseUrlApi = baseUrls!;
final String apiUrlQueue = baseUrl + "api/getqueue"; final String apiUrlQueue = baseUrlApi + "api/getqueue";
final String apiUrlUpdate = baseUrl + "api/updatequeue"; final String apiUrlUpdate = baseUrlApi + "api/updatequeue";
final String apiUrlClear = baseUrl + "api/clearqueue"; final String apiUrlClear = baseUrlApi + "api/clearqueue";
const String mqttUrl = "ws://dev.ravku.com"; final String apiUrlConfig = baseUrlApi + "api/getconfig";
const String queueTopic = "queuetest/1"; // const String apiConfig = "api/getconfig";
const String queueMessage = "updateApi";
const int mqttPort = 1883; final String? mqttUrls = prefs.getString('mqtt_url');
final String mqttUrl = mqttUrls!;
final String? queueTopics = prefs.getString('mqtt_queue_topic');
final String queueTopic = queueTopics!;
final String? queueMessages = prefs.getString('mqtt_queue_message');
final String queueMessage = queueMessages!;
final int? mqttPorts = prefs.getInt('mqtt_port');
final int mqttPort = mqttPorts!;
final mqClient = MqttBrowserClient(mqttUrl, ""); final mqClient = MqttBrowserClient(mqttUrl, "");
...@@ -42,7 +42,7 @@ class _MainPageState extends State<MainPage> { ...@@ -42,7 +42,7 @@ class _MainPageState extends State<MainPage> {
} }
context.read<QueueCubit>().getData(); context.read<QueueCubit>().getData();
context.read<ReadyCubit>().getData(); context.read<ReadyCubit>().getData();
const pubTopic = queueTopic; final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder(); final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage); builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!); mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
...@@ -64,7 +64,7 @@ class _MainPageState extends State<MainPage> { ...@@ -64,7 +64,7 @@ class _MainPageState extends State<MainPage> {
} }
context.read<ReadyCubit>().getData(); context.read<ReadyCubit>().getData();
context.read<QueueCubit>().getData(); context.read<QueueCubit>().getData();
const pubTopic = queueTopic; final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder(); final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage); builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!); mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
...@@ -93,7 +93,7 @@ class _MainPageState extends State<MainPage> { ...@@ -93,7 +93,7 @@ class _MainPageState extends State<MainPage> {
// } // }
} }
context.read<ReadyCubit>().getData(); context.read<ReadyCubit>().getData();
const pubTopic = queueTopic; final pubTopic = queueTopic;
final builder = MqttClientPayloadBuilder(); final builder = MqttClientPayloadBuilder();
builder.addString(queueMessage); builder.addString(queueMessage);
mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!); mqClient.publishMessage(pubTopic, MqttQos.exactlyOnce, builder.payload!);
......
// ignore_for_file: non_constant_identifier_names
class ConfigApl {
final String mqtt_url;
final int mqtt_port;
final String mqtt_queue_topic;
final String mqtt_queue_message;
ConfigApl({
required this.mqtt_url,
required this.mqtt_port,
required this.mqtt_queue_topic,
required this.mqtt_queue_message,
});
factory ConfigApl.createConfig(Map<String, dynamic> json) {
return ConfigApl(
mqtt_url: json['mqtt_url'],
mqtt_port: json['mqtt_port'],
mqtt_queue_topic: json['mqtt_queue_topic'],
mqtt_queue_message: json['mqtt_queue_message'],
);
}
}
// ignore_for_file: unused_import
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
...@@ -5,6 +7,7 @@ import 'package:flutter/material.dart'; ...@@ -5,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:loading_animations/loading_animations.dart'; import 'package:loading_animations/loading_animations.dart';
import 'package:manager_queue/models/queue.dart'; import 'package:manager_queue/models/queue.dart';
import 'package:manager_queue/models/config.dart';
import 'package:mqtt_client/mqtt_client.dart'; import 'package:mqtt_client/mqtt_client.dart';
import 'package:manager_queue/api.dart'; import 'package:manager_queue/api.dart';
import 'package:manager_queue/bloc/queue_bloc.dart'; import 'package:manager_queue/bloc/queue_bloc.dart';
...@@ -24,6 +27,19 @@ class Splash extends StatefulWidget { ...@@ -24,6 +27,19 @@ class Splash extends StatefulWidget {
} }
class _SplashState extends State<Splash> { class _SplashState extends State<Splash> {
Future<List<ConfigApl>> config({url = ""}) async {
// String? base_urlapi = prefs.getString('base_url');
List<ConfigApl> apiConfigs = [];
try {
var apiConfig = await ApiQueue.getConfig();
apiConfigs = apiConfig;
} catch (e) {
print("Error pada splash $e");
}
return apiConfigs;
}
Future<String> loadBaseUrl() async { Future<String> loadBaseUrl() async {
String data = await bundel_root.rootBundle.loadString('baseurl.json'); String data = await bundel_root.rootBundle.loadString('baseurl.json');
return jsonDecode(data)['base_url'].toString(); return jsonDecode(data)['base_url'].toString();
...@@ -100,11 +116,31 @@ class _SplashState extends State<Splash> { ...@@ -100,11 +116,31 @@ class _SplashState extends State<Splash> {
void initState() { void initState() {
loadBaseUrl().then((value) async { loadBaseUrl().then((value) async {
await prefs.setString('base_url', value); await prefs.setString('base_url', value);
await prefs.setString('uuid', uuidUnique.v4()); print(value);
runMqTT(); // await prefs.setString('uuid', uuidUnique.v4());
Future.delayed(const Duration(seconds: 3), () { // await prefs.setString('mqtt_url', value[0].mqtt_url);
Navigator.push(context, MaterialPageRoute(builder: (_) => MainPage())); // await prefs.setInt('mqtt_port', value[0].mqtt_port);
// await prefs.setString('mqtt_queue_topic', value[0].mqtt_queue_topic);
// await prefs.setString('mqtt_queue_message', value[0].mqtt_queue_message);
config(url: value).then((value) async {
await prefs.setString('mqtt_url', value[0].mqtt_url);
await prefs.setInt('mqtt_port', value[0].mqtt_port);
await prefs.setString('mqtt_queue_topic', value[0].mqtt_queue_topic);
await prefs.setString(
'mqtt_queue_message', value[0].mqtt_queue_message);
await prefs.setString('uuid', uuidUnique.v4());
runMqTT();
Future.delayed(const Duration(seconds: 3), () {
Navigator.push(
context, MaterialPageRoute(builder: (_) => MainPage()));
});
}); });
// runMqTT();
// Future.delayed(const Duration(seconds: 3), () {
// Navigator.push(context, MaterialPageRoute(builder: (_) => MainPage()));
// });
}); });
super.initState(); super.initState();
......
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