Untitled

 avatar
unknown
plain_text
9 months ago
1.4 kB
14
Indexable
 static Future<Map<String, dynamic>> signIn({
    required String email,
    required String password,
  }) async {
    try {
      final response = await http.get(Uri.parse('$dbUrl/Accounts.json'));

      if (response.statusCode == 200) {
        final Map<String, dynamic>? accounts = json.decode(response.body);

        if (accounts != null) {
          for (var accountEntry in accounts.entries) {
            final account = accountEntry.value;

            if (account['Email'] == email) {
              if (account['Password'] == _hashPassword(password)) {
                return {
                  'success': true,
                  'message': 'Login successful!',
                  'account': account,
                  'accountId': accountEntry.key,
                };
              } else {
                return {'success': false, 'error': 'Incorrect password.'};
              }
            }
          }

          return {'success': false, 'error': 'Invalid email or password.'};
        } else {
          return {'success': false, 'error': 'No accounts found.'};
        }
      } else {
        return {
          'success': false,
          'error': 'Failed to sign in. Please try again.',
        };
      }
    } catch (e) {
      return {'success': false, 'error': 'An error occurred: $e'};
    }
  }
Editor is loading...
Leave a Comment