Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Les emplois du temps
Cette pr ajoute une route qui permet d'importer son emploi du temps depuis l'url ICAL donné par mondedt.utt.fr
Elle ajoute aussi les fonctions de base pour le décodage d'un fichier ical et un service pour les UeCourse.
Fonctionnalitées
La route
/timetable/import
prend comme bodyUn uid: qui correspond au hash servant de nom de fichier ical donné par monde.utt.fr, il doit être un hash sha-256
le service: par défaut montedt (donc on peut laisser vide) mais autorise aussi les services localhost pour faire des tests en local. A l'avenir pourrais autoriser d'autres services au besoin sans trop poser de problème.
(Si y'a un moyen de savoir dans le code si on tourne en local ou en prod je suis preneur je pense que ça faciliterais grandement les choses et rendrais la feature plus sécure)
La route va ensuite télécharger le fichier et le décoder, en extraire les
UeCourses
avec le nombre de répétitions de chacun, les créer avec leursTimetableEntry
Et enfin ajouter l'utilisateur comme élève de cesUeCourses
.Si l'
UeCourse
existe déjà elle ne sera pas recréée l'utilisateur sera juste ajoutéAutres modifications
Modification du schéma de la bd:
TimetableEntry
ne peux maintenant correspondre qu'a une uniqueUeCourse
room
dansUeCourse
qui étais redondant avec lelocation
duTimetableEntry
Ajout de 2 erreurs:
Ajout d'une devDependencies et d'un npm script:
http-server, avec la commande
dev:serve
, permet d'exposer le contenu du dossier dev (dossier ajouté au .gitignore) en local, permettant dans mon cas de télécharger des .ical fais main pour tester