WIP: adding basic sites and ji handling #2

Draft
arthur.wambst wants to merge 0 commits from arthur.wambst/tests into master
arthur.wambst commented 2025-07-29 18:26:25 +02:00 (Migrated from git.la-banquise.fr)
No description provided.
malopieds (Migrated from git.la-banquise.fr) reviewed 2025-07-29 18:26:33 +02:00
malopieds (Migrated from git.la-banquise.fr) reviewed 2025-09-01 10:38:04 +02:00
malopieds (Migrated from git.la-banquise.fr) left a comment

Review generale de choses sur plusieurs fichiers:

Les reponses des endpoints, vaut mieux passer l'objet dans le return type de la methode.

Au lieu de:

public Response myEndpoint() {
    return Response.ok("Waouw ca marche").build();
}

faire plutot:

public String myEndpoint() {
    return "Waouw ca marche";
}

Pour le swagger c'est mieux, comme ca il connait l'objet de sortie et ca change pas grand chose, ca fait meme moins de code a ecrire souvent.

Pour certains type de retour, on va faire un objet specifique au lieu d'utiliser le meme que celui de la db. Pour par exemple eviter d'envoyer le mdp hashe dans notre reponse et de pouvoir plus specifiquement decider ce qu'on renvoit sans changer notre objet de db.

Pour plus tard, mais on va faire une methode speciale pour les retour d'erreur histoire que ca soit gere plus bas (genre les repo/services).
En general, attention a bien tester les cas ou le user peut rentrer n'importe quoi

Y'a des trucs qui me derangent dans le fichier InstanceEndpoint.java mais c'est plus un truc perso donc pour l'instant je vais laisser ca comme ca.

import ununsed dans pas mal de fichiers

Globalement, tous les noms d'endpoints sont au pluriel pour une meilleure coherence. On get les objets avec des id plutot que leur nom.

# Review generale de choses sur plusieurs fichiers: Les reponses des endpoints, vaut mieux passer l'objet dans le return type de la methode. Au lieu de: ```java public Response myEndpoint() { return Response.ok("Waouw ca marche").build(); } ``` faire plutot: ```java public String myEndpoint() { return "Waouw ca marche"; } ``` Pour le swagger c'est mieux, comme ca il connait l'objet de sortie et ca change pas grand chose, ca fait meme moins de code a ecrire souvent. Pour certains type de retour, on va faire un objet specifique au lieu d'utiliser le meme que celui de la db. Pour par exemple eviter d'envoyer le mdp hashe dans notre reponse et de pouvoir plus specifiquement decider ce qu'on renvoit sans changer notre objet de db. Pour plus tard, mais on va faire une methode speciale pour les retour d'erreur histoire que ca soit gere plus bas (genre les repo/services). En general, attention a bien tester les cas ou le user peut rentrer n'importe quoi Y'a des trucs qui me derangent dans le fichier `InstanceEndpoint.java` mais c'est plus un truc perso donc pour l'instant je vais laisser ca comme ca. import ununsed dans pas mal de fichiers Globalement, tous les noms d'endpoints sont au pluriel pour une meilleure coherence. On get les objets avec des id plutot que leur nom.
@ -0,0 +1,72 @@
/**package fr.la_banquise.backend.data.model;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:04:12 +02:00

Il est commente, il aurait une importance plus tard ou on peut le supprimer ?

Il est commente, il aurait une importance plus tard ou on peut le supprimer ?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:18:35 +02:00

Il sert pour le moment a m éviter d aller rechercher les fonctions de docker java api directement dans le repo vu que y a 0 doc, j l enleverai pour la version finale

Il sert pour le moment a m éviter d aller rechercher les fonctions de docker java api directement dans le repo vu que y a 0 doc, j l enleverai pour la version finale
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:07:16 +02:00

l'annotation @ToString fait ca pour toi

l'annotation `@ToString` fait ca pour toi
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:20:16 +02:00

done

done
@ -23,0 +23,4 @@
@Inject InstanceService instanceService;
@Inject SujetService sujetService;
@Inject UserService userService;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:38:04 +02:00

Il manque un @Authenticated pour que ca marche

Il manque un `@Authenticated` pour que ca marche
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:21:09 +02:00

done

done
@ -23,1 +24,4 @@
@Inject SujetService sujetService;
@Inject UserService userService;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:38:49 +02:00

unused si ligne 31 commentee

Edit: pourquoi la ligne 31 est commentee du coup ?

unused si ligne 31 commentee Edit: pourquoi la ligne 31 est commentee du coup ?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:21:55 +02:00

j crois que instance.getAllInstace marchait pas ? j re regarderai ca une autre fois

j crois que instance.getAllInstace marchait pas ? j re regarderai ca une autre fois
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:55:43 +02:00

address, description et name_site sont pas deja dans site? Autant utiliser l'id du site du coup. Pareil pour le respo utiliser un id plutot qu'une string

address, description et name_site sont pas deja dans site? Autant utiliser l'id du site du coup. Pareil pour le respo utiliser un id plutot qu'une string
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:23:37 +02:00

fait en partie, j changerai les string vers id une autre fois

fait en partie, j changerai les string vers id une autre fois
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:46:29 +02:00

Priviliegier les get by id plutot que by name en regle generale, le front utilisera l'id qui est plus simple pour la db a trouver

Priviliegier les get by id plutot que by name en regle generale, le front utilisera l'id qui est plus simple pour la db a trouver
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:25:14 +02:00

ok, j changerai + tard

ok, j changerai + tard
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:53:35 +02:00

ROOT plutot que root du coup ?

ROOT plutot que root du coup ?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:24:54 +02:00

done

done
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:54:08 +02:00

par id plutot que par name

par id plutot que par name
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:54:24 +02:00

on peut supprimer tout ca non ?

on peut supprimer tout ca non ?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:26:24 +02:00

yep, c etait des restes des anciennes versions de l intra, tp c est devenu ji je crois donc il reste 2 3 trucs, mais la ca m a lair useless, j le del

yep, c etait des restes des anciennes versions de l intra, tp c est devenu ji je crois donc il reste 2 3 trucs, mais la ca m a lair useless, j le del
@ -0,0 +20,4 @@
/**
* TpEndpoints
*/
@Path("/api/subjects")
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:50:13 +02:00

Si possibilites d'avoir plusieurs sujets (i.e. la liste de tous les sujets dispo), mettre subject au pluriel

Si possibilites d'avoir plusieurs sujets (i.e. la liste de tous les sujets dispo), mettre subject au pluriel
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:27:29 +02:00

done

done
@ -0,0 +52,4 @@
@Path("/respo")
@Produces(MediaType.APPLICATION_JSON)
@RolesAllowed("ROOT")
public Response addRespoSujet(@QueryParam("nameSujet") String nameSujet,
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:55:15 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$ (aussi pour les query params)

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$ (aussi pour les query params)
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:28:55 +02:00

done en partie, j repasserai dessus une autre fois

done en partie, j repasserai dessus une autre fois
@ -0,0 +70,4 @@
@DELETE
@Path("/respo")
@Produces(MediaType.APPLICATION_JSON)
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:58:20 +02:00

Quand une des annotation est repetitive @Produces(MediaType.APPLICATION_JSON) par exemple tu peux le mettre au dessus de ta declaration de class et elle sera pour toutes les method a l'interieur de ta classe

Quand une des annotation est repetitive `@Produces(MediaType.APPLICATION_JSON)` par exemple tu peux le mettre au dessus de ta declaration de class et elle sera pour toutes les method a l'interieur de ta classe
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:29:54 +02:00

euu jsp si elle est vraiment necessaire en fait, j vois pas clairement c qu elle change

euu jsp si elle est vraiment necessaire en fait, j vois pas clairement c qu elle change
@ -0,0 +71,4 @@
@DELETE
@Path("/respo")
@Produces(MediaType.APPLICATION_JSON)
@RolesAllowed("ROOT")
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:56:27 +02:00

des fois ROOT des fois root pour le role

des fois `ROOT` des fois `root` pour le role
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:31:08 +02:00

j ai fait en sorte que ca cree un user avec le role ROOT a chaque boot sur le profil dev, mais root marchait pas j crois
j ai pas encore change partout mais j y fais petit a petit

j ai fait en sorte que ca cree un user avec le role ROOT a chaque boot sur le profil dev, mais root marchait pas j crois j ai pas encore change partout mais j y fais petit a petit
@ -0,0 +72,4 @@
@Path("/respo")
@Produces(MediaType.APPLICATION_JSON)
@RolesAllowed("ROOT")
public Response rmRespoSujet(@QueryParam("nameSujet") String nameSujet,
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:56:41 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$ (aussi pour les query params)

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$ (aussi pour les query params)
@ -28,3 +30,2 @@
@Inject
UserService userService;
@Inject UserService userService;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:28:27 +02:00

Pourquoi il y a deux endpoints differents pour les users ? (et pourquoi celui la il est au singulier?

Pourquoi il y a deux endpoints differents pour les users ? (et pourquoi celui la il est au singulier?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:33:11 +02:00

y avait bcp d endpoints deja pour la gestion des users 1 par 1 donc j ai mis les fonctions qui font des operations sur plusieurs users et j ai mis tout ca dans users, mais jsp si c est mieux que d avoir un seul giga fichier

y avait bcp d endpoints deja pour la gestion des users 1 par 1 donc j ai mis les fonctions qui font des operations sur plusieurs users et j ai mis tout ca dans users, mais jsp si c est mieux que d avoir un seul giga fichier
@ -54,0 +73,4 @@
.entity(Map.of("User or Role not found", e))
.build();
}
}
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:34:52 +02:00

Pas de logique dans la partie rest, ca devrait etre dans une methode dans le service (avec une annotation transaction sinon ca ne marche pas).

un truc du style:

    @Transactional
    public void updateRole(String role, Long userId) {
        User user = userRepository.findById(userId);
        user.role.add(fromString(role));
    }
Pas de logique dans la partie rest, ca devrait etre dans une methode dans le service (avec une annotation transaction sinon ca ne marche pas). un truc du style: ```java @Transactional public void updateRole(String role, Long userId) { User user = userRepository.findById(userId); user.role.add(fromString(role)); } ```
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 15:47:50 +02:00

done

done
@ -54,0 +89,4 @@
.build();
}
}
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:35:09 +02:00

pareil qu'au dessus

pareil qu'au dessus
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 15:48:13 +02:00

done

done
@ -0,0 +43,4 @@
}
@POST
@RolesAllowed("ROOT") // TODO: respos JI doivent aussi pouvoir faire ca
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:29:17 +02:00

@RolesAllowed({ "ROOT", "JI" })

`@RolesAllowed({ "ROOT", "JI" })`
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:34:33 +02:00

nan ca doit etre que les respo de la JI en question donc flm pour le moment

nan ca doit etre que les respo de la JI en question donc flm pour le moment
@ -0,0 +64,4 @@
Map<String, String> retour = new HashMap<String, String>();
for (int id = 0; id < response.failedNames.size(); id++) {
retour.put(response.failedNames.get(id),
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:35:52 +02:00

pas de logique ici, que dans la couche des services

pas de logique ici, que dans la couche des services
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 15:50:21 +02:00

c est de la logique ca ?
ca envoei jsute ok si tout les remove ont reussi ert sinon ca renvoie le login de ceux ou ca a fail

c est de la logique ca ? ca envoei jsute ok si tout les remove ont reussi ert sinon ca renvoie le login de ceux ou ca a fail
@ -0,0 +7,4 @@
@RegisterForReflection
public class BulkUserDelResponse {
public List<String> successNames;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:23:20 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$

Camel Case pour les noms de variables `^[a-z][a-zA-Z0-9]*$`
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 15:52:39 +02:00

done

done
@ -0,0 +7,4 @@
@RegisterForReflection
public class BulkUserPostResponse {
public List<String> successMails;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:24:24 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$

Camel Case pour les noms de variables `^[a-z][a-zA-Z0-9]*$`
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 15:53:22 +02:00

done

done
@ -0,0 +1,179 @@
/*package fr.la_banquise.backend.services;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:25:17 +02:00

Besoin de ca ou pas si il est commente ?

Besoin de ca ou pas si il est commente ?
@ -36,1 +68,3 @@
return instanceRepository.find("user", user).list();
public List<Instance> getInstancesByOwner(Long id) {
User user = userRepository.findById(id);
return instanceRepository.find("owner", user).list();
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:01:21 +02:00

pourquoi ce qui est lie au container est pas dans le container service ?

pourquoi ce qui est lie au container est pas dans le container service ?
@ -0,0 +23,4 @@
@Inject SecurityContext security;
///////////////////////////////////////////////////////////////////////////
///
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:48:58 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$

Camel Case pour les noms de variables `^[a-z][a-zA-Z0-9]*$`
@ -0,0 +61,4 @@
@Transactional
public Instance createInstance(Long userId, Long jiId) {
Ji ji = jiRepository.findById(jiId);
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:52:18 +02:00

Pourquoi c'est la tout ce qui ne parle pas de ji directement ? Et pas directement dans les services respectifs ? (instance, containers etc...)

Pourquoi c'est la tout ce qui ne parle pas de ji directement ? Et pas directement dans les services respectifs ? (instance, containers etc...)
@ -0,0 +24,4 @@
@Inject UserRepository userRepository;
@Inject InstanceRepository instanceRepository;
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:00:47 +02:00

On utilise generalement les services des autres fonctionnalite plutot que leur repo, pour avoir une layer d'abstraction en moins. Par exemple, le SujetService peut acceder au SujetRepository mais devrait acceder aux methode du UserRepository a travers les methode de UserService

On utilise generalement les services des autres fonctionnalite plutot que leur repo, pour avoir une layer d'abstraction en moins. Par exemple, le SujetService peut acceder au SujetRepository mais devrait acceder aux methode du UserRepository a travers les methode de UserService
@ -0,0 +33,4 @@
return user.sujetRespo;
}
/*public PracticalResponse getTp(Long id, String username) {
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:43:26 +02:00

Le code commentee a une utilite ou peut etre supprime ?

Le code commentee a une utilite ou peut etre supprime ?
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:37:57 +02:00

faut faire les get pour en get qu un seul ou tous ceux dont l user est participant, et j pensais repartir de ca pour aps avoir a rechercher les commandes pour l user

faut faire les get pour en get qu un seul ou tous ceux dont l user est participant, et j pensais repartir de ca pour aps avoir a rechercher les commandes pour l user
@ -0,0 +68,4 @@
}
@Transactional
public boolean addRespo(String nameSujet, String nameUser) {
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:46:05 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$

Camel Case pour les noms de variables `^[a-z][a-zA-Z0-9]*$`
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:38:39 +02:00

done

done
@ -0,0 +70,4 @@
@Transactional
public boolean addRespo(String nameSujet, String nameUser) {
User user = userRepository.find("name", nameUser).firstResult();
Sujet sujet = sujetRepository.find("name", nameSujet).firstResult();
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:47:27 +02:00

une method findByName peut etre implem dans les repository

Edit: Plutot que de faire une recherche sur les noms, autant utiliser l'id de la personne et du sujet. Dans le front on peut faire un auto fill du nom et c'est l'id qui est renvoye, moins couteux pour la creation et plus aligne avec une API

une method `findByName` peut etre implem dans les repository Edit: Plutot que de faire une recherche sur les noms, autant utiliser l'id de la personne et du sujet. Dans le front on peut faire un auto fill du nom et c'est l'id qui est renvoye, moins couteux pour la creation et plus aligne avec une API
@ -0,0 +71,4 @@
public boolean addRespo(String nameSujet, String nameUser) {
User user = userRepository.find("name", nameUser).firstResult();
Sujet sujet = sujetRepository.find("name", nameSujet).firstResult();
if (!sujet.respos.contains(user)) {
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:06:23 +02:00

Que se passe-t-il si le sujet/user n'existe pas ? Toujours controler l'input de l'utilisateur

Que se passe-t-il si le sujet/user n'existe pas ? Toujours controler l'input de l'utilisateur
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:39:46 +02:00

ca met une erreur degeue de la db, mais pour le moment j me suis absolument pas interesse a la gestion des erreurs

ca met une erreur degeue de la db, mais pour le moment j me suis absolument pas interesse a la gestion des erreurs
@ -0,0 +79,4 @@
}
@Transactional
public boolean rmRespo(String nameSujet, String nameUser) {
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 10:46:18 +02:00

Camel Case pour les noms de variables ^[a-z][a-zA-Z0-9]*$

Camel Case pour les noms de variables `^[a-z][a-zA-Z0-9]*$`
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:40:01 +02:00

done

done
@ -0,0 +82,4 @@
public boolean rmRespo(String nameSujet, String nameUser) {
User user = userRepository.find("name", nameUser).firstResult();
Sujet sujet = sujetRepository.find("name", nameSujet).firstResult();
if (sujet.respos.contains(user)) {
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:10:46 +02:00

Meme problemes qu'au dessus

Meme problemes qu'au dessus
malopieds (Migrated from git.la-banquise.fr) commented 2025-10-05 16:19:49 +02:00

done

done
@ -0,0 +89,4 @@
return false;
}
/*
* TODO: Seuls les respos du sujet et root doivent pouvoir avoir acces
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 11:02:20 +02:00

Je sais que c'est commente mais c'est fait au niveau des endpoints les checks d'acces

Je sais que c'est commente mais c'est fait au niveau des endpoints les checks d'acces
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:41:10 +02:00

aa okeee j changerai ca dans tout plus tard

aa okeee j changerai ca dans tout plus tard
@ -36,2 +45,4 @@
return false;
}
}
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-01 12:26:27 +02:00

oui, c'etait histoire d'avoir la methode qq part mais ca avait pas ete implem x)

oui, c'etait histoire d'avoir la methode qq part mais ca avait pas ete implem x)
malopieds (Migrated from git.la-banquise.fr) commented 2025-09-08 23:42:06 +02:00

x))) a changer alors

x))) a changer alors
This pull request is marked as a work in progress.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin arthur.wambst/tests:arthur.wambst/tests
git switch arthur.wambst/tests

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff arthur.wambst/tests
git switch arthur.wambst/tests
git rebase master
git switch master
git merge --ff-only arthur.wambst/tests
git switch arthur.wambst/tests
git rebase master
git switch master
git merge --no-ff arthur.wambst/tests
git switch master
git merge --squash arthur.wambst/tests
git switch master
git merge --ff-only arthur.wambst/tests
git switch master
git merge arthur.wambst/tests
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
banquise/intra-back!2
No description provided.