🚧 ♻️ WIP Remove panache and refactor accordingly

pull/3/head
Alexis Drai 2 years ago
parent e66af6f91b
commit 13516fe0cc

@ -10,13 +10,11 @@ repositories {
dependencies {
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
implementation 'io.quarkus:quarkus-resteasy-reactive-jsonb'
implementation 'io.quarkus:quarkus-mongodb-client'
implementation 'io.quarkus:quarkus-arc'
implementation 'io.quarkus:quarkus-resteasy-reactive'
implementation 'io.quarkus:quarkus-mongodb-panache'
testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'
implementation 'io.quarkus:quarkus-resteasy:3.0.0.Alpha6'
implementation 'io.quarkus:quarkus-arc:3.0.0.Alpha6'
implementation 'org.mongodb:mongodb-driver-sync:4.9.1'
testImplementation 'io.quarkus:quarkus-junit5:3.0.0.Alpha6'
testImplementation 'io.rest-assured:rest-assured:5.3.0'
}
group 'fr.uca.iut'

@ -0,0 +1,24 @@
package fr.uca.iut.config;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Disposes;
import jakarta.enterprise.inject.Produces;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@ApplicationScoped
public class MongoClientProvider {
@ConfigProperty(name = "quarkus.mongodb.connection-string")
String CONNECTION_STRING;
@Produces
@ApplicationScoped
public MongoClient createMongoClient() {
return MongoClients.create(CONNECTION_STRING);
}
public void close(@Disposes MongoClient client) {
client.close();
}
}

@ -1,10 +1,9 @@
package fr.uca.iut.entities;
import io.quarkus.mongodb.panache.PanacheMongoEntity;
import io.quarkus.mongodb.panache.common.MongoEntity;
@MongoEntity(collection = "moves")
public class Move extends PanacheMongoEntity {
public class Move {
public static final String COLLECTION_NAME = "moves";
public String name;
public String category;
public Integer power;

@ -1,16 +1,14 @@
package fr.uca.iut.entities;
import fr.uca.iut.utils.PokemongName;
import io.quarkus.mongodb.panache.PanacheMongoEntity;
import io.quarkus.mongodb.panache.common.MongoEntity;
import org.bson.types.ObjectId;
import java.time.LocalDate;
import java.util.List;
import java.util.Set;
@MongoEntity(collection = "pokemongs")
public class Pokemong extends PanacheMongoEntity {
public class Pokemong {
public static final String COLLECTION_NAME = "pokemongs";
public String nickname;
public LocalDate dob;
public Integer level;

@ -1,14 +1,13 @@
package fr.uca.iut.entities;
import io.quarkus.mongodb.panache.PanacheMongoEntity;
import io.quarkus.mongodb.panache.common.MongoEntity;
import org.bson.types.ObjectId;
import java.time.LocalDate;
import java.util.List;
@MongoEntity(collection = "trainers")
public class Trainer extends PanacheMongoEntity {
public class Trainer {
public static final String COLLECTION_NAME = "trainers";
public String name;
public LocalDate dob;
public Integer wins;

@ -1,14 +1,13 @@
package fr.uca.iut.entities;
import fr.uca.iut.utils.TypeName;
import io.quarkus.mongodb.panache.PanacheMongoEntity;
import io.quarkus.mongodb.panache.common.MongoEntity;
import java.util.List;
import java.util.Objects;
@MongoEntity(collection = "types")
public class Type extends PanacheMongoEntity {
public class Type {
public static final String COLLECTION_NAME = "types";
public TypeName name;
public List<TypeName> weakAgainst;
public List<TypeName> effectiveAgainst;

@ -1,9 +0,0 @@
package fr.uca.iut.repositories;
import fr.uca.iut.entities.Move;
import io.quarkus.mongodb.panache.PanacheMongoRepository;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class MoveRepository implements PanacheMongoRepository<Move> {
}

@ -1,9 +1,35 @@
package fr.uca.iut.repositories;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import fr.uca.iut.entities.Pokemong;
import io.quarkus.mongodb.panache.PanacheMongoRepository;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.bson.types.ObjectId;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import static com.mongodb.client.model.Filters.eq;
@ApplicationScoped
public class PokemongRepository implements PanacheMongoRepository<Pokemong> {
public class PokemongRepository {
@Inject
MongoClient mongoClient;
@ConfigProperty(name = "quarkus.mongodb.database")
String DB_NAME;
private MongoCollection<Pokemong> getCollection() {
MongoDatabase db = mongoClient.getDatabase(DB_NAME);
return db.getCollection(Pokemong.COLLECTION_NAME, Pokemong.class);
}
public Pokemong findById(ObjectId id) {
return getCollection().find(eq("_id", id))
.first();
}
// TODO add similar methods for persist, delete, etc...
}

@ -1,9 +0,0 @@
package fr.uca.iut.repositories;
import fr.uca.iut.entities.Trainer;
import io.quarkus.mongodb.panache.PanacheMongoRepository;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class TrainerRepository implements PanacheMongoRepository<Trainer> {
}

@ -1,9 +0,0 @@
package fr.uca.iut.repositories;
import fr.uca.iut.entities.Type;
import io.quarkus.mongodb.panache.PanacheMongoRepository;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class TypeRepository implements PanacheMongoRepository<Type> {
}

@ -1,4 +0,0 @@
package fr.uca.iut.services;
public class MoveService {
}

@ -1,4 +0,0 @@
package fr.uca.iut.services;
public class TrainerService {
}

@ -1,4 +0,0 @@
package fr.uca.iut.services;
public class TypeService {
}

@ -1,2 +1,4 @@
quarkus.mongodb.connection-string=mongodb+srv://<username>:<password>@<cluster>.<node>.mongodb.net
quarkus.mongodb.database=<database>
quarkus.mongodb.database=<database>
quarkus.mongodb.credentials.username=<username>
quarkus.mongodb.credentials.password=<password>
Loading…
Cancel
Save