From 203eda75e48b4283f898ba7792b732558bb608e5 Mon Sep 17 00:00:00 2001 From: efrilm Date: Thu, 7 Aug 2025 21:43:13 +0700 Subject: [PATCH] feat: save outlet to local --- .../datasources/outlet_local_datasource.dart | 29 +++++++++++++++++++ .../outlet_remote_data_source.dart | 3 ++ 2 files changed, 32 insertions(+) create mode 100644 lib/data/datasources/outlet_local_datasource.dart diff --git a/lib/data/datasources/outlet_local_datasource.dart b/lib/data/datasources/outlet_local_datasource.dart new file mode 100644 index 0000000..e5e73c9 --- /dev/null +++ b/lib/data/datasources/outlet_local_datasource.dart @@ -0,0 +1,29 @@ +import 'dart:developer'; + +import 'package:enaklo_pos/presentation/home/models/outlet_model.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class OutletLocalDatasource { + Future save(Outlet outlet) async { + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('outlet', outlet.toJson()); + } catch (e) { + log('Error saving outlet: $e'); + } + } + + Future remove() async { + final prefs = await SharedPreferences.getInstance(); + await prefs.remove('outlet'); + } + + Future get() async { + final prefs = await SharedPreferences.getInstance(); + final outlet = prefs.getString('outlet'); + + log('Auth data: $outlet'); + + return Outlet.fromJson(outlet!); + } +} diff --git a/lib/data/datasources/outlet_remote_data_source.dart b/lib/data/datasources/outlet_remote_data_source.dart index 0a351af..c1a66b0 100644 --- a/lib/data/datasources/outlet_remote_data_source.dart +++ b/lib/data/datasources/outlet_remote_data_source.dart @@ -2,6 +2,7 @@ import 'dart:developer'; import 'package:dartz/dartz.dart'; import 'package:dio/dio.dart'; import 'package:enaklo_pos/core/network/dio_client.dart'; +import 'package:enaklo_pos/data/datasources/outlet_local_datasource.dart'; import 'package:enaklo_pos/data/datasources/settings_local_datasource.dart'; import 'package:enaklo_pos/presentation/home/models/outlet_model.dart'; import 'package:enaklo_pos/presentation/setting/models/tax_model.dart'; @@ -78,6 +79,8 @@ class OutletRemoteDataSource { value: data.data?.taxRate ?? 0, ), ); + + await OutletLocalDatasource().save(data.data!); return Right(data); } else { return const Left('Failed to get outlets');