-
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(project): added project members and added refresh token
- Loading branch information
1 parent
af5cfff
commit 87cd261
Showing
27 changed files
with
395 additions
and
276 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 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
44 changes: 44 additions & 0 deletions
44
server/src/main/java/dev/shiperist/entity/account/RefreshTokenEntity.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,44 @@ | ||
package dev.shiperist.entity.account; | ||
|
||
import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; | ||
import jakarta.persistence.*; | ||
import lombok.Data; | ||
import lombok.EqualsAndHashCode; | ||
import org.hibernate.annotations.CreationTimestamp; | ||
|
||
import java.util.Date; | ||
|
||
@Data | ||
@Entity(name = "RefreshToken") | ||
@Table(name = "refresh_token", schema = "public") | ||
@EqualsAndHashCode(callSuper = true) | ||
public class RefreshTokenEntity extends PanacheEntityBase { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
public Long id; | ||
|
||
@Column(name = "token", unique = true, length = 1024) | ||
private String token; | ||
|
||
@Column(name = "user_id") | ||
private Long userId; | ||
|
||
@Column(name = "revoked") | ||
private boolean revoked; | ||
|
||
@CreationTimestamp | ||
@Column(name = "created_at", updatable = false) | ||
private Date createdAt; | ||
|
||
@CreationTimestamp | ||
@Column(name = "updated_at") | ||
private Date updatedAt; | ||
|
||
@ManyToOne | ||
@JoinColumn(name = "user_id", insertable = false, updatable = false) | ||
private UserEntity user; | ||
|
||
public RefreshTokenEntity() { | ||
} | ||
} |
36 changes: 0 additions & 36 deletions
36
server/src/main/java/dev/shiperist/entity/account/SessionEntity.java
This file was deleted.
Oops, something went wrong.
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 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
35 changes: 35 additions & 0 deletions
35
server/src/main/java/dev/shiperist/entity/project/ProjectMemberEntity.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,35 @@ | ||
package dev.shiperist.entity.project; | ||
|
||
import dev.shiperist.entity.account.UserEntity; | ||
import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; | ||
import jakarta.persistence.*; | ||
import lombok.Data; | ||
import lombok.EqualsAndHashCode; | ||
|
||
@Data | ||
@Entity(name = "ProjectMember") | ||
@Table(name = "project_member", schema = "public") | ||
@EqualsAndHashCode(callSuper = true) | ||
public class ProjectMemberEntity extends PanacheEntityBase { | ||
|
||
@Id | ||
@GeneratedValue(strategy = GenerationType.IDENTITY) | ||
public Long id; | ||
|
||
@Column(name = "user_id") | ||
private Long userId; | ||
|
||
@Column(name = "project_id") | ||
private Long projectId; | ||
|
||
@Column(name = "role") | ||
private String role; | ||
|
||
@ManyToOne(fetch = FetchType.EAGER) | ||
@JoinColumn(name = "user_id", insertable = false, updatable = false) | ||
private UserEntity user; | ||
|
||
@ManyToOne(fetch = FetchType.EAGER) | ||
@JoinColumn(name = "project_id", insertable = false, updatable = false) | ||
private ProjectEntity project; | ||
} |
25 changes: 25 additions & 0 deletions
25
server/src/main/java/dev/shiperist/mapper/account/RefreshTokenMapper.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,25 @@ | ||
package dev.shiperist.mapper.account; | ||
|
||
import dev.shiperist.entity.account.RefreshTokenEntity; | ||
import dev.shiperist.mapper.QuarkusMappingConfig; | ||
import dev.shiperist.model.account.RefreshToken; | ||
import org.mapstruct.InheritInverseConfiguration; | ||
import org.mapstruct.Mapper; | ||
import org.mapstruct.MappingTarget; | ||
|
||
import java.util.List; | ||
|
||
@Mapper(config = QuarkusMappingConfig.class) | ||
public interface RefreshTokenMapper { | ||
|
||
List<RefreshToken> toDomainList(List<RefreshTokenEntity> entities); | ||
|
||
RefreshToken toDomain(RefreshTokenEntity entity); | ||
|
||
@InheritInverseConfiguration(name = "toDomain") | ||
RefreshTokenEntity toEntity(RefreshToken domain); | ||
|
||
void updateEntityFromDomain(RefreshToken domain, @MappingTarget RefreshTokenEntity entity); | ||
|
||
void updateDomainFromEntity(RefreshTokenEntity entity, @MappingTarget RefreshToken domain); | ||
} |
25 changes: 0 additions & 25 deletions
25
server/src/main/java/dev/shiperist/mapper/account/SessionMapper.java
This file was deleted.
Oops, something went wrong.
24 changes: 24 additions & 0 deletions
24
server/src/main/java/dev/shiperist/mapper/project/ProjectMemberMapper.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,24 @@ | ||
package dev.shiperist.mapper.project; | ||
|
||
import dev.shiperist.entity.project.ProjectMemberEntity; | ||
import dev.shiperist.mapper.QuarkusMappingConfig; | ||
import dev.shiperist.model.project.ProjectMember; | ||
import org.mapstruct.InheritInverseConfiguration; | ||
import org.mapstruct.Mapper; | ||
import org.mapstruct.MappingTarget; | ||
|
||
import java.util.List; | ||
|
||
@Mapper(config = QuarkusMappingConfig.class) | ||
public interface ProjectMemberMapper { | ||
List<ProjectMember> toDomainList(List<ProjectMemberEntity> entities); | ||
|
||
ProjectMember toDomain(ProjectMemberEntity entity); | ||
|
||
@InheritInverseConfiguration(name = "toDomain") | ||
ProjectMemberEntity toEntity(ProjectMember domain); | ||
|
||
void updateEntityFromDomain(ProjectMember domain, @MappingTarget ProjectMemberEntity entity); | ||
|
||
void updateDomainFromEntity(ProjectMemberEntity entity, @MappingTarget ProjectMember domain); | ||
} |
16 changes: 16 additions & 0 deletions
16
server/src/main/java/dev/shiperist/model/account/RefreshToken.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,16 @@ | ||
package dev.shiperist.model.account; | ||
|
||
import lombok.Data; | ||
|
||
import java.util.Date; | ||
|
||
@Data | ||
public class RefreshToken { | ||
public Long id; | ||
private String token; | ||
private Long userId; | ||
private Date expires; | ||
private boolean revoked; | ||
private Date createdAt; | ||
private Date updatedAt; | ||
} |
15 changes: 0 additions & 15 deletions
15
server/src/main/java/dev/shiperist/model/account/Session.java
This file was deleted.
Oops, something went wrong.
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
11 changes: 11 additions & 0 deletions
11
server/src/main/java/dev/shiperist/model/account/UserResponse.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,11 @@ | ||
package dev.shiperist.model.account; | ||
|
||
import lombok.Data; | ||
|
||
@Data | ||
public class UserResponse { | ||
private String accessToken; | ||
private String tokenType; | ||
private int expiresIn; | ||
private String refreshToken; | ||
} |
4 changes: 4 additions & 0 deletions
4
server/src/main/java/dev/shiperist/model/project/ProjectMember.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,4 @@ | ||
package dev.shiperist.model.project; | ||
|
||
public class ProjectMember { | ||
} |
6 changes: 3 additions & 3 deletions
6
...repository/account/SessionRepository.java → ...itory/account/RefreshTokenRepository.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,16 +1,16 @@ | ||
package dev.shiperist.repository.account; | ||
|
||
import dev.shiperist.entity.account.SessionEntity; | ||
import dev.shiperist.entity.account.RefreshTokenEntity; | ||
import io.quarkus.hibernate.reactive.panache.PanacheRepositoryBase; | ||
import io.quarkus.hibernate.reactive.panache.common.WithSession; | ||
import io.smallrye.mutiny.Uni; | ||
import jakarta.enterprise.context.ApplicationScoped; | ||
|
||
@WithSession | ||
@ApplicationScoped | ||
public class SessionRepository implements PanacheRepositoryBase<SessionEntity, Long> { | ||
public class RefreshTokenRepository implements PanacheRepositoryBase<RefreshTokenEntity, Long> { | ||
|
||
public Uni<SessionEntity> findByToken(String token) { | ||
public Uni<RefreshTokenEntity> findByToken(String token) { | ||
return find("sessionToken", token).firstResult(); | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
server/src/main/java/dev/shiperist/repository/project/ProjectMemberRepository.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,11 @@ | ||
package dev.shiperist.repository.project; | ||
|
||
import dev.shiperist.entity.project.ProjectMemberEntity; | ||
import io.quarkus.hibernate.reactive.panache.PanacheRepositoryBase; | ||
import io.quarkus.hibernate.reactive.panache.common.WithSession; | ||
import jakarta.enterprise.context.ApplicationScoped; | ||
|
||
@WithSession | ||
@ApplicationScoped | ||
public class ProjectMemberRepository implements PanacheRepositoryBase<ProjectMemberEntity, Long> { | ||
} |
Oops, something went wrong.