изменены классы категорий
This commit is contained in:
parent
b40fbf0146
commit
957c902e21
@ -3,14 +3,18 @@ package com.example.backend.categories.api;
|
|||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
|
|
||||||
public class CategorieDTO {
|
public class CategorieDTO {
|
||||||
|
|
||||||
|
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
|
||||||
@NotBlank
|
@NotBlank
|
||||||
|
@Size(min = 5, max = 50)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@Size(min = 5, max = 50)
|
||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||||
|
@ -4,9 +4,18 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import com.example.backend.core.model.BaseEntity;
|
import com.example.backend.core.model.BaseEntity;
|
||||||
|
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "categories")
|
||||||
public class CategorieEntity extends BaseEntity {
|
public class CategorieEntity extends BaseEntity {
|
||||||
|
|
||||||
|
@Column(nullable = false, unique = true, length = 15)
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@Column(nullable = true)
|
||||||
private String image;
|
private String image;
|
||||||
|
|
||||||
public CategorieEntity() {
|
public CategorieEntity() {
|
||||||
@ -14,7 +23,6 @@ public class CategorieEntity extends BaseEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public CategorieEntity(Integer id, String name, String image) {
|
public CategorieEntity(Integer id, String name, String image) {
|
||||||
super(id);
|
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.image = image;
|
this.image = image;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package com.example.backend.categories.repository;
|
package com.example.backend.categories.repository;
|
||||||
|
|
||||||
import org.springframework.stereotype.Repository;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
|
||||||
import com.example.backend.categories.model.CategorieEntity;
|
import com.example.backend.categories.model.CategorieEntity;
|
||||||
import com.example.backend.core.repository.MapRepository;
|
|
||||||
|
|
||||||
@Repository
|
|
||||||
public class CategorieRepository extends MapRepository<CategorieEntity> {
|
|
||||||
|
|
||||||
|
public interface CategorieRepository extends CrudRepository<CategorieEntity, Integer> {
|
||||||
|
Optional<CategorieEntity> findByNameIgnoreCase(String name);
|
||||||
}
|
}
|
||||||
|
@ -3,11 +3,15 @@ package com.example.backend.categories.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import java.util.stream.StreamSupport;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.example.backend.core.errors.NotFoundException;
|
||||||
import com.example.backend.categories.model.CategorieEntity;
|
import com.example.backend.categories.model.CategorieEntity;
|
||||||
import com.example.backend.categories.repository.CategorieRepository;
|
import com.example.backend.categories.repository.CategorieRepository;
|
||||||
import com.example.backend.core.errors.NotFoundException;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class CategorieService {
|
public class CategorieService {
|
||||||
@ -18,28 +22,42 @@ public class CategorieService {
|
|||||||
this.repository = repository;
|
this.repository = repository;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<CategorieEntity> getAll() {
|
private void checkName(String name) {
|
||||||
return repository.getAll();
|
if (repository.findByNameIgnoreCase(name).isPresent()) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
String.format("Type with name %s is already exists", name));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public List<CategorieEntity> getAll() {
|
||||||
|
return StreamSupport.stream(repository.findAll().spliterator(), false).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
public CategorieEntity get(Integer id) {
|
public CategorieEntity get(Integer id) {
|
||||||
return Optional.ofNullable(repository.get(id)).orElseThrow(() -> new NotFoundException(id));
|
return repository.findById(id).orElseThrow(() -> new NotFoundException(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CategorieEntity create(CategorieEntity entity) {
|
public CategorieEntity create(CategorieEntity entity) {
|
||||||
return repository.create(entity);
|
if(entity == null){
|
||||||
|
throw new IllegalArgumentException("Сущность не найдена");
|
||||||
|
}
|
||||||
|
checkName(entity.getName());
|
||||||
|
return repository.save(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CategorieEntity update(Integer id, CategorieEntity entity) {
|
public CategorieEntity update(Integer id, CategorieEntity entity) {
|
||||||
final CategorieEntity existsentity = get(id);
|
final CategorieEntity existsentity = get(id);
|
||||||
existsentity.setName(entity.getName());
|
existsentity.setName(entity.getName());
|
||||||
existsentity.setImage(entity.getImage());
|
existsentity.setImage(entity.getImage());
|
||||||
return repository.update(existsentity);
|
return repository.save(existsentity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CategorieEntity delete(Integer id) {
|
public CategorieEntity delete(Integer id) {
|
||||||
final CategorieEntity existsentity = get(id);
|
final CategorieEntity existsentity = get(id);
|
||||||
return repository.delete(existsentity);
|
repository.delete(existsentity);
|
||||||
|
return existsentity;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user