feat: bulk create user and more
This commit is contained in:
parent
10fcbbb36b
commit
d513834f62
@ -1,9 +1,11 @@
|
|||||||
package fr.la_banquise.backend.rest;
|
package fr.la_banquise.backend.rest;
|
||||||
|
|
||||||
|
import fr.la_banquise.backend.rest.request.InstanceRequest;
|
||||||
import fr.la_banquise.backend.services.InstanceService;
|
import fr.la_banquise.backend.services.InstanceService;
|
||||||
import io.quarkus.security.identity.SecurityIdentity;
|
import io.quarkus.security.identity.SecurityIdentity;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
|
import jakarta.ws.rs.POST;
|
||||||
import jakarta.ws.rs.Path;
|
import jakarta.ws.rs.Path;
|
||||||
import jakarta.ws.rs.Produces;
|
import jakarta.ws.rs.Produces;
|
||||||
import jakarta.ws.rs.core.MediaType;
|
import jakarta.ws.rs.core.MediaType;
|
||||||
@ -24,8 +26,13 @@ public class InstanceEndpoints {
|
|||||||
|
|
||||||
@GET
|
@GET
|
||||||
public Response getAllInstances() {
|
public Response getAllInstances() {
|
||||||
System.out.println(identity.getPrincipal());
|
|
||||||
String username = identity.getPrincipal().getName();
|
String username = identity.getPrincipal().getName();
|
||||||
return Response.ok(instanceService.getAllInstances(username)).build();
|
return Response.ok(instanceService.getAllInstances(username)).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
public Response createInstance(InstanceRequest request) {
|
||||||
|
instanceService.createInstance(request.name, request.ssh, request.pwd, request.username, request.tpId);
|
||||||
|
return Response.ok().build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package fr.la_banquise.backend.rest;
|
package fr.la_banquise.backend.rest;
|
||||||
|
|
||||||
import fr.la_banquise.backend.services.TpService;
|
import fr.la_banquise.backend.services.TpService;
|
||||||
import fr.la_banquise.backend.rest.request.TpForm;
|
|
||||||
import fr.la_banquise.backend.rest.request.TpRequest;
|
import fr.la_banquise.backend.rest.request.TpRequest;
|
||||||
import jakarta.annotation.security.RolesAllowed;
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package fr.la_banquise.backend.rest;
|
package fr.la_banquise.backend.rest;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import fr.la_banquise.backend.rest.request.UserRequest;
|
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||||
import fr.la_banquise.backend.services.UserService;
|
import fr.la_banquise.backend.services.UserService;
|
||||||
import jakarta.annotation.security.RolesAllowed;
|
import jakarta.annotation.security.RolesAllowed;
|
||||||
@ -38,6 +41,14 @@ public class UserEndpoints {
|
|||||||
@POST
|
@POST
|
||||||
@RolesAllowed("admin")
|
@RolesAllowed("admin")
|
||||||
public Response createUser(UserRequest user) {
|
public Response createUser(UserRequest user) {
|
||||||
return Response.ok(userService.crateUser(user.firstName, user.lastName)).build();
|
return Response.ok(userService.createUser(user.name)).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@POST
|
||||||
|
@RolesAllowed("root")
|
||||||
|
@Path("/jdmi")
|
||||||
|
public Response createJdmiUsers(List<UserRequest> users) {
|
||||||
|
userService.createJdmiUser(users);
|
||||||
|
return Response.ok().build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package fr.la_banquise.backend.rest.request;
|
||||||
|
|
||||||
|
import io.smallrye.common.constraint.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* InstanceRequest
|
||||||
|
*/
|
||||||
|
public class InstanceRequest {
|
||||||
|
public String name;
|
||||||
|
public String ssh;
|
||||||
|
public String pwd;
|
||||||
|
public String username;
|
||||||
|
@Nullable
|
||||||
|
public int tpId;
|
||||||
|
}
|
@ -4,6 +4,6 @@ package fr.la_banquise.backend.rest.request;
|
|||||||
* UserRequest
|
* UserRequest
|
||||||
*/
|
*/
|
||||||
public class UserRequest {
|
public class UserRequest {
|
||||||
public String firstName;
|
public String name;
|
||||||
public String lastName;
|
public String email;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package fr.la_banquise.backend.services;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.la_banquise.backend.data.model.Instance;
|
import fr.la_banquise.backend.data.model.Instance;
|
||||||
|
import fr.la_banquise.backend.data.model.Tp;
|
||||||
import fr.la_banquise.backend.data.model.User;
|
import fr.la_banquise.backend.data.model.User;
|
||||||
import fr.la_banquise.backend.data.repository.InstanceRepository;
|
import fr.la_banquise.backend.data.repository.InstanceRepository;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
@ -33,9 +34,10 @@ public class InstanceService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public Instance createInstance(String name, String ssh, String pwd) {
|
public Instance createInstance(String name, String ssh, String pwd, String username, int tpId) {
|
||||||
User admin = User.find("name", "admin").firstResult();
|
User user = User.find("name", username).firstResult();
|
||||||
Instance instance = new Instance(name, ssh, pwd, admin, null);
|
Tp tp = Tp.findById(tpId);
|
||||||
|
Instance instance = new Instance(name, ssh, pwd, user, tp);
|
||||||
instanceRepository.persist(instance);
|
instanceRepository.persist(instance);
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
package fr.la_banquise.backend.services;
|
package fr.la_banquise.backend.services;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import fr.la_banquise.backend.data.model.User;
|
import fr.la_banquise.backend.data.model.User;
|
||||||
|
import fr.la_banquise.backend.data.repository.InstanceRepository;
|
||||||
import fr.la_banquise.backend.data.repository.UserRepository;
|
import fr.la_banquise.backend.data.repository.UserRepository;
|
||||||
|
import fr.la_banquise.backend.rest.request.UserRequest;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
@ -17,6 +20,9 @@ public class UserService {
|
|||||||
@Inject
|
@Inject
|
||||||
UserRepository userRepository;
|
UserRepository userRepository;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
InstanceService instanceService;
|
||||||
|
|
||||||
public List<User> getAllUsers() {
|
public List<User> getAllUsers() {
|
||||||
return userRepository.listAll();
|
return userRepository.listAll();
|
||||||
}
|
}
|
||||||
@ -26,8 +32,8 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public User crateUser(String firstName, String lastName) {
|
public User createUser(String name) {
|
||||||
User user = new User(firstName, lastName);
|
User user = new User(name, new ArrayList<>());
|
||||||
userRepository.persist(user);
|
userRepository.persist(user);
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
@ -43,4 +49,14 @@ public class UserService {
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public List<User> createJdmiUser(List<UserRequest> usersRequest) {
|
||||||
|
List<User> users = new ArrayList<>();
|
||||||
|
for (UserRequest user : usersRequest) {
|
||||||
|
users.add(createUser(user.name));
|
||||||
|
instanceService.createInstance(user.name, "test", "test", "test", 1);
|
||||||
|
}
|
||||||
|
return new ArrayList<User>();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user