diff --git a/lib/features/profile/presentation/bloc/profile_cubit/profile_cubit.dart b/lib/features/profile/presentation/bloc/profile_cubit/profile_cubit.dart index 235a16bf..5a322425 100644 --- a/lib/features/profile/presentation/bloc/profile_cubit/profile_cubit.dart +++ b/lib/features/profile/presentation/bloc/profile_cubit/profile_cubit.dart @@ -18,11 +18,13 @@ class ProfileCubit extends Cubit { getProfileBySlug(String slug) async { try { - emit(ProfileState.loaded( - profile: await profileRepository.getProfileBySlug(slug), - profileDetails: await profileRepository.getMyProfileDetails(), - blogPosts: await profileRepository.getBlogPostsByAuthorSlug(slug: slug), - ),); + emit( + ProfileState.loaded( + profile: await profileRepository.getProfileBySlug(slug), + profileDetails: await profileRepository.getProfileDetailsBySlug(slug), + blogPosts: await profileRepository.getBlogPostsByAuthorSlug(slug: slug), + ), + ); } catch (e) { emit(ProfileState.error(errorMessage: e.toString())); } @@ -34,13 +36,15 @@ class ProfileCubit extends Cubit { _currentPeriod = period; try { final profile = await profileRepository.getMyProfile(); - emit(ProfileState.loaded( - profile: profile, - profileDetails: await profileRepository.getMyProfileDetails(), - blogPosts: await profileRepository.getBlogPostsByAuthorSlug(slug: profile.slug), - weightPoints: await profileRepository.getWeight(period: period), - circumferencePoints: await profileRepository.getCircumferences(period: period), - ),); + emit( + ProfileState.loaded( + profile: profile, + profileDetails: await profileRepository.getMyProfileDetails(), + blogPosts: await profileRepository.getBlogPostsByAuthorSlug(slug: profile.slug), + weightPoints: await profileRepository.getWeight(period: period), + circumferencePoints: await profileRepository.getCircumferences(period: period), + ), + ); } catch (e) { emit(ProfileState.error(errorMessage: e.toString())); } diff --git a/lib/features/profile/repositories/profile_repository.dart b/lib/features/profile/repositories/profile_repository.dart index 5bb2e00f..96825109 100644 --- a/lib/features/profile/repositories/profile_repository.dart +++ b/lib/features/profile/repositories/profile_repository.dart @@ -22,6 +22,14 @@ class ProfileRepository { } } + Future getProfileDetailsBySlug(String slug) async { + try { + return await profileService.getProfileDetailsBySlug(slug: slug); + } catch (e) { + rethrow; + } + } + Future getMyProfile() async { try { return await profileService.getMyProfile(); diff --git a/lib/features/profile/services/profile_service.dart b/lib/features/profile/services/profile_service.dart index 4517fee2..8cab7056 100644 --- a/lib/features/profile/services/profile_service.dart +++ b/lib/features/profile/services/profile_service.dart @@ -25,6 +25,11 @@ abstract class ProfileService { @GET('/api/profile/detailz') Future getMyProfileDetails(); + @GET('/api/profile/detailz/{slug}') + Future getProfileDetailsBySlug({ + @Path() required String slug, + }); + @POST('/api/profile/addCircumference') Future addCircumference({ @Part(name: 'chest_circumference') required int chestCircumference, diff --git a/lib/features/profile/services/profile_service.g.dart b/lib/features/profile/services/profile_service.g.dart index 44a66b83..a0e72b67 100644 --- a/lib/features/profile/services/profile_service.g.dart +++ b/lib/features/profile/services/profile_service.g.dart @@ -120,6 +120,40 @@ class _ProfileService implements ProfileService { return _value; } + @override + Future getProfileDetailsBySlug( + {required String slug}) async { + final _extra = {}; + final queryParameters = {}; + final _headers = {}; + const Map? _data = null; + final _options = _setStreamType(Options( + method: 'GET', + headers: _headers, + extra: _extra, + ) + .compose( + _dio.options, + '/api/profile/detailz/${slug}', + queryParameters: queryParameters, + data: _data, + ) + .copyWith( + baseUrl: _combineBaseUrls( + _dio.options.baseUrl, + baseUrl, + ))); + final _result = await _dio.fetch>(_options); + late ProfileDetailsModel _value; + try { + _value = ProfileDetailsModel.fromJson(_result.data!); + } on Object catch (e, s) { + errorLogger?.logError(e, s, _options); + rethrow; + } + return _value; + } + @override Future addCircumference({ required int chestCircumference,