updatePassword method

Future<CkAuthResult<void>> updatePassword({
  1. required Map<String, dynamic> body,
  2. Map<String, String>? headers,
})

Reset password

Implementation

Future<CkAuthResult<void>> updatePassword({
  required Map<String, dynamic> body,
  Map<String, String>? headers,
}) {
  return loadingController.wrap(CkAuthLoadingType.updatePassword, () async {
    if (config.mockAuth) {
      config.handlers?.showLogin();
      return const CkAuthResult<void>.success(
        statusCode: 200,
        rawResponse: {'message': 'Mock password update successful'},
      );
    }
    final finalHeaders = <String, String>{};
    if (headers != null) {
      finalHeaders.addAll(headers);
    }

    final resetToken = otpManager.resetPasswordToken;
    if (resetToken != null) {
      finalHeaders[config.otpConfig.verificationTokenHeaderKey] = resetToken;
    }

    final response = await CkTransport.request(
      input: RequestInput(
        endpoint: config.endpoints.resetPassword,
        method: config.endpoints.resetPasswordMethod,
        jsonBody: body,
        headers: finalHeaders,
        requiresToken: false,
      ),
      responseBuilder: (data) => data,
      showMessage: true,
    );

    if (response.isSuccess) {
      if (config.handlers != null) {
        config.handlers!.showLogin();
      }
      return CkAuthResult<void>.success(
        statusCode: response.statusCode,
        rawResponse: response.data,
      );
    }
    return CkAuthResult<void>.failure(
      message: response.message,
      statusCode: response.statusCode,
      rawResponse: response.data,
    );
  });
}