-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
enhancements(backend): Remove ExampleResource and enhance User module
- Loading branch information
1 parent
c5fc075
commit 7cb004a
Showing
10 changed files
with
126 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
9 changes: 9 additions & 0 deletions
9
server/src/main/java/dev/shiperist/user/mapper/AccountMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} |
9 changes: 9 additions & 0 deletions
9
server/src/main/java/dev/shiperist/user/mapper/SessionMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} |
9 changes: 9 additions & 0 deletions
9
server/src/main/java/dev/shiperist/user/mapper/UserMapper.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
21
server/src/main/java/dev/shiperist/user/model/Account.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
14
server/src/main/java/dev/shiperist/user/model/Session.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
11 changes: 10 additions & 1 deletion
11
server/src/main/java/dev/shiperist/user/resource/UserResource.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} |
29 changes: 29 additions & 0 deletions
29
server/src/test/java/dev/shiperist/user/resource/UserResourceTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
} | ||
} |