sapaly_store/lib/features/services/auth_service.dart

81 lines
2.3 KiB
Dart

// ignore_for_file: use_build_context_synchronously
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:sapaly_shop/constants/global_variables.dart';
import 'package:sapaly_shop/constants/utils.dart';
import 'package:sapaly_shop/models/auth/login/login_request_model.dart';
import 'package:sapaly_shop/models/auth/login/login_response_model.dart';
import 'package:sapaly_shop/models/auth/register/register_request_model.dart';
import 'package:sapaly_shop/models/auth/register/register_response_model.dart';
import '../../constants/error_handling.dart';
class AuthService {
// Register
Future<void> register({
required RegisterRequestModel registerRequestModel,
required BuildContext context,
}) async {
try {
var response = await http.post(
Uri.parse('$kBaseUrl/jwt/register'),
body: registerRequestModel.toJson(),
headers: {'Accept': 'application/json'},
);
if (response.statusCode == HttpStatus.ok) {
var data = response.body;
var registerResponse = registerResponseModelFromJson(data);
}
httpErrorHandle(
response: response,
context: context,
onSuccess: () {
showSnackBar(
context,
'successfully_created_now_login',
);
},
);
} catch (e) {
showSnackBar(context, e.toString());
debugPrint('Register Repsponse $e');
}
}
Future<void> login({
required LoginRequestModel loginRequestModel,
required BuildContext context,
}) async {
try {
var response = await http.post(Uri.parse('$kBaseUrl/jwt/login'),
body: loginRequestModel.toMap(),
headers: {
'Accept': 'application/json',
});
if (response.statusCode == HttpStatus.ok) {
var data = response.body;
var loginResponse = LoginResponseModel.fromJson(data);
debugPrint('EMAIL ${loginResponse.user.email}');
}
httpErrorHandle(
response: response,
context: context,
onSuccess: () {
showSnackBar(
context,
'successfully_created_now_login',
);
},
);
} catch (e) {
showSnackBar(context, e.toString());
debugPrint('Login Response ${e.toString()}');
}
}
}