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