forked from eatvio/eatvio_app
49 lines
1.5 KiB
Dart
49 lines
1.5 KiB
Dart
import 'package:dio/dio.dart';
|
|
import 'package:eatvio_app/core/locator_service.dart';
|
|
import 'package:eatvio_app/features/registration/models/user_registration_model.dart';
|
|
import 'package:eatvio_app/features/registration/models/location_model.dart';
|
|
import 'package:eatvio_app/features/registration/services/registration_service.dart';
|
|
|
|
class RegistrationRepository {
|
|
final RegistrationService registrationService;
|
|
|
|
RegistrationRepository({required this.registrationService});
|
|
|
|
Future<String> tryRegister(UserRegistrationSheet sheet) async {
|
|
try {
|
|
return (await registrationService.register(sheet: sheet.toJson()))['token']!;
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<LocationModel> getLocationsListByQuery(String query) async {
|
|
try {
|
|
return (await registrationService.getLocationsByAddress(query: query));
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<LocationModel> getLocationsListByCoordinates(String latitude, String longitude) async {
|
|
try {
|
|
return (await registrationService.getLocationsByCoordinate(latitude: latitude, longitude: longitude));
|
|
} catch (e) {
|
|
rethrow;
|
|
}
|
|
}
|
|
|
|
Future<bool> emailIsReachable(String email) async {
|
|
try {
|
|
final response = await sl<Dio>().getUri(Uri.parse('https://api.validate.email/validate?email=$email'));
|
|
if (response.data['result']['reachable'] != 'invalid') {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|