connect-transfer-react-native-sdk
Version:
Connect Transfer React Native SDK for Mastercard Open Banking Connect
50 lines (49 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.authenticateUser = void 0;
var _toolkit = require("@reduxjs/toolkit");
var _apiClient = _interopRequireDefault(require("../apiClient"));
var _routes = require("./routes");
var _constants = require("../../constants");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const authenticateUser = key => {
return (0, _toolkit.createAsyncThunk)(key, async (_, {
getState,
rejectWithValue
}) => {
const state = getState();
const url = (0, _routes.generateRoute)(key, state);
const headers = (0, _routes.requestHeaders)(key, state);
const controller = new AbortController();
const timeoutId = setTimeout(() => {
controller.abort(); // cancel the request after timeout
}, _constants.TIMEOUT);
try {
const response = await (0, _apiClient.default)({
url,
headers,
method: _constants.METHODS.POST,
signal: controller.signal // pass abort signal to axios
});
clearTimeout(timeoutId);
return response;
} catch (error) {
const {
code,
message
} = error.toJSON?.() || {};
const apiTimeout = code === 'ERR_CANCELED' || message === 'canceled';
if (apiTimeout) {
return rejectWithValue({
code: _constants.TransferActionCodes.API_TIMEOUT
});
}
clearTimeout(timeoutId);
return rejectWithValue(error);
}
}).call();
};
exports.authenticateUser = authenticateUser;
//# sourceMappingURL=authenticate.js.map