30 lines
898 B
TypeScript

import { createAction, createAsyncThunk } from '@reduxjs/toolkit';
import { getCustomersApi, deleteCustomerApi } from '@api';
import { CustomerItem, DeleteCustomerResponse } from '@interfaces';
export const resetCustomersState = createAction('customers/resetState');
export const getCustomers = createAsyncThunk<CustomerItem[]>(
'customers/getCustomers',
async (_, { rejectWithValue }) => {
try {
return await getCustomersApi();
} catch (error: any) {
return rejectWithValue(error.message || 'Failed to load customers');
}
},
);
export const deleteCustomer = createAsyncThunk<
DeleteCustomerResponse,
{ userid: string }
>('customers/deleteCustomer', async (payload, { rejectWithValue }) => {
try {
return await deleteCustomerApi(payload.userid);
} catch (error: any) {
return rejectWithValue(error.message || 'Failed to delete customer');
}
});