🚧 ♻️ WIP Remove panache and refactor accordingly

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

@ -10,13 +10,11 @@ repositories {
dependencies { dependencies {
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
implementation 'io.quarkus:quarkus-resteasy-reactive-jsonb' implementation 'io.quarkus:quarkus-resteasy:3.0.0.Alpha6'
implementation 'io.quarkus:quarkus-mongodb-client' implementation 'io.quarkus:quarkus-arc:3.0.0.Alpha6'
implementation 'io.quarkus:quarkus-arc' implementation 'org.mongodb:mongodb-driver-sync:4.9.1'
implementation 'io.quarkus:quarkus-resteasy-reactive' testImplementation 'io.quarkus:quarkus-junit5:3.0.0.Alpha6'
implementation 'io.quarkus:quarkus-mongodb-panache' testImplementation 'io.rest-assured:rest-assured:5.3.0'
testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'
} }
group 'fr.uca.iut' 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; package fr.uca.iut.entities;
import io.quarkus.mongodb.panache.PanacheMongoEntity;
import io.quarkus.mongodb.panache.common.MongoEntity;
@MongoEntity(collection = "moves") public class Move {
public class Move extends PanacheMongoEntity { public static final String COLLECTION_NAME = "moves";
public String name; public String name;
public String category; public String category;
public Integer power; public Integer power;

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

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

@ -1,14 +1,13 @@
package fr.uca.iut.entities; package fr.uca.iut.entities;
import fr.uca.iut.utils.TypeName; 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.List;
import java.util.Objects; import java.util.Objects;
@MongoEntity(collection = "types") public class Type {
public class Type extends PanacheMongoEntity { public static final String COLLECTION_NAME = "types";
public TypeName name; public TypeName name;
public List<TypeName> weakAgainst; public List<TypeName> weakAgainst;
public List<TypeName> effectiveAgainst; 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; 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 fr.uca.iut.entities.Pokemong;
import io.quarkus.mongodb.panache.PanacheMongoRepository;
import jakarta.enterprise.context.ApplicationScoped; 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 @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.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