Skip to content

Commit

Permalink
enhancements(backend): Refactor User module
Browse files Browse the repository at this point in the history
  • Loading branch information
zZHorizonZz committed Jul 19, 2023
1 parent 733a3e1 commit e317c03
Show file tree
Hide file tree
Showing 21 changed files with 224 additions and 133 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package dev.shiperist.user.entity;
package dev.shiperist.entity;

import io.quarkus.hibernate.reactive.panache.PanacheEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Getter
@Builder
@Data
@Entity
@Table(name = "account")
@EqualsAndHashCode(callSuper = true)
public class AccountEntity extends PanacheEntity {

@Column(name = "user_id")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package dev.shiperist.user.entity;
package dev.shiperist.entity;

import io.quarkus.hibernate.reactive.panache.PanacheEntity;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Getter
@Builder
@Data
@Entity
@Table(name = "session")
@EqualsAndHashCode(callSuper = true)
public class SessionEntity extends PanacheEntity {

@Column(name = "session_token", unique = true)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package dev.shiperist.user.entity;
package dev.shiperist.entity;

import io.quarkus.hibernate.reactive.panache.PanacheEntity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import lombok.Builder;
import lombok.Getter;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

@Getter
@Builder
@Data
@Entity
@Table(name = "user")
@EqualsAndHashCode(callSuper = true)
public class UserEntity extends PanacheEntity {

@Column(name = "name")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.shiperist.user.mapper;
package dev.shiperist.mapper;

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

@Mapper(componentModel = "jakarta")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.shiperist.user.mapper;
package dev.shiperist.mapper;

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

@Mapper(componentModel = "jakarta")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.shiperist.user.mapper;
package dev.shiperist.mapper;

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

@Mapper(componentModel = "jakarta")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package dev.shiperist.user.model;
package dev.shiperist.model;

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

@Getter
@Data
public class Account {
private String userId;
private String type;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package dev.shiperist.user.model;
package dev.shiperist.model;

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

import java.time.LocalDateTime;

@Getter
@Data
public class Session {
private String sessionToken;
private String userId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package dev.shiperist.user.model;
package dev.shiperist.model;

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

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

@Getter
@Data
public class User {
private String name;
private String email;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.shiperist.user.repository;
package dev.shiperist.repository;

import dev.shiperist.user.entity.AccountEntity;
import dev.shiperist.entity.AccountEntity;
import io.quarkus.hibernate.reactive.panache.PanacheRepository;

public class AccountRepository implements PanacheRepository<AccountEntity> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package dev.shiperist.user.repository;
package dev.shiperist.repository;

import dev.shiperist.user.entity.SessionEntity;
import dev.shiperist.entity.SessionEntity;
import io.quarkus.hibernate.reactive.panache.PanacheRepository;

public class SessionRepository implements PanacheRepository<SessionEntity> {
Expand Down
12 changes: 12 additions & 0 deletions server/src/main/java/dev/shiperist/repository/UserRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dev.shiperist.repository;

import dev.shiperist.entity.UserEntity;
import io.quarkus.hibernate.reactive.panache.PanacheRepository;
import io.smallrye.mutiny.Uni;

public class UserRepository implements PanacheRepository<UserEntity> {

public Uni<UserEntity> findByEmail(String email) {
return find("email", email).firstResult();
}
}
47 changes: 47 additions & 0 deletions server/src/main/java/dev/shiperist/resource/AccountService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package dev.shiperist.resource;

import dev.shiperist.entity.AccountEntity;
import dev.shiperist.mapper.AccountMapper;
import dev.shiperist.model.Account;
import dev.shiperist.repository.AccountRepository;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;

import java.util.Optional;

@ApplicationScoped
public class AccountService {

@Inject
AccountRepository accountRepository;

@Inject
AccountMapper accountMapper;

@Transactional
public Uni<Account> createAccount(Account account) {
AccountEntity accountEntity = accountMapper.toEntity(account);
return accountRepository.persist(accountEntity).map(accountMapper::toDomain);
}

@Transactional
public Uni<Optional<Account>> getAccount(Long id) {
return accountRepository.findById(id)
.map(accountMapper::toDomain)
.map(Optional::of)
.onItem().ifNull().continueWith(Optional.empty());
}

@Transactional
public Uni<Account> updateAccount(Account account) {
AccountEntity accountEntity = accountMapper.toEntity(account);
return accountRepository.persist(accountEntity).map(accountMapper::toDomain);
}

@Transactional
public Uni<Boolean> deleteAccount(Long accountId) {
return accountRepository.deleteById(accountId);
}
}
47 changes: 47 additions & 0 deletions server/src/main/java/dev/shiperist/resource/SessionService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package dev.shiperist.resource;

import dev.shiperist.entity.SessionEntity;
import dev.shiperist.mapper.SessionMapper;
import dev.shiperist.model.Session;
import dev.shiperist.repository.SessionRepository;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;

import java.util.Optional;

@ApplicationScoped
public class SessionService {

@Inject
SessionRepository sessionRepository;

@Inject
SessionMapper sessionMapper;

@Transactional
public Uni<Session> createSession(Session session) {
SessionEntity sessionEntity = sessionMapper.toEntity(session);
return sessionRepository.persist(sessionEntity).map(sessionMapper::toDomain);
}

@Transactional
public Uni<Optional<Session>> getSession(Long id) {
return sessionRepository.findById(id)
.map(sessionMapper::toDomain)
.map(Optional::of)
.onItem().ifNull().continueWith(Optional.empty());
}

@Transactional
public Uni<Session> updateSession(Session session) {
SessionEntity sessionEntity = sessionMapper.toEntity(session);
return sessionRepository.persist(sessionEntity).map(sessionMapper::toDomain);
}

@Transactional
public Uni<Boolean> deleteSession(Long sessionId) {
return sessionRepository.deleteById(sessionId);
}
}
55 changes: 55 additions & 0 deletions server/src/main/java/dev/shiperist/resource/UserService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package dev.shiperist.resource;

import dev.shiperist.entity.UserEntity;
import dev.shiperist.mapper.UserMapper;
import dev.shiperist.model.User;
import dev.shiperist.repository.UserRepository;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;

import java.util.Optional;

@ApplicationScoped
public class UserService {

@Inject
UserRepository userRepository;

@Inject
UserMapper userMapper;

@Transactional
public Uni<User> createUser(User user) {
UserEntity userEntity = userMapper.toEntity(user);
return userRepository.persist(userEntity).map(userMapper::toDomain);
}

@Transactional
public Uni<Optional<User>> getUser(Long id) {
return userRepository.findById(id)
.map(userMapper::toDomain)
.map(Optional::of)
.onItem().ifNull().continueWith(Optional.empty());
}

@Transactional
public Uni<Optional<User>> getUserByEmail(String email) {
return userRepository.findByEmail(email)
.map(userMapper::toDomain)
.map(Optional::of)
.onItem().ifNull().continueWith(Optional.empty());
}

@Transactional
public Uni<User> updateUser(User user) {
UserEntity userEntity = userMapper.toEntity(user);
return userRepository.persist(userEntity).map(userMapper::toDomain);
}

@Transactional
public Uni<Boolean> deleteUser(Long userId) {
return userRepository.deleteById(userId);
}
}
9 changes: 9 additions & 0 deletions server/src/main/java/dev/shiperist/service/AuthService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.shiperist.service;

import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class AuthService {


}

This file was deleted.

This file was deleted.

Loading

0 comments on commit e317c03

Please sign in to comment.