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

View File

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

View File

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

View File

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

View File

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