step 12 : add userId di home dan proses upload file

This commit is contained in:
sindhu
2025-02-17 07:16:25 +07:00
parent 0c318136e9
commit 5120ebe827
5 changed files with 24 additions and 14 deletions

View File

@@ -6,10 +6,13 @@ class ScanRepository extends BaseRepository {
Future<List<PersonKtp>> listRiwayatScanRepo({
required String host,
required String userId,
}) async {
// final service = "${Constant.baseUrl}xauth/login";
final service = "http://${host}/one-api/scan-ktp/Scanktp/listRiwayatScan";
final resp = await post(param: {}, service: service);
final resp = await post(param: {
"userId":userId
}, service: service);
final result = List<PersonKtp>.empty(growable: true);
resp['data'].forEach((e) {
@@ -23,15 +26,17 @@ class ScanRepository extends BaseRepository {
Future<String> prosesScan({
required String host,
required String base64File,
required String userId,
}) async {
final service = "http://${host}/one-api/scan-ktp/Scanktp/proses_scan";
final resp = await post(param:{
"base64File":base64File
final resp = await post(param: {
"base64File": base64File,
"userId": userId,
}, service: service);
if(resp['status'] == "OK"){
if (resp['status'] == "OK") {
return "Sukses Upload File";
}else{
} else {
resp['message'];
}

View File

@@ -27,6 +27,7 @@ class HomeScreen extends HookConsumerWidget {
final listScanArr = useState<List<PersonKtp>>(
List.empty(growable: true),
);
final userId = currentUser?.model.userId ?? "";
useEffect(() {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
@@ -64,6 +65,7 @@ class HomeScreen extends HookConsumerWidget {
WidgetsBinding.instance.addPostFrameCallback((timestap) async {
ref.read(listRiwayatScanProvider.notifier).listRiwayatScan(
host: host,
userId:userId,
);
});
return () {};
@@ -217,6 +219,7 @@ class HomeScreen extends HookConsumerWidget {
onRefresh: () async {
ref.read(listRiwayatScanProvider.notifier).listRiwayatScan(
host: host,
userId: userId,
);
},
child: ListView(
@@ -245,6 +248,7 @@ class HomeScreen extends HookConsumerWidget {
onRefresh: () async {
ref.read(listRiwayatScanProvider.notifier).listRiwayatScan(
host: host,
userId: userId,
);
},
child: Padding(

View File

@@ -18,6 +18,7 @@ class ListRiwayatScanNotifier extends StateNotifier<ListRiwayatScanState> {
: super(ListRiwayatScanStateInit());
void listRiwayatScan({
required String host,
required String userId,
}) async {
try {
state = ListRiwayatScanStateLoading();
@@ -25,6 +26,7 @@ class ListRiwayatScanNotifier extends StateNotifier<ListRiwayatScanState> {
dio: ref.read(dioProvider),
).listRiwayatScanRepo(
host: host,
userId:userId
);
// print(resp);

View File

@@ -1,12 +1,12 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:image/image.dart' as img;
import 'package:scanktpflutter/app/route.dart';
import '../../app/constant.dart';
import '../../provider/current_user_provider.dart';
@@ -30,6 +30,7 @@ class ScanScreen extends HookConsumerWidget {
final isLoadingUpload = useState<bool>(false);
final currentUser = ref.watch(currentUserProvider);
final host = currentUser?.host ?? "";
final userId = currentUser?.model.userId ?? "";
useEffect(() {
Future<void> initializeCamera() async {
@@ -114,6 +115,7 @@ class ScanScreen extends HookConsumerWidget {
ref.read(uploadScanProvider.notifier).uploadScan(
host: host,
base64File: base64String,
userId: userId,
);
} catch (e) {
print("Error capturing image: $e");
@@ -144,6 +146,8 @@ class ScanScreen extends HookConsumerWidget {
snackbarType.success,
Duration(seconds: 3),
);
Navigator.of(context)
.pushNamedAndRemoveUntil(homeRoute, (route) => false);
}
});
@@ -170,7 +174,7 @@ class ScanScreen extends HookConsumerWidget {
context,
'Sedang Proses Gambar...',
snackbarType.warning,
Duration(seconds: 3),
Duration(seconds: 5),
);
}
});

View File

@@ -1,15 +1,8 @@
import 'dart:convert';
import 'package:equatable/equatable.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:scanktpflutter/repository/scan_repository.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../app/constant.dart';
import '../../model/auth_model.dart';
import '../../provider/current_user_provider.dart';
import '../../provider/dio_provider.dart';
import '../../repository/auth_repository.dart';
import '../../repository/base_repository.dart';
// 3. state provider
@@ -22,6 +15,7 @@ class UploadScanNotifier extends StateNotifier<UploadScanState> {
UploadScanNotifier({required this.ref}) : super(UploadScanStateInit());
void uploadScan({
required String host,
required String userId,
required String base64File,
}) async {
try {
@@ -31,6 +25,7 @@ class UploadScanNotifier extends StateNotifier<UploadScanState> {
).prosesScan(
host: host,
base64File: base64File,
userId: userId,
);
// print(resp);