Skip to content

Commit

Permalink
Revert "Обучающая ошибка 1"
Browse files Browse the repository at this point in the history
  • Loading branch information
funnyDevGirl authored Jul 31, 2024
1 parent ceafa1e commit 440acff
Show file tree
Hide file tree
Showing 34 changed files with 257 additions and 353 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Set up JDK 21
- name: Set up JDK 20
uses: actions/setup-java@v3
with:
java-version: '21'
java-version: '20'
distribution: 'temurin'
- name: Test with Gradle
uses: gradle/gradle-build-action@v2
Expand Down
3 changes: 0 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,4 @@ report:
dev:
./gradlew run

local:
./gradlew bootRun --args='--spring.profiles.active=file'

.PHONY: build
16 changes: 5 additions & 11 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ application {
}

java {
sourceCompatibility = JavaVersion.VERSION_21
sourceCompatibility = JavaVersion.VERSION_17
}

checkstyle {
Expand Down Expand Up @@ -53,6 +53,10 @@ tasks.sentryBundleSourcesJava {
}

dependencies {
compileOnly("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok:1.18.30")
annotationProcessor("org.projectlombok:lombok")

annotationProcessor("org.projectlombok:lombok-mapstruct-binding:0.2.0")
implementation("org.mapstruct:mapstruct:1.5.5.Final")
annotationProcessor("org.mapstruct:mapstruct-processor:1.5.5.Final")
Expand Down Expand Up @@ -81,16 +85,6 @@ dependencies {
implementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0")
testImplementation("org.springdoc:springdoc-openapi-starter-webmvc-api:2.2.0")

//org.springframework.boot:spring-boot-starter-cache:3.1.5
implementation("org.springframework.boot:spring-boot-starter-cache")
implementation("net.sf.ehcache:ehcache:2.10.6")
implementation("org.ehcache:ehcache:3.10.8")
implementation("org.ehcache:ehcache-transactions:3.10.0")
implementation("javax.cache:cache-api:1.1.1")
implementation("org.springframework:spring-context-support:5.3.25")
//implementation("net.sf.ehcache:ehcache-management:2.6.10")
implementation("net.sf.ehcache:ehcache-core:2.6.10")

}

tasks.withType<Test>() {
Expand Down
1 change: 0 additions & 1 deletion src/main/java/hexlet/code/AppApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@ public static void main(String[] args) {
public Faker getFaker() {
return new Faker(Locale.US);
}

}
1 change: 1 addition & 0 deletions src/main/java/hexlet/code/component/DataInitializer.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public class DataInitializer implements ApplicationRunner {
private final TaskStatusService taskStatusService;
private final LabelService labelService;


@Override
public void run(ApplicationArguments args) throws Exception {
var admin = new UserCreateDTO();
Expand Down
1 change: 1 addition & 0 deletions src/main/java/hexlet/code/dto/tasks/TaskDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.util.HashSet;
import java.util.Set;


@Getter
@Setter
public class TaskDTO {
Expand Down
1 change: 1 addition & 0 deletions src/main/java/hexlet/code/dto/tasks/TaskUpdateDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import org.openapitools.jackson.nullable.JsonNullable;
import java.util.Set;


@Getter
@Setter
public class TaskUpdateDTO {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
public class TaskStatusDTO {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/hexlet/code/dto/users/UserUpdateDTO.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import lombok.Setter;
import org.openapitools.jackson.nullable.JsonNullable;

@Getter
@Setter
public class UserUpdateDTO {

@Email
Expand Down
6 changes: 0 additions & 6 deletions src/main/java/hexlet/code/handler/GlobalExceptionHandler.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package hexlet.code.handler;

import jakarta.validation.ConstraintViolationException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
Expand All @@ -28,9 +27,4 @@ public ResponseEntity<String> handleOtherExceptions(Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("Internal Server Error: " + ex.getMessage());
}

@ExceptionHandler(DataIntegrityViolationException.class)
public ResponseEntity<String> handleDataIntegrityViolationException(DataIntegrityViolationException ex) {
return ResponseEntity.status(HttpStatus.CONFLICT).body(ex.getMessage());
}
}
1 change: 1 addition & 0 deletions src/main/java/hexlet/code/mapper/LabelMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.mapstruct.ReportingPolicy;
import org.mapstruct.MappingTarget;


@Mapper(
uses = {JsonNullableMapper.class, ReferenceMapper.class},
nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
Expand Down
18 changes: 4 additions & 14 deletions src/main/java/hexlet/code/mapper/TaskMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
import hexlet.code.model.Label;
import hexlet.code.model.Task;
import hexlet.code.model.TaskStatus;
import hexlet.code.model.User;
import hexlet.code.repository.UserRepository;
import hexlet.code.repository.LabelRepository;
import hexlet.code.repository.TaskStatusRepository;
import org.mapstruct.Mapper;
Expand All @@ -24,6 +22,7 @@
import java.util.Set;
import java.util.stream.Collectors;


@Mapper(
uses = {JsonNullableMapper.class, ReferenceMapper.class},
nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE,
Expand All @@ -38,13 +37,10 @@ public abstract class TaskMapper {
@Autowired
private LabelRepository labelRepository;

@Autowired
private UserRepository userRepository;

@Mapping(source = "title", target = "name")
@Mapping(source = "content", target = "description")
@Mapping(source = "status", target = "taskStatus", qualifiedByName = "slugToTaskStatus")
@Mapping(source = "assigneeId", target = "assignee", qualifiedByName = "idToAssignee")
@Mapping(source = "assigneeId", target = "assignee")
@Mapping(source = "taskLabelIds", target = "labels", qualifiedByName = "labelIdsToLabels")
public abstract Task map(TaskCreateDTO taskCreateDTO);

Expand All @@ -59,21 +55,15 @@ public abstract class TaskMapper {

@Mapping(source = "title", target = "name")
@Mapping(source = "content", target = "description")
@Mapping(source = "assigneeId", target = "assignee", qualifiedByName = "idToAssignee")
@Mapping(source = "assigneeId", target = "assignee")
@Mapping(source = "status", target = "taskStatus", qualifiedByName = "slugToTaskStatus")
@Mapping(source = "taskLabelIds", target = "labels", qualifiedByName = "labelIdsToLabels")
public abstract void update(TaskUpdateDTO taskUpdateDTO, @MappingTarget Task task);


@Named("idToAssignee")
public User idToAssignee(Long assigneeId) {
return userRepository.findById(assigneeId).orElseThrow(
() -> new ResourceNotFoundException("User with id " + assigneeId + " not found"));
}

@Named("slugToTaskStatus")
public TaskStatus slugToTaskStatus(String slug) {
return taskStatusRepository.findBySlugWithEagerUpload(slug).orElseThrow(
return taskStatusRepository.findBySlug(slug).orElseThrow(
() -> new ResourceNotFoundException("TaskStatus with slug " + slug + " not found"));
}

Expand Down
11 changes: 8 additions & 3 deletions src/main/java/hexlet/code/model/Label.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import jakarta.persistence.ManyToMany;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Id;
import jakarta.persistence.FetchType;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.EqualsAndHashCode;
Expand Down Expand Up @@ -41,17 +42,21 @@ public class Label implements BaseEntity {
@CreatedDate
private LocalDate createdAt;

@ManyToMany(mappedBy = "labels", cascade = CascadeType.MERGE)
// @ManyToMany
// @JoinTable(name="label_task",
// joinColumns = @JoinColumn(name="label_id", referencedColumnName="id"),
// inverseJoinColumns = @JoinColumn(name="task_id", referencedColumnName="id") )
@ManyToMany(mappedBy = "labels", fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
private Set<Task> tasks = new HashSet<>();


public void addTask(Task task) {
this.getTasks().add(task);
tasks.add(task);
task.getLabels().add(this);
}

public void removeTask(Task task) {
this.getTasks().remove(task);
tasks.remove(task);
task.getLabels().remove(this);
}
}
27 changes: 23 additions & 4 deletions src/main/java/hexlet/code/model/Task.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package hexlet.code.model;

import jakarta.persistence.CascadeType;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.Entity;
Expand All @@ -8,14 +9,14 @@
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.JoinColumn;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import java.time.LocalDate;
import java.util.HashSet;
import java.util.Set;
Expand Down Expand Up @@ -46,12 +47,30 @@ public class Task implements BaseEntity {
@CreatedDate
private LocalDate createdAt;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "status_id", nullable = false)
@ManyToOne(fetch = FetchType.EAGER)
private TaskStatus taskStatus;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "assignee_id")
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)//у меня
private User assignee;

@ManyToMany

// @ManyToMany
// @JoinTable(name="label_task",
// joinColumns = @JoinColumn(name="task_id", referencedColumnName="id"),
// inverseJoinColumns = @JoinColumn(name="label_id", referencedColumnName="id") )
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
private Set<Label> labels = new HashSet<>();


// public void addLabel(Label label) {
// labels.add(label);
// label.getTasks().add(this);
// }
//
// public void removeLabel(Label label) {
// labels.remove(label);
// label.getTasks().remove(this);
// }
}
15 changes: 7 additions & 8 deletions src/main/java/hexlet/code/model/TaskStatus.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static jakarta.persistence.GenerationType.IDENTITY;
import jakarta.persistence.CascadeType;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
Expand All @@ -11,22 +12,20 @@
import jakarta.persistence.OneToMany;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.time.LocalDate;
import java.util.HashSet;
import java.util.Set;
import java.util.ArrayList;
import java.util.List;


@Entity
@Table(name = "statuses")
@EntityListeners(AuditingEntityListener.class)
@Getter
@Setter
@EqualsAndHashCode(of = {"name", "slug"})
public class TaskStatus implements BaseEntity {

@Id
Expand All @@ -46,17 +45,17 @@ public class TaskStatus implements BaseEntity {
@CreatedDate
private LocalDate createdAt;

@OneToMany(mappedBy = "taskStatus", cascade = CascadeType.MERGE)
private Set<Task> tasks = new HashSet<>();
@OneToMany(mappedBy = "taskStatus", cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
private List<Task> tasks = new ArrayList<>();


public void addTask(Task task) {
this.getTasks().add(task);
tasks.add(task);
task.setTaskStatus(this);
}

public void removeTask(Task task) {
this.getTasks().remove(task);
tasks.remove(task);
task.setTaskStatus(null);
}
}
14 changes: 6 additions & 8 deletions src/main/java/hexlet/code/model/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.CascadeType;
import jakarta.persistence.FetchType;
import jakarta.persistence.Id;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;
Expand All @@ -12,7 +13,6 @@
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
Expand All @@ -25,8 +25,7 @@
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.List;


@Entity
Expand All @@ -35,7 +34,6 @@
@ToString(includeFieldNames = true, onlyExplicitlyIncluded = true)
@Getter
@Setter
@EqualsAndHashCode(of = "email")
public class User implements UserDetails, BaseEntity {

@Id
Expand Down Expand Up @@ -68,17 +66,17 @@ public class User implements UserDetails, BaseEntity {
@Column(name = "updated_at")
private LocalDate updatedAt;

@OneToMany(mappedBy = "assignee", cascade = CascadeType.MERGE)
private Set<Task> tasks = new HashSet<>();
@OneToMany(mappedBy = "assignee", fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
private List<Task> tasks = new ArrayList<>();


public void addTask(Task task) {
this.getTasks().add(task);
tasks.add(task);
task.setAssignee(this);
}

public void removeTask(Task task) {
this.getTasks().remove(task);
tasks.remove(task);
task.setAssignee(null);
}

Expand Down
Loading

0 comments on commit 440acff

Please sign in to comment.