Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/emobile/springtodo/config/AppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public JdbcTemplate jdbcTemplate(DataSource dataSource) {
}

@Bean
public PlatformTransactionManager txManager() {
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/emobile/springtodo/mapper/TaskMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.emobile.springtodo.model.dto.task.TaskSaveRequest;
import com.emobile.springtodo.model.entity.Task;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.ReportingPolicy;

Expand Down Expand Up @@ -45,8 +46,7 @@ public interface TaskMapper {
* @param model {@link Task} for mapping.
* @return mapped {@link TaskResponse}.
*/
// @Mapping(target = "createdAt", qualifiedByName = "OffsetDateTimeToString")
// @Mapping(target = "updatedAt", qualifiedByName = "OffsetDateTimeToString")
@Mapping(source = "author.id", target = "authorId")
TaskResponse modelToResponse(Task model);


Expand Down
33 changes: 31 additions & 2 deletions src/main/java/com/emobile/springtodo/model/entity/Task.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
package com.emobile.springtodo.model.entity;

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
Expand All @@ -22,35 +32,54 @@
@Getter
@FieldNameConstants
@Builder
@Entity
@Table(name = "tasks")
public class Task implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* Long Task id.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = Fields.id)
private Long id;
/**
* Task name.
*/
@Column(name = Fields.name)
private String name;
/**
* Task description.
*/
@Column(name = Fields.description)
private String description;
/**
* Task {@link TaskStatus} status.
*/
@Enumerated(EnumType.STRING)
@Column(name = Fields.status)
private TaskStatus status;
/**
* Task creation time without timezone.
*/
@Column(name = "created_at")
private LocalDateTime createdAt;
/**
* Task update time without timezone.
*/
@Column(name = "updated_at")
private LocalDateTime updatedAt;
/**
* The User id who owns the Task.
* The User who owns the Task.
*/
private Long authorId;
@EqualsAndHashCode.Exclude
@ManyToOne
@JoinColumn(name = "author_id", referencedColumnName = "id")
private User author;

@EqualsAndHashCode.Include
public Long getAuthorId() {
return author.getId();
}
}
21 changes: 21 additions & 0 deletions src/main/java/com/emobile/springtodo/model/entity/User.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.emobile.springtodo.model.entity;

import com.emobile.springtodo.model.security.RoleType;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
Expand All @@ -24,32 +25,52 @@
@Getter
@FieldNameConstants
@Builder
@Entity
@NamedEntityGraph(
name = "User.withTasks",
attributeNodes = @NamedAttributeNode("taskList")
)
@Table(name = "users",
indexes = {
@Index(columnList = User.Fields.username, unique = true),
@Index(columnList = User.Fields.email, unique = true)
})
public class User implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* Long User id.
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = Fields.id)
private Long id;
/**
* User name.
*/
@Column(name = Fields.username)
private String username;
/**
* User password.
*/
@Column(name = Fields.password)
private String password;
/**
* User email.
*/
@Column(name = Fields.email)
private String email;
/**
* User authorization role type.
*/
@Enumerated(EnumType.STRING)
@Column(name = Fields.role)
private RoleType role;
/**
* User tasks.
*/
@ToString.Exclude
@OneToMany(mappedBy = Task.Fields.author, orphanRemoval = true)
@Builder.Default
private List<Task> taskList = new ArrayList<>();
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@ public record PageInfo(
/**
* Minimum size of the number field.
*/
private static final int MIN_NUMBER_SIZE = 1;
private static final int MIN_NUMBER_SIZE = 0;
}

This file was deleted.

This file was deleted.

This file was deleted.

Loading