UNPKG

@open-tender/cloud

Version:

A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.

79 lines (78 loc) 2.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unsubscribeReducer = exports.selectUnsubscribe = exports.resetUnsubscribe = exports.unsubscribeByKey = exports.unsubscribe = exports.UnsubscribeActionType = void 0; const tslib_1 = require("tslib"); const toolkit_1 = require("@reduxjs/toolkit"); const types_1 = require("./types"); const initialState = { loading: 'idle', error: null, success: false }; var UnsubscribeActionType; (function (UnsubscribeActionType) { UnsubscribeActionType["Unsubscribe"] = "unsubscribe/unsubscribe"; UnsubscribeActionType["UnsubscribeByKey"] = "unsubscribe/unsubscribeByKey"; })(UnsubscribeActionType = exports.UnsubscribeActionType || (exports.UnsubscribeActionType = {})); exports.unsubscribe = (0, toolkit_1.createAsyncThunk)(UnsubscribeActionType.Unsubscribe, ({ customer_id, campaign_id }, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { api } = getState().config; if (!api) return; try { yield api.postUnsubscribe(customer_id, campaign_id); return; } catch (err) { return rejectWithValue(err); } })); exports.unsubscribeByKey = (0, toolkit_1.createAsyncThunk)(UnsubscribeActionType.UnsubscribeByKey, ({ key }, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () { const { api } = getState().config; if (!api) return; try { yield api.postUnsubscribeByKey(key); return; } catch (err) { return rejectWithValue(err); } })); const unsubscribeSlice = (0, toolkit_1.createSlice)({ name: types_1.ReducerType.Unsubscribe, initialState, reducers: { resetUnsubscribe: () => initialState }, extraReducers: builder => { builder .addCase(exports.unsubscribe.fulfilled, state => { state.success = true; state.loading = 'idle'; state.error = null; }) .addCase(exports.unsubscribe.pending, state => { state.loading = 'pending'; }) .addCase(exports.unsubscribe.rejected, (state, action) => { state.loading = 'idle'; state.error = action.payload; }) .addCase(exports.unsubscribeByKey.fulfilled, state => { state.success = true; state.loading = 'idle'; state.error = null; }) .addCase(exports.unsubscribeByKey.pending, state => { state.loading = 'pending'; }) .addCase(exports.unsubscribeByKey.rejected, (state, action) => { state.loading = 'idle'; state.error = action.payload; }); } }); exports.resetUnsubscribe = unsubscribeSlice.actions.resetUnsubscribe; const selectUnsubscribe = (state) => state.Unsubscribe; exports.selectUnsubscribe = selectUnsubscribe; exports.unsubscribeReducer = unsubscribeSlice.reducer;