login method

Future<bool> login({
  1. required String username,
  2. required String password,
  3. String endpoint = '/auth/login',
})

Implementation

Future<bool> login({
  required String username,
  required String password,
  String endpoint = '/auth/login',
}) async {
  final response = await _apiService.post(
    endpoint: endpoint,
    body: {
      'username': username,
      'password': password,
    },
  );

  if (response.success && response.data != null) {
    final data = response.data;
    final String? authToken = data['token'];
    final Map<String, dynamic>? user = data['user'];

    if (authToken != null) {
      token.value = authToken;
      isAuthenticated.value = true;
      await _storageService.write(_tokenKey, authToken);

      if (user != null) {
        userData.value = user;
        await _storageService.write(_userDataKey, user);
      }

      return true;
    }
  }

  return false;
}