Возвращает список доступных текущему пользователю тренингов
function getAvailableTrainings(
ctx: app.Ctx,
props: {
parentId?: string, // если не указано - вернет все дерево от корня. если указать - вернутся только дочерние к указанному тренингу
buildTree?: boolean // если указать - вернет в ответ в виде дерева
}
) : Promise<TrainingBasicInfo[]>
// Результат: массив объектов следующего типа
export type TrainingBasicInfo = {
id: number
parent_id: number | null
lesson_count: number
title: string
description: string
image: string | null
image_hash: string | null
image_url: string | null
children?: TrainingBasicInfo[]
}
Параметр | Тип | Описание |
---|---|---|
ctx | app.Ctx | Контекст запроса |
props | object | Свойства описаны ниже |
props.parentId | string | Id родительского тренинга. Может быть пустым |
props.buildTree | boolean | Если не указан - выдает плоский список. Если указать true - выдаст объект с вложенными подобъектами |
import {getAvailableTrainings} from '@getcourse/sdk'
// Вернуть список тренингов в виде JSON
app.get('/', async(ctx,req) => {
const trainings = await getAvailableTrainings(ctx, {buildTree: true});
return trainings
})
import {getAvailableTrainings} from '@getcourse/sdk'
import {jsx} from '@app/html-jsx'
// Список тренингов в HTML виде
app.html(ctx, async(ctx, req) => {
const trainings = await getAvailableTrainings(ctx)
return <html>
{trainings.map( training =>
<a href={`/teach/control/training/id/${training.id}`}>
{training.title}
</a>
)}
</html>
})
import {getAvailableTrainings} from '@getcourse/sdk'
app.html(ctx, async(ctx, req) => {
const trainings = await getAvailableTrainings(ctx)
return <screen>
{trainings.map( training => <list-item
icon={{
text: training.title.substring(0,1),
url: training.image_url,
style: {
backgroundColor: '#34495e',
color: 'white',
borderRadius: 10,
},
size: 'lg',
}}
content={{
title: training.title,
subTitle: training.description
}}/>
)}
</screen>
})