File tree Expand file tree Collapse file tree 5 files changed +47
-3
lines changed
presenter/express/api/v1/routes/getDiscoveryItems
functions/getCourseDetails Expand file tree Collapse file tree 5 files changed +47
-3
lines changed Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ apiVersion: v1
2
2
description : A Helm chart for kube-ts-server
3
3
name : kube-ts-server
4
4
version : 1.0.0
5
- appVersion : 1.4.38
5
+ appVersion : 1.5.0
6
6
home : https://cloud.docker.com/u/kubejs/repository/docker/kubejs/kube-ts-server
7
7
icon : https://avatars2.githubusercontent.com/u/47761918?s=200&v=4
8
8
sources :
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ replicaCount: 2
6
6
7
7
image :
8
8
repository : kubejs/kube-ts-server
9
- tag : 1.4.38
9
+ tag : 1.5.0
10
10
pullPolicy : Always
11
11
containerPort : 3000
12
12
Original file line number Diff line number Diff line change @@ -6,11 +6,17 @@ import catchErrors from '../../../../utils/errors/catchErrors';
6
6
7
7
const getDiscoveryItems = ( config : Config ) =>
8
8
catchErrors ( config , async ( req , res ) => {
9
+ // TODO: provide validation for query params
9
10
const type = req . query . type ;
10
-
11
+
11
12
let response ;
12
13
13
14
switch ( type ) {
15
+ case 'course' :
16
+ response = await config . service . getCourseDetails ( {
17
+ filter : JSON . parse ( req . query . filter ) ,
18
+ } ) ;
19
+ break ;
14
20
case 'homepage' :
15
21
default :
16
22
response = await config . service . getDiscoveryItemsForHomepage ( { } ) ;
Original file line number Diff line number Diff line change 1
1
import migrationsServiceFactory from '@js-migrations/core/dist/factory' ;
2
2
import FactoryConfig from './FactoryConfig' ;
3
3
import authFactory from './functions/auth/factory' ;
4
+ import getCourseDetails from './functions/getCourseDetails' ;
4
5
import getDiscoveryItemsForHomepage from './functions/getDiscoveryItemsForHomepage' ;
5
6
import hasPermission from './functions/hasPermission' ;
6
7
import assignRolePermission from './functions/roles/assignRolePermission' ;
@@ -16,6 +17,7 @@ export default (config: FactoryConfig) => ({
16
17
closeDbConnection : config . repo . closeDbConnection ,
17
18
courses : config . repo . courses ,
18
19
enrolments : config . repo . enrolments ,
20
+ getCourseDetails : getCourseDetails ( config ) ,
19
21
getDiscoveryItemsForHomepage : getDiscoveryItemsForHomepage ( config ) ,
20
22
hasPermission : hasPermission ( config ) ,
21
23
migrations : migrationsServiceFactory ( {
Original file line number Diff line number Diff line change
1
+ import { Filter , ItemNotFoundError } from '@js-items/foundation' ;
2
+ import _pluck from 'ramda/src/pluck' ;
3
+ import Course from '../../../types/items/Course' ;
4
+ import Config from '../../FactoryConfig' ;
5
+
6
+ export interface Options {
7
+ readonly filter : Filter < Course > ;
8
+ }
9
+
10
+ export default ( { repo } : Config ) => async ( { filter } : Options ) => {
11
+ const { items : courses } = await repo . courses . getItems ( {
12
+ filter,
13
+ } ) ;
14
+
15
+ if ( courses . length === 0 ) {
16
+ throw new ItemNotFoundError ( 'Course' ) ;
17
+ }
18
+
19
+ const course = courses [ 0 ] ;
20
+
21
+ const { item : category } = await repo . categories . getItem ( {
22
+ id : course . categoryId ,
23
+ } ) ;
24
+
25
+ const { item : user } = await repo . users . getItem ( {
26
+ id : course . userId ,
27
+ } ) ;
28
+
29
+ return {
30
+ course : {
31
+ ...course ,
32
+ category,
33
+ user,
34
+ } ,
35
+ } ;
36
+ } ;
You can’t perform that action at this time.
0 commit comments