На проекте огромнное количетсво фанков, потому что так устроена апишка бэка. Вопрос как мне лучше сгруппировать эти фанки? Я долго думал, но кроме try catch блок кинуть все фанки больше идей не приходило. Ниже как раз они и это только 1\4 часть их...
export const addProductInCart = createAsyncThunk('bascket/addProductInCart', async (product_id: string) => {
try {
const response = await ClientAPI({
url: 'gpnntc_mp.cart.product.add',
params: {
product_id,
},
})
return response.data.result
} catch (err) {}
})
export const setCartProductTopic = createAsyncThunk<'success', { product_id: string; topic: string }>(
'bascket/setCartProductTopic',
async ({ product_id, topic }) => {
try {
const response = await ClientAPI({
method: 'POST',
url: 'gpnntc_mp.cart.product.topic.set',
data: { product_id, topic },
})
return response.data.result
} catch (err) {}
}
)
export const setCartProductComment = createAsyncThunk<'success', { product_id: string; comment: string }>(
'bascket/setCartProductTopic',
async ({ product_id, comment }) => {
try {
const response = await ClientAPI({
method: 'POST',
url: 'gpnntc_mp.cart.product.comment.set',
data: { product_id, comment },
})
return response.data.result
} catch (err) {}
}
)
export const setCartProductManager = createAsyncThunk<'success', { productId: string; productManagerId: string }>(
'bascket/setCartProductManager',
async ({ productId, productManagerId }) => {
try {
const response = await ClientAPI({
method: 'POST',
url: 'gpnntc_mp.cart.product.manager.set',
data: {
product_id: productId,
product_manager_id: productManagerId,
},
})
return response.data.result
} catch (err) {}
}
)
export const addCartProductPart = createAsyncThunk<'success', { partId: string; productId: string }>(
'bascket/setCartProductPart',
async ({ partId, productId }) => {
try {
const response = await ClientAPI({
method: 'POST',
url: 'gpnntc_mp.cart.product.part.add',
data: {
product_id: productId,
part_id: partId,
},
})
return response.data.result
} catch (err) {}
}
)
export const delCartProductPart = createAsyncThunk<'success', { partId: string | undefined; productId: string }>(
'bascket/delCartProductPart',
async ({ partId, productId }) => {
if (partId === undefined) return false
try {
const response = await ClientAPI({
method: 'POST',
url: 'gpnntc_mp.cart.product.part.del',
data: {
product_id: productId,
part_id: partId,
},
})
return response.data.result
} catch (err) {}
}
)
export const getInstanceProducts = createAsyncThunk<InstanceProduct[]>('bascket/getInstanceProducts', async () => {
try {
const response = await ClientAPI({
url: 'gpnntc_mp.cart.product.list',
})
return response.data.result
} catch (err) {}
})
export const getInstanceProductByID = createAsyncThunk<InstanceProduct[], { productId: string }>(
'bascket/getInstanceProductByID',
async ({ productId }) => {
try {
const response = await ClientAPI({
url: 'gpnntc_mp.cart.product.item',
params: { product_id: productId },
})
return response.data.result
} catch (err) {}
}
)