feat: class queries useClass en useClasses
This commit is contained in:
		
							parent
							
								
									45ca433e09
								
							
						
					
					
						commit
						1c99b03554
					
				
					 1 changed files with 30 additions and 0 deletions
				
			
		
							
								
								
									
										30
									
								
								frontend/src/queries/classes.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								frontend/src/queries/classes.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | import { ClassController, type ClassesResponse, type ClassResponse } from "@/controllers/classes"; | ||||||
|  | import { useQuery, type UseQueryReturnType } from "@tanstack/vue-query"; | ||||||
|  | import { computed, toValue, type MaybeRefOrGetter } from "vue"; | ||||||
|  | 
 | ||||||
|  | const classController = new ClassController(); | ||||||
|  | 
 | ||||||
|  | function classesQueryKey() { | ||||||
|  |     return ["students"]; | ||||||
|  | } | ||||||
|  | function classQueryKey(classid: string) { | ||||||
|  |     return ["student", classid]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | export function useClassesQuery(full: MaybeRefOrGetter<boolean> = true): UseQueryReturnType<ClassesResponse, Error> { | ||||||
|  |     return useQuery({ | ||||||
|  |         queryKey: computed(() => (classesQueryKey())), | ||||||
|  |         queryFn: async () => classController.getAll(toValue(full)), | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export function useClassQuery( | ||||||
|  |     id: MaybeRefOrGetter<string | undefined>, | ||||||
|  | ): UseQueryReturnType<ClassResponse, Error> { | ||||||
|  |     return useQuery({ | ||||||
|  |         queryKey: computed(() => classQueryKey(toValue(id)!)), | ||||||
|  |         queryFn: async () => classController.getById(toValue(id)!), | ||||||
|  |         enabled: () => Boolean(toValue(id)), | ||||||
|  |     }); | ||||||
|  | } | ||||||
		Reference in a new issue
	
	 Adriaan Jacquet
						Adriaan Jacquet