fix(backend): Queries voor leerpaden en leerobjecten toegevoegd
This commit is contained in:
		
							parent
							
								
									933f72e32a
								
							
						
					
					
						commit
						72bbfbf9f0
					
				
					 2 changed files with 93 additions and 0 deletions
				
			
		
							
								
								
									
										57
									
								
								frontend/src/queries/learning-objects.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								frontend/src/queries/learning-objects.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| import {type MaybeRefOrGetter, toValue} from "vue"; | ||||
| import type {Language} from "@/data-objects/language.ts"; | ||||
| import {useQuery, type UseQueryReturnType} from "@tanstack/vue-query"; | ||||
| import {getLearningObjectController} from "@/controllers/controllers.ts"; | ||||
| import type {LearningObject} from "@/data-objects/learning-object.ts"; | ||||
| import type {LearningPath} from "@/data-objects/learning-path.ts"; | ||||
| 
 | ||||
| const LEARNING_OBJECT_KEY = "learningObject"; | ||||
| const learningObjectController = getLearningObjectController(); | ||||
| 
 | ||||
| export function useLearningObjectMetadataQuery( | ||||
|     hruid: MaybeRefOrGetter<string>, | ||||
|     language: MaybeRefOrGetter<Language>, | ||||
|     version: MaybeRefOrGetter<number> | ||||
| ): UseQueryReturnType<LearningObject, Error> { | ||||
|     return useQuery({ | ||||
|         queryKey: [LEARNING_OBJECT_KEY, "metadata", hruid, language, version], | ||||
|         queryFn: () => { | ||||
|             const [hruidVal, languageVal, versionVal] = [toValue(hruid), toValue(language), toValue(version)]; | ||||
|             return learningObjectController.getMetadata(hruidVal, languageVal, versionVal) | ||||
|         }, | ||||
|         enabled: () => Boolean(toValue(hruid)) && Boolean(toValue(language)) && Boolean(toValue(version)), | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| export function useLearningObjectHTMLQuery( | ||||
|     hruid: MaybeRefOrGetter<string>, | ||||
|     language: MaybeRefOrGetter<Language>, | ||||
|     version: MaybeRefOrGetter<number> | ||||
| ): UseQueryReturnType<Document, Error> { | ||||
|     return useQuery({ | ||||
|         queryKey: [LEARNING_OBJECT_KEY, "html", hruid, language, version], | ||||
|         queryFn: () => { | ||||
|             const [hruidVal, languageVal, versionVal] = [toValue(hruid), toValue(language), toValue(version)]; | ||||
|             return learningObjectController.getHTML(hruidVal, languageVal, versionVal) | ||||
|         }, | ||||
|         enabled: () => Boolean(toValue(hruid)) && Boolean(toValue(language)) && Boolean(toValue(version)), | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| export function useLearningObjectListForPathQuery( | ||||
|     learningPath: MaybeRefOrGetter<LearningPath> | ||||
| ): UseQueryReturnType<LearningObject, Error> { | ||||
|     return useQuery({ | ||||
|         queryKey: [LEARNING_OBJECT_KEY, "onPath", learningPath], | ||||
|         queryFn: () => { | ||||
|             let learningObjects = []; | ||||
|             for (let node of toValue(learningPath).nodesAsList) { | ||||
|                 learningObjects.push( | ||||
|                     learningObjectController.getHTML(node.learningobjectHruid, node.language, node.version) | ||||
|                 ); | ||||
|             } | ||||
|             return learningObjects; | ||||
|         }, | ||||
|         enabled: () => Boolean(toValue(learningPath)), | ||||
|     }); | ||||
| } | ||||
							
								
								
									
										36
									
								
								frontend/src/queries/learning-paths.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								frontend/src/queries/learning-paths.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | |||
| import {type MaybeRefOrGetter, toValue} from "vue"; | ||||
| import type {Language} from "@/data-objects/language.ts"; | ||||
| import {useQuery, type UseQueryReturnType} from "@tanstack/vue-query"; | ||||
| import { getLearningPathController } from "@/controllers/controllers"; | ||||
| import type {LearningPath} from "@/data-objects/learning-path.ts"; | ||||
| 
 | ||||
| const LEARNING_PATH_KEY = "learningPath"; | ||||
| const learningPathController = getLearningPathController(); | ||||
| 
 | ||||
| export function useGetLearningPathQuery( | ||||
|     hruid: MaybeRefOrGetter<string>, | ||||
|     language: MaybeRefOrGetter<Language>, | ||||
|     options?: MaybeRefOrGetter<{forGroup?: string, forStudent?: string}> | ||||
| ): UseQueryReturnType<LearningPath, Error> { | ||||
|     return useQuery({ | ||||
|         queryKey: [LEARNING_PATH_KEY, "get", hruid, language, options], | ||||
|         queryFn: () => { | ||||
|             const [hruidVal, languageVal, optionsVal] = [toValue(hruid), toValue(language), toValue(options)]; | ||||
|             return learningPathController.getBy(hruidVal, languageVal) | ||||
|         }, | ||||
|         enabled: () => Boolean(toValue(hruid)) && Boolean(toValue(language)), | ||||
|     }) | ||||
| } | ||||
| 
 | ||||
| export function useSearchLearningPathQuery( | ||||
|     query: MaybeRefOrGetter<string> | ||||
| ): UseQueryReturnType<LearningPath[], Error>  { | ||||
|     return useQuery({ | ||||
|         queryKey: [LEARNING_PATH_KEY, "search", query], | ||||
|         queryFn: () => { | ||||
|             const queryVal = toValue(query); | ||||
|             return learningPathController.search(queryVal); | ||||
|         }, | ||||
|         enabled: () => Boolean(toValue(query)), | ||||
|     }) | ||||
| } | ||||
		Reference in a new issue
	
	 Gerald Schmittinger
						Gerald Schmittinger