forked from eatvio/eatvio_app
feat(auth): implement OAuth verification request and confirmation flow with error handling and UI updates
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'oauth_verification_confirm_request.freezed.dart';
|
||||
part 'oauth_verification_confirm_request.g.dart';
|
||||
|
||||
@freezed
|
||||
abstract class OAuthVerificationConfirmRequest with _$OAuthVerificationConfirmRequest {
|
||||
const factory OAuthVerificationConfirmRequest({
|
||||
@JsonKey(name: 'access_token') required String accessToken,
|
||||
@JsonKey(name: 'refresh_token') required String refreshToken,
|
||||
@JsonKey(name: 'client_id') required String clientId,
|
||||
required String provider,
|
||||
required String id,
|
||||
String? email,
|
||||
String? phone,
|
||||
required String code,
|
||||
@JsonKey(name: 'verification_type') required String verificationType,
|
||||
@JsonKey(name: 'first_name') required String firstName,
|
||||
@JsonKey(name: 'last_name') required String lastName,
|
||||
@JsonKey(name: 'date_of_birth') required String dateOfBirth,
|
||||
required String gender,
|
||||
required int weight,
|
||||
required int height,
|
||||
}) = _OAuthVerificationConfirmRequest;
|
||||
|
||||
factory OAuthVerificationConfirmRequest.fromJson(Map<String, dynamic> json) => _$OAuthVerificationConfirmRequestFromJson(json);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'oauth_verification_confirm_response.freezed.dart';
|
||||
part 'oauth_verification_confirm_response.g.dart';
|
||||
|
||||
@freezed
|
||||
abstract class OAuthVerificationConfirmResponse with _$OAuthVerificationConfirmResponse {
|
||||
const factory OAuthVerificationConfirmResponse({
|
||||
required bool success,
|
||||
required String message,
|
||||
required String token,
|
||||
required Map<String, dynamic> user,
|
||||
@JsonKey(name: 'is_new_user') required bool isNewUser,
|
||||
}) = _OAuthVerificationConfirmResponse;
|
||||
|
||||
factory OAuthVerificationConfirmResponse.fromJson(Map<String, dynamic> json) => _$OAuthVerificationConfirmResponseFromJson(json);
|
||||
}
|
||||
|
||||
12
lib/features/auth/models/oauth_verification_request.dart
Normal file
12
lib/features/auth/models/oauth_verification_request.dart
Normal file
@@ -0,0 +1,12 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'oauth_verification_request.freezed.dart';
|
||||
part 'oauth_verification_request.g.dart';
|
||||
|
||||
@freezed
|
||||
abstract class OAuthVerificationRequest with _$OAuthVerificationRequest {
|
||||
const factory OAuthVerificationRequest({String? email, String? phone}) = _OAuthVerificationRequest;
|
||||
|
||||
factory OAuthVerificationRequest.fromJson(Map<String, dynamic> json) => _$OAuthVerificationRequestFromJson(json);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
|
||||
part 'oauth_verification_request_response.freezed.dart';
|
||||
part 'oauth_verification_request_response.g.dart';
|
||||
|
||||
@freezed
|
||||
abstract class OAuthVerificationRequestResponse with _$OAuthVerificationRequestResponse {
|
||||
const factory OAuthVerificationRequestResponse({required String email, required String status}) = _OAuthVerificationRequestResponse;
|
||||
|
||||
factory OAuthVerificationRequestResponse.fromJson(Map<String, dynamic> json) => _$OAuthVerificationRequestResponseFromJson(json);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user