loginDealer method

  1. @override
Future<Response<DealerLoginResponse>> loginDealer({
  1. required String authToken,
  2. required String dealerCode,
  3. required String password,
})
override

Implementation

@override
Future<Response<DealerLoginResponse>> loginDealer({
  required String authToken,
  required String dealerCode,
  required String password,
}) async {
  final body = {'dealer_code': dealerCode, 'password': password};

  return await _loginClient
      .post<Map<String, dynamic>>(
    ApiConstants.loginUser,
    data: body,
    options: Options(
      headers: {
        'Authentication': authToken,
        'Content-Type': Headers.formUrlEncodedContentType,
      },
    ),
  )
      .then((response) {
    final parsedResponse = DealerLoginResponse.fromJson(
      response.data ?? {},
    );

    return Response<DealerLoginResponse>(
      data: parsedResponse,
      headers: response.headers,
      requestOptions: response.requestOptions,
      statusCode: response.statusCode,
      statusMessage: response.statusMessage,
      extra: response.extra,
    );
  })
      .catchError((error) {
    String errorMessage = 'Login failed';
    if (error is DioException) {
      errorMessage = error.response?.data?['message'] ??
          error.message ??
          'Unable to login';
    }
    _showError(errorMessage);
    throw error;
  });
}