50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
// ignore_for_file: prefer_single_quotes
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'package:dio/dio.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:tm_app/data/services/model/login_response/login_response_model.dart';
|
|
|
|
import '../../core/network/network_manager.dart';
|
|
import '../../core/utils/result.dart';
|
|
|
|
class AuthService {
|
|
AuthService({required NetworkManager networkManager})
|
|
: _networkManager = networkManager;
|
|
|
|
final NetworkManager _networkManager;
|
|
|
|
Future<Result<LoginResponseModel>> login({
|
|
required String username,
|
|
required String password,
|
|
}) async {
|
|
var headers = {
|
|
'accept': 'application/json',
|
|
'Content-Type': 'application/json',
|
|
};
|
|
var data = jsonEncode({"password": "Nima.1998", "username": "nakhostin"});
|
|
var dio = Dio(
|
|
BaseOptions(baseUrl: 'http://10.0.2.2:8081', headers: headers),
|
|
);
|
|
var response = await dio.request(
|
|
'/admin/v1/profile/login',
|
|
options: Options(method: 'POST'),
|
|
data: data,
|
|
);
|
|
|
|
if (response.statusCode == 200) {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final token = response.data['data']?['access_token'];
|
|
prefs.setString('token', token);
|
|
if (token != null) {
|
|
await prefs.setString('bearer', token);
|
|
}
|
|
print(json.encode(response.data));
|
|
} else {
|
|
print(response.statusMessage);
|
|
}
|
|
return Result.ok(LoginResponseModel.fromJson(response.data));
|
|
}
|
|
}
|