30 lines
898 B
TypeScript
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');
|
|
}
|
|
});
|
|
|