step 12 : add userId di home dan proses upload file
This commit is contained in:
@@ -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'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user