Adding User DTO's
continuous-integration/drone/push Build is failing Details

Arthur_API-Users
Arthur VALIN 2 years ago
parent dfb8bc70bc
commit 528ea75fb3

@ -8,6 +8,7 @@
<properties>
<compiler-plugin.version>3.10.1</compiler-plugin.version>
<maven.compiler.release>11</maven.compiler.release>
<maven.compiler.parameters>true</maven.compiler.parameters>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>

@ -0,0 +1,25 @@
package org.acme.Api.DTO;
import io.quarkus.hibernate.reactive.panache.common.ProjectedFieldName;
import io.quarkus.runtime.annotations.RegisterForReflection;
import org.acme.Hibernates.entities.UserStatsEntity;
@RegisterForReflection
public class UserDTO {
public Long id;
public String name;
public UserStatsDTO stats;
public UserDTO(Long id, String name,
@ProjectedFieldName("stats.nbVictories") Long nbVictories,
@ProjectedFieldName("stats.nbGames") Long nbGames,
@ProjectedFieldName("stats.highscore") Long highscore,
@ProjectedFieldName("stats.nbStrikes") Long nbStrikes,
@ProjectedFieldName("stats.nbSpares") Long nbSpares,
@ProjectedFieldName("stats.avgScore") Double avgScore,
@ProjectedFieldName("stats.avgPinsPerRound") Double avgPinsPerRound) {
this.id = id;
this.name = name;
this.stats = new UserStatsDTO(nbVictories, nbGames, highscore, nbStrikes, nbSpares, avgScore, avgPinsPerRound);
}
}

@ -0,0 +1,28 @@
package org.acme.Api.DTO;
import io.quarkus.runtime.annotations.RegisterForReflection;
import org.acme.Hibernates.entities.UserStatsEntity;
import org.hibernate.annotations.ColumnDefault;
@RegisterForReflection
public class UserStatsDTO {
public Long nbVictories;
public Long nbGames;
public Long highscore;
public Long nbStrikes;
public Long nbSpares;
public Double avgScore;
public Double avgPinsPerRound;
public UserStatsDTO(Long nbVictories, Long nbGames, Long highscore, Long nbStrikes, Long nbSpares, Double avgScore, Double avgPinsPerRound) {
this.nbVictories = nbVictories;
this.nbGames = nbGames;
this.highscore = highscore;
this.nbStrikes = nbStrikes;
this.nbSpares = nbSpares;
this.avgScore = avgScore;
this.avgPinsPerRound = avgPinsPerRound;
}
}

@ -20,6 +20,8 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import io.quarkus.hibernate.reactive.panache.PanacheQuery;
import org.acme.Api.DTO.UserDTO;
import org.acme.Api.service.UserService;
import org.acme.Hibernates.entities.UserEntity;
import org.jboss.logging.Logger;
@ -40,10 +42,9 @@ public class UserController {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Uni<List<UserEntity>> getUsers() {
public Uni<List<UserDTO>> getUsers() {
LOGGER.info("Getting all users and ordering it by name");
Uni<List<UserEntity>> allUsers = service.listAll(Sort.by("name"));
return allUsers;
return service.findAll().project(UserDTO.class).list();
}
// @GET

@ -4,22 +4,10 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
<<<<<<< HEAD
import javax.persistence.Entity;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
=======
import javax.persistence.*;
@Entity
@Table(name="games")
>>>>>>> bcd6335175194e1c12cc113060a02e202da0af79
public class GameEntity {
@Id
@ -98,7 +86,7 @@ public class GameEntity {
return this.isFinished;
}
@OneToMany(mappedBy = "game", cascade = CascadeType.ALL, orphanRemoval = true)
public List<RoundEntity> rounds = new ArrayList<>();
// @OneToMany(mappedBy = "game", cascade = CascadeType.ALL, orphanRemoval = true)
// public List<RoundEntity> rounds = new ArrayList<>();
}

@ -1,5 +0,0 @@
package org.acme.Hibernates.entities;
public class StatEntity {
}

@ -12,7 +12,7 @@ public class UserStatsEntity {
@Id
private Long id;
@MapsId
@OneToOne(fetch = FetchType.LAZY)
@OneToOne
@JoinColumn (name = "user_id", referencedColumnName = "id", insertable = false, updatable = false)
private UserEntity user;
@ColumnDefault("0")
@ -26,9 +26,9 @@ public class UserStatsEntity {
@ColumnDefault("0")
private Long nbSpares = 0L;
@ColumnDefault("-1")
private double avgScore = -1;
private Double avgScore = 0d;
@ColumnDefault("-1")
private double avgPinsPerRound = -1;
private Double avgPinsPerRound = 0d;
public UserStatsEntity() {
}

@ -1,18 +1,18 @@
# achanger
quarkus.datasource.db-kind = postgresql
quarkus.datasource.username = postgres
quarkus.datasource.password = achanger
quarkus.datasource.reactive.url = vertx-reactive:postgresql://localhost:5432/postgres
quarkus.datasource.username = bowlin_team
quarkus.datasource.password = bowlin
quarkus.datasource.reactive.url = vertx-reactive:postgresql://localhost:5432/bowlin
quarkus.hibernate-orm.log.sql=true
quarkus.hibernate-orm.sql-load-script=import.sql
# #HTTPS Configuration
#HTTPS Configuration
# quarkus.http.ssl.certificate.key-files=https/privkey.pem
# quarkus.http.ssl.certificate.files=https/cert.pem
quarkus.http.ssl.certificate.key-files=https/privkey.pem
quarkus.http.ssl.certificate.files=https/cert.pem
# # Disable the HTTP server
# quarkus.http.insecure-requests=redirect
# Disable the HTTP server
quarkus.http.insecure-requests=redirect
# # OIDC Configuration
# quarkus.oidc.auth-server-url=http://localhost:8080/realms/BowlinAuth

Loading…
Cancel
Save