32 lines
841 B
JavaScript
32 lines
841 B
JavaScript
import { request } from './request'
|
|
import { toArray, toNumber } from './mappers'
|
|
import { toOrderBrief } from './order'
|
|
|
|
const toPlan = (item = {}) => ({
|
|
id: item.id ?? null,
|
|
name: item.name || '',
|
|
price: item.price || '0.00',
|
|
total_count: toNumber(item.total_count),
|
|
is_active: item.is_active === true,
|
|
courses: toArray(item.courses).map((course) => ({
|
|
id: course.id ?? null,
|
|
title: course.title || ''
|
|
})),
|
|
created_at: item.created_at || ''
|
|
})
|
|
|
|
export const membershipApi = {
|
|
getPlans() {
|
|
return request({
|
|
url: '/api/membership/plans'
|
|
}).then((data) => toArray(data.items || data).map(toPlan))
|
|
},
|
|
createMembershipOrder(planId) {
|
|
return request({
|
|
url: '/api/membership/orders',
|
|
method: 'POST',
|
|
data: { plan_id: planId }
|
|
}).then((data) => toOrderBrief(data.order))
|
|
}
|
|
}
|