From 5120ebe827e20b4739e4708db366a563a4604fe9 Mon Sep 17 00:00:00 2001 From: sindhu Date: Mon, 17 Feb 2025 07:16:25 +0700 Subject: [PATCH] step 12 : add userId di home dan proses upload file --- lib/repository/scan_repository.dart | 15 ++++++++++----- lib/screen/home/home_screen.dart | 4 ++++ lib/screen/home/list_riwayat_scan_provider.dart | 2 ++ lib/screen/scan/scan_screen.dart | 8 ++++++-- lib/screen/scan/upload_scan_provider.dart | 9 ++------- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/lib/repository/scan_repository.dart b/lib/repository/scan_repository.dart index e7f5dc7..b55b969 100644 --- a/lib/repository/scan_repository.dart +++ b/lib/repository/scan_repository.dart @@ -6,10 +6,13 @@ class ScanRepository extends BaseRepository { Future> 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.empty(growable: true); resp['data'].forEach((e) { @@ -23,15 +26,17 @@ class ScanRepository extends BaseRepository { Future 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']; } diff --git a/lib/screen/home/home_screen.dart b/lib/screen/home/home_screen.dart index eee916b..5766cb9 100644 --- a/lib/screen/home/home_screen.dart +++ b/lib/screen/home/home_screen.dart @@ -27,6 +27,7 @@ class HomeScreen extends HookConsumerWidget { final listScanArr = useState>( 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( diff --git a/lib/screen/home/list_riwayat_scan_provider.dart b/lib/screen/home/list_riwayat_scan_provider.dart index 3eab01c..00d6f03 100644 --- a/lib/screen/home/list_riwayat_scan_provider.dart +++ b/lib/screen/home/list_riwayat_scan_provider.dart @@ -18,6 +18,7 @@ class ListRiwayatScanNotifier extends StateNotifier { : super(ListRiwayatScanStateInit()); void listRiwayatScan({ required String host, + required String userId, }) async { try { state = ListRiwayatScanStateLoading(); @@ -25,6 +26,7 @@ class ListRiwayatScanNotifier extends StateNotifier { dio: ref.read(dioProvider), ).listRiwayatScanRepo( host: host, + userId:userId ); // print(resp); diff --git a/lib/screen/scan/scan_screen.dart b/lib/screen/scan/scan_screen.dart index 6382654..f8f2808 100644 --- a/lib/screen/scan/scan_screen.dart +++ b/lib/screen/scan/scan_screen.dart @@ -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(false); final currentUser = ref.watch(currentUserProvider); final host = currentUser?.host ?? ""; + final userId = currentUser?.model.userId ?? ""; useEffect(() { Future 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), ); } }); diff --git a/lib/screen/scan/upload_scan_provider.dart b/lib/screen/scan/upload_scan_provider.dart index c1e12da..71b8a91 100644 --- a/lib/screen/scan/upload_scan_provider.dart +++ b/lib/screen/scan/upload_scan_provider.dart @@ -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 { 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 { ).prosesScan( host: host, base64File: base64File, + userId: userId, ); // print(resp);