ironing out erp bugs
This commit is contained in:
73
lib/screens/onboarding/phone/phone_controller.dart
Normal file
73
lib/screens/onboarding/phone/phone_controller.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user