You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.6 KiB
68 lines
1.6 KiB
import apiService from './apiClient'; |
|
|
|
|
|
export interface AddToCartParams { |
|
offer_id: number; |
|
sku_id: number; |
|
quantity: number; |
|
} |
|
|
|
export interface GetCartListResponse { |
|
items: GetCartList[] |
|
} |
|
export interface attributes{ |
|
attribute_name:string, |
|
attribute_name_trans:string, |
|
attribute_name_trans_ar:string, |
|
attribute_name_trans_en:string, |
|
attribute_value:string, |
|
sku_id:number, |
|
sku_image_url:string, |
|
value:string, |
|
value_trans:string, |
|
value_trans_ar:string, |
|
value_trans_en:string, |
|
attribute_id:number, |
|
|
|
} |
|
export interface CartSku { |
|
cart_item_id: number, |
|
price: number, |
|
quantity: number, |
|
selected: number, |
|
sku_id: number, |
|
attributes:attributes[], |
|
} |
|
export interface GetCartList { |
|
"cart_id": number, |
|
"user_id": number, |
|
"offer_id": number, |
|
"sku_id": number, |
|
"quantity": number, |
|
"selected": number, |
|
"subject": string, |
|
"subject_trans": string, |
|
"subject_trans_en": string, |
|
"subject_trans_ar": string, |
|
"category_id": number, |
|
"price": number, |
|
"product_image": string, |
|
min_order_quantity:number |
|
skus:CartSku[] |
|
} |
|
export const cartApi = (data: AddToCartParams) => { |
|
return apiService.post('/api/cart', data); |
|
} |
|
|
|
|
|
export const getCartList = () => { |
|
return apiService.get<GetCartListResponse>('/api/cart'); |
|
} |
|
|
|
export const updateCartItem = (cart_id:number,data?:{cart_item_id?:number | null,selected:number | null,quantity:number | null}) => { |
|
return apiService.put(`/api/cart/${cart_id}`,data); |
|
} |
|
|
|
export const deleteCartItem = (cart_id:number,cart_item_id:number) => { |
|
return apiService.delete(`/api/cart/${cart_id}?cart_item_id=${cart_item_id}`); |
|
} |