73 lines
2.0 KiB
Dart
73 lines
2.0 KiB
Dart
|
|
import 'package:dio/dio.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:qpay/abstracts/AbstractController.dart';
|
|
import 'package:qpay/http/http.dart';
|
|
|
|
import '../onboarding_controller.dart';
|
|
|
|
class PhoneModel {
|
|
bool isLoading = false;
|
|
String? errorMessage;
|
|
String? status = 'failed';
|
|
}
|
|
|
|
class PhoneController extends AbstractController {
|
|
PhoneModel model = PhoneModel();
|
|
@override
|
|
BuildContext context;
|
|
|
|
late OnboardingController onboardingController;
|
|
final Http http = Http();
|
|
|
|
PhoneController(this.context) {
|
|
onboardingController = Provider.of<OnboardingController>(
|
|
context,
|
|
listen: false,
|
|
);
|
|
}
|
|
|
|
void updatePhone(String phone) {
|
|
onboardingController.updatePhone(phone);
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> register() async {
|
|
Map user = {
|
|
"username": onboardingController.model.googleUser?.email,
|
|
"email": onboardingController.model.googleUser?.email,
|
|
"firstName": onboardingController.model.googleUser?.displayName?.split(" ").first,
|
|
"lastName": onboardingController.model.googleUser?.displayName?.split(" ").last,
|
|
"password": onboardingController.model.googleUser?.id,
|
|
"photoUrl": onboardingController.model.googleUser?.photoUrl,
|
|
"phone": onboardingController.model.phone
|
|
};
|
|
|
|
try {
|
|
model.isLoading = true;
|
|
|
|
Map response = await http.post(
|
|
'/auth/register',
|
|
user
|
|
);
|
|
model.status = response['state'];
|
|
if(response['state'] == 'failed') {
|
|
model.errorMessage = response['message'];
|
|
showErrorSnackBar(model.errorMessage);
|
|
}
|
|
Map body = response['body'];
|
|
body['workflowId'] = response['workflowId'];
|
|
onboardingController.updateModel(body);
|
|
} catch (e) {
|
|
logger.e(e);
|
|
showErrorSnackBar(
|
|
"Problem during registration, please try again or contact support?",
|
|
);
|
|
}
|
|
|
|
model.isLoading = false;
|
|
notifyListeners();
|
|
}
|
|
|
|
} |