Skip to content

Commit

Permalink
enhancements(backend): Remove ExampleResource and enhance User module
Browse files Browse the repository at this point in the history
  • Loading branch information
zZHorizonZz committed Jul 17, 2023
1 parent c5fc075 commit 7cb004a
Show file tree
Hide file tree
Showing 10 changed files with 126 additions and 17 deletions.
11 changes: 11 additions & 0 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>3.2.0.Final</quarkus.platform.version>
<mapstruct.version>1.4.2.Final</mapstruct.version>
<skipITs>true</skipITs>
<surefire-plugin.version>3.0.0</surefire-plugin.version>
</properties>
Expand Down Expand Up @@ -71,6 +72,11 @@
<version>1.18.28</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
Expand Down Expand Up @@ -118,6 +124,11 @@
<artifactId>lombok</artifactId>
<version>1.18.28</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
Expand Down
16 changes: 0 additions & 16 deletions server/src/main/java/dev/shiperist/ExampleResource.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
package dev.shiperist.user.mapper;

import dev.shiperist.user.entity.AccountEntity;
import dev.shiperist.user.model.Account;
import org.mapstruct.Mapper;

@Mapper(componentModel = "jakarta")
public interface AccountMapper {

AccountEntity toEntity(Account domain);

Account toDomain(AccountEntity entity);
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
package dev.shiperist.user.mapper;

import dev.shiperist.user.entity.SessionEntity;
import dev.shiperist.user.model.Session;
import org.mapstruct.Mapper;

@Mapper(componentModel = "jakarta")
public interface SessionMapper {

SessionEntity toEntity(Session domain);

Session toDomain(SessionEntity entity);
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
package dev.shiperist.user.mapper;

import dev.shiperist.user.entity.UserEntity;
import dev.shiperist.user.model.User;
import org.mapstruct.Mapper;

@Mapper(componentModel = "jakarta")
public interface UserMapper {

UserEntity toEntity(User domain);

User toDomain(UserEntity entity);
}
21 changes: 21 additions & 0 deletions server/src/main/java/dev/shiperist/user/model/Account.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package dev.shiperist.user.model;

import dev.shiperist.user.entity.UserEntity;
import lombok.Getter;

@Getter
public class Account {
private String userId;
private String type;
private String provider;
private String providerAccountId;
private String refreshToken;
private Integer refreshTokenExpiresIn;
private String accessToken;
private Integer expiresAt;
private String tokenType;
private String scope;
private String idToken;
private String sessionState;
private UserEntity user;
}
14 changes: 14 additions & 0 deletions server/src/main/java/dev/shiperist/user/model/Session.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package dev.shiperist.user.model;

import dev.shiperist.user.entity.UserEntity;
import lombok.Getter;

import java.time.LocalDateTime;

@Getter
public class Session {
private String sessionToken;
private String userId;
private LocalDateTime expires;
private UserEntity user;
}
14 changes: 14 additions & 0 deletions server/src/main/java/dev/shiperist/user/model/User.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,18 @@
package dev.shiperist.user.model;

import dev.shiperist.user.entity.AccountEntity;
import dev.shiperist.user.entity.SessionEntity;
import lombok.Getter;

import java.time.LocalDateTime;
import java.util.Set;

@Getter
public class User {
private String name;
private String email;
private LocalDateTime emailVerified;
private String image;
private Set<AccountEntity> accounts;
private Set<SessionEntity> sessions;
}
Original file line number Diff line number Diff line change
@@ -1,28 +1,37 @@
package dev.shiperist.user.resource;

import dev.shiperist.user.entity.UserEntity;
import dev.shiperist.user.mapper.UserMapper;
import dev.shiperist.user.model.User;
import dev.shiperist.user.model.request.CreateUserRequest;
import dev.shiperist.user.repository.UserRepository;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.context.RequestScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;

@Path("/user")
@RequestScoped
public class UserResource {

@Inject
UserRepository userRepository;

@Inject
UserMapper userMapper;

@GET
@Path("/create")
public Uni<User> createUser(CreateUserRequest request) {
UserEntity.UserEntityBuilder builder = UserEntity.builder();
builder.name(request.getName());
builder.email(request.getEmail());
builder.emailVerified(request.getIsEmailVerified());
builder.image(request.getImage());

return userRepository.persist(builder.build()).map(User::new);
return userRepository.persist(builder.build())
.map(userMapper::toDomain);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package dev.shiperist.user.resource;

import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;

import static io.restassured.RestAssured.given;

@QuarkusTest
public class UserResourceTest {

@Test
void createUser() {
String userCreateRequest = """
{
"name": "test",
"email": "[email protected]",
"isEmailVerified": true,
"image": "test"
}
""";

given()
.when()
.body(userCreateRequest)
.post("/user/create")
.then()
.statusCode(200);
}
}

0 comments on commit 7cb004a

Please sign in to comment.