feat: API 통합 2차 작업 완료
- 자동 로그인 구현: 앱 시작 시 토큰 확인 후 적절한 화면으로 라우팅 - AuthInterceptor 개선: AuthService와 통합하여 토큰 관리 일원화 - 로그아웃 기능 개선: AuthService를 사용한 API 로그아웃 처리 - 대시보드 API 연동: MockDataService에서 실제 API로 완전 전환 - Dashboard DTO 모델 생성 (OverviewStats, RecentActivity 등) - DashboardRemoteDataSource 및 DashboardService 구현 - OverviewController를 ChangeNotifier 패턴으로 개선 - OverviewScreenRedesign에 Provider 패턴 적용 - API 통합 진행 상황 문서 업데이트
This commit is contained in:
42
lib/services/dashboard_service.dart
Normal file
42
lib/services/dashboard_service.dart
Normal file
@@ -0,0 +1,42 @@
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:superport/core/errors/failures.dart';
|
||||
import 'package:superport/data/datasources/remote/dashboard_remote_datasource.dart';
|
||||
import 'package:superport/data/models/dashboard/equipment_status_distribution.dart';
|
||||
import 'package:superport/data/models/dashboard/expiring_license.dart';
|
||||
import 'package:superport/data/models/dashboard/overview_stats.dart';
|
||||
import 'package:superport/data/models/dashboard/recent_activity.dart';
|
||||
|
||||
abstract class DashboardService {
|
||||
Future<Either<Failure, OverviewStats>> getOverviewStats();
|
||||
Future<Either<Failure, List<RecentActivity>>> getRecentActivities();
|
||||
Future<Either<Failure, EquipmentStatusDistribution>> getEquipmentStatusDistribution();
|
||||
Future<Either<Failure, List<ExpiringLicense>>> getExpiringLicenses({int days = 30});
|
||||
}
|
||||
|
||||
@LazySingleton(as: DashboardService)
|
||||
class DashboardServiceImpl implements DashboardService {
|
||||
final DashboardRemoteDataSource _remoteDataSource;
|
||||
|
||||
DashboardServiceImpl(this._remoteDataSource);
|
||||
|
||||
@override
|
||||
Future<Either<Failure, OverviewStats>> getOverviewStats() async {
|
||||
return await _remoteDataSource.getOverviewStats();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, List<RecentActivity>>> getRecentActivities() async {
|
||||
return await _remoteDataSource.getRecentActivities();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, EquipmentStatusDistribution>> getEquipmentStatusDistribution() async {
|
||||
return await _remoteDataSource.getEquipmentStatusDistribution();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Either<Failure, List<ExpiringLicense>>> getExpiringLicenses({int days = 30}) async {
|
||||
return await _remoteDataSource.getExpiringLicenses(days: days);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user