forked from eatvio/eatvio_app
107 lines
4.2 KiB
Dart
107 lines
4.2 KiB
Dart
import 'package:eatvio_app/features/chat/repositories/chat_repository.dart';
|
|
import 'package:eatvio_app/features/chat/services/chat_service.dart';
|
|
import 'package:eatvio_app/features/consultant/become_consultant/models/consultation_request_model.dart';
|
|
import 'package:eatvio_app/features/consultant/become_consultant/repositories/consultant_repository.dart';
|
|
import 'package:eatvio_app/features/consultant/become_consultant/services/consultant_service.dart';
|
|
import 'package:eatvio_app/features/feed/models/feed_blog_post_model.dart';
|
|
import 'package:eatvio_app/features/profile/models/circumference_model.dart';
|
|
import 'package:eatvio_app/features/profile/models/profile_model.dart';
|
|
import 'package:eatvio_app/features/profile/models/weight_model.dart';
|
|
import 'package:eatvio_app/features/profile/repositories/profile_repository.dart';
|
|
import 'package:eatvio_app/features/profile/services/profile_service.dart';
|
|
|
|
import '../fixture_reader.dart';
|
|
|
|
class FixtureProfileRepository extends ProfileRepository {
|
|
FixtureProfileRepository() : super(profileService: _NoopProfileService());
|
|
|
|
final List<Map<String, dynamic>> addWeightRequests = <Map<String, dynamic>>[];
|
|
final List<Map<String, dynamic>> addCircumferenceRequests = <Map<String, dynamic>>[];
|
|
|
|
@override
|
|
Future<ProfileModel> getMyProfile() async {
|
|
final profileFixture = FixtureReader.readAsMap('profile/my_profile_response.json');
|
|
return ProfileModel.fromJson(profileFixture);
|
|
}
|
|
|
|
@override
|
|
Future<ProfileDetailsModel> getMyProfileDetails() async {
|
|
final detailsFixture = FixtureReader.readAsMap('profile/profile_details_response.json');
|
|
return ProfileDetailsModel.fromJson(detailsFixture);
|
|
}
|
|
|
|
@override
|
|
Future<void> addWeight({required double weight}) async {
|
|
addWeightRequests.add({'weight': weight});
|
|
}
|
|
|
|
@override
|
|
Future<void> addCircumference({required int chestCircumference, required int waistCircumference, required int hipCircumference}) async {
|
|
addCircumferenceRequests.add({'chest_circumference': chestCircumference, 'waist_circumference': waistCircumference, 'hip_circumference': hipCircumference});
|
|
}
|
|
|
|
@override
|
|
Future<List<WeightModel>> getWeight({required String period, String? slug}) async {
|
|
final weightListFixture = FixtureReader.readAsList('profile/weight_list_response.json');
|
|
return weightListFixture.map((item) => WeightModel.fromJson(item as Map<String, dynamic>)).toList();
|
|
}
|
|
|
|
@override
|
|
Future<List<CircumferenceModel>> getCircumferences({required String period, String? slug}) async {
|
|
final circumferenceListFixture = FixtureReader.readAsList('profile/circumference_list_response.json');
|
|
return circumferenceListFixture.map((item) => CircumferenceModel.fromJson(item as Map<String, dynamic>)).toList();
|
|
}
|
|
|
|
@override
|
|
Future<List<FeedBlogPostModel>> getBlogPostsByAuthorSlug({required String slug}) async {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
class _NoopProfileService implements ProfileService {
|
|
@override
|
|
noSuchMethod(Invocation invocation) => throw UnimplementedError('ProfileService call ${invocation.memberName}');
|
|
}
|
|
|
|
class FixtureChatRepository extends ChatRepository {
|
|
FixtureChatRepository() : super(chatService: _NoopChatService());
|
|
|
|
@override
|
|
Future<String> getChatByUserSlug(String slug) async {
|
|
return 'chat-uuid-123';
|
|
}
|
|
}
|
|
|
|
class _NoopChatService implements ChatService {
|
|
@override
|
|
noSuchMethod(Invocation invocation) => throw UnimplementedError('ChatService call ${invocation.memberName}');
|
|
}
|
|
|
|
class FixtureConsultantRepository extends ConsultantRepository {
|
|
FixtureConsultantRepository() : super(consultantService: _NoopConsultantService());
|
|
|
|
@override
|
|
Future<ConsultationRequestModel> getConsultantRequestStatus(String slug) async {
|
|
return const ConsultationRequestModel(
|
|
educationModel: EducationModel(
|
|
hasMedicalEducation: 1,
|
|
completedCourses: null,
|
|
vkLink: null,
|
|
instaLink: null,
|
|
fbLink: null,
|
|
tgLink: null,
|
|
personalSiteLink: null,
|
|
requestState: ModerationStatus.approved,
|
|
),
|
|
photos: [],
|
|
ratingPlace: null,
|
|
canceledModeration: null,
|
|
);
|
|
}
|
|
}
|
|
|
|
class _NoopConsultantService implements ConsultantService {
|
|
@override
|
|
noSuchMethod(Invocation invocation) => throw UnimplementedError('ConsultantService call ${invocation.memberName}');
|
|
}
|