Refactor: Standardisation complète de l'architecture REST

🔧 RESTRUCTURATION
- UserResource déplacé de adapter.http vers application.rest
- FournisseurResource déplacé vers application.rest
- Suppression des contrôleurs obsolètes (presentation.controller)
- Suppression de MaterielFournisseurService en doublon

📝 STANDARDISATION DOCUMENTATION
- Annotations OpenAPI uniformes (@Operation, @APIResponse, @Parameter)
- Descriptions concises et cohérentes pour tous les endpoints
- Codes de réponse HTTP standards (200, 201, 400, 404, 500)

🛠️ ENDPOINTS USERS STANDARDISÉS
- GET /api/v1/users - Liste tous les utilisateurs
- GET /api/v1/users/{id} - Détails d'un utilisateur
- GET /api/v1/users/stats - Statistiques globales
- GET /api/v1/users/count - Comptage
- GET /api/v1/users/pending - Utilisateurs en attente
- POST /api/v1/users - Création
- PUT /api/v1/users/{id} - Mise à jour
- DELETE /api/v1/users/{id} - Suppression
- POST /api/v1/users/{id}/approve - Approbation
- POST /api/v1/users/{id}/reject - Rejet
- PUT /api/v1/users/{id}/status - Changement de statut
- PUT /api/v1/users/{id}/role - Changement de rôle

⚠️ GESTION D'ERREURS
- Format uniforme: Map.of("error", "message")
- Codes HTTP cohérents avec les autres ressources
- Validation des entrées standardisée

 VALIDATION
- Compilation réussie: mvn clean compile -DskipTests
- Pattern conforme aux autres ressources (PhaseTemplate, Fournisseur)
- Documentation OpenAPI/Swagger complète et cohérente
This commit is contained in:
dahoud
2025-10-23 10:43:32 +00:00
parent de943a4a29
commit fba7666268
19 changed files with 1445 additions and 2651 deletions

View File

@@ -13,26 +13,33 @@ RUN mvn dependency:go-offline -B
# Copy source code
COPY src ./src
# Build application (use quarkus.profile=prod at runtime, not Maven profile)
RUN mvn clean package -DskipTests
# Build application with optimizations
RUN mvn clean package -DskipTests -Dquarkus.package.type=uber-jar
## Stage 2 : Create runtime image
FROM eclipse-temurin:17-jre-alpine
ENV LANGUAGE='en_US:en'
# Install curl for health checks
RUN apk add --no-cache curl
# Create app user and directories
RUN addgroup -g 185 -S appuser && adduser -u 185 -S appuser -G appuser
RUN mkdir -p /deployments && chown -R appuser:appuser /deployments
# Copy the uber-jar (single JAR with all dependencies)
# The build uses -Dquarkus.package.type=uber-jar which creates a single *-runner.jar
COPY --from=build --chown=appuser:appuser /build/target/*-runner.jar /deployments/app.jar
EXPOSE 8080
USER appuser
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
# Optimized JVM settings for production
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -XX:+UseG1GC -XX:MaxRAMPercentage=75.0 -XX:+UseStringDeduplication"
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD curl -f http://localhost:8080/q/health/ready || exit 1
ENTRYPOINT [ "java", "-jar", "/deployments/app.jar" ]