Skip to content
Extraits de code Groupes Projets
Valider 5d1a5b4e rédigé par Brieuc Dubois's avatar Brieuc Dubois
Parcourir les fichiers

Fix #183

parent 1046a697
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -35,6 +35,15 @@ def get_users(db: Session, skip: int = 0):
return db.query(models.User).offset(skip).all()
def get_tutors_by_study(db: Session, study_id: int):
return (
db.query(models.User)
.filter(models.User.type == models.UserType.TUTOR.value)
.filter(models.User.studies.any(models.Study.id == study_id))
.all()
)
def create_user(db: Session, user: schemas.UserCreate) -> models.User:
password = Hasher.get_password_hash(user.password)
nickname = user.nickname if user.nickname else user.email.split("@")[0]
......
......@@ -189,6 +189,14 @@ def read_users(
return crud.get_users(db, skip=skip)
@usersRouter.get("/tutors/study/{study_id}", response_model=list[schemas.User])
def get_tutors_by_study(
study_id: int,
db: Session = Depends(get_db),
):
return crud.get_tutors_by_study(db, study_id)
@usersRouter.delete("/{user_id}", status_code=status.HTTP_204_NO_CONTENT)
def delete_user(
user_id: int,
......
......@@ -7,6 +7,13 @@ export async function getUsersAPI(fetch: fetchType): Promise<any[]> {
return await response.json();
}
export async function getTutorsByStudyAPI(fetch: fetchType, study_id: number): Promise<any[]> {
const response = await fetch(`/api/users/tutors/study/${study_id}`);
if (!response.ok) return [];
return await response.json();
}
export async function getUserAPI(fetch: fetchType, user_id: number): Promise<any | null> {
const response = await fetch(`/api/users/${user_id}`);
if (!response.ok) return null;
......
import { type ServerLoad, redirect } from '@sveltejs/kit';
const publicly_allowed = [
'/login',
'/register',
'/tests',
'/surveys',
'/tutor/register',
'/studies'
];
const publicly_allowed = ['/login', '/register', '/studies'];
const isPublic = (path: string) => {
for (const allowed of publicly_allowed) {
......
import { getStudiesAPI, getStudyAPI } from '$lib/api/studies';
import { getUsersAPI } from '$lib/api/users';
import { getUsersAPI, getTutorsByStudyAPI } from '$lib/api/users';
import Study from '$lib/types/study';
import type { Load } from '@sveltejs/kit';
......@@ -23,8 +23,10 @@ export const load: Load = async ({ parent, fetch, params, url }) => {
const studies = Study.parseAll(await getStudiesAPI(fetch));
const users = await getUsersAPI(fetch);
const tutors = users.filter((user) => user.type === 1);
let tutors: any[] = [];
if (study && study.id) {
tutors = await getTutorsByStudyAPI(fetch, study.id);
}
let role = 'learner';
if (url.searchParams.has('role')) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter