From 776271e081d066eba0d02e928ed86dad88574ba5 Mon Sep 17 00:00:00 2001 From: ekallin Date: Sat, 16 Mar 2024 14:03:24 +0400 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B1=D0=B0=D0=B7=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=81=D1=83=D1=89?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C,=20=D1=80=D0=B5=D0=BF=D0=BE?= =?UTF-8?q?=D0=B7=D0=B8=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B4.=20(=D0=BF=D0=B0=D0=BF=D0=BA=D0=B0=20core)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/build.gradle | 2 + .../categories/model/CategorieEntity.java | 7 ++ .../core/configurations/Constants.java | 8 +++ .../configurations/MapperConfiguration.java | 13 ++++ .../{ => core/configurations}/WebConfig.java | 2 +- .../backend/core/model/BaseEntity.java | 23 +++++++ .../core/repository/CommonRepository.java | 19 ++++++ .../core/repository/MapRepository.java | 65 +++++++++++++++++++ 8 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/com/example/backend/categories/model/CategorieEntity.java create mode 100644 backend/src/main/java/com/example/backend/core/configurations/Constants.java create mode 100644 backend/src/main/java/com/example/backend/core/configurations/MapperConfiguration.java rename backend/src/main/java/com/example/backend/{ => core/configurations}/WebConfig.java (91%) create mode 100644 backend/src/main/java/com/example/backend/core/model/BaseEntity.java create mode 100644 backend/src/main/java/com/example/backend/core/repository/CommonRepository.java create mode 100644 backend/src/main/java/com/example/backend/core/repository/MapRepository.java diff --git a/backend/build.gradle b/backend/build.gradle index 734ff8e..c98431b 100644 --- a/backend/build.gradle +++ b/backend/build.gradle @@ -19,6 +19,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' + implementation 'org.modelmapper:modelmapper:3.2.0' + testImplementation 'org.springframework.boot:spring-boot-starter-test' } diff --git a/backend/src/main/java/com/example/backend/categories/model/CategorieEntity.java b/backend/src/main/java/com/example/backend/categories/model/CategorieEntity.java new file mode 100644 index 0000000..84e8595 --- /dev/null +++ b/backend/src/main/java/com/example/backend/categories/model/CategorieEntity.java @@ -0,0 +1,7 @@ +package com.example.backend.categories.model; + +import com.example.backend.core.model.BaseEntity; + +public class CategorieEntity extends BaseEntity { + +} diff --git a/backend/src/main/java/com/example/backend/core/configurations/Constants.java b/backend/src/main/java/com/example/backend/core/configurations/Constants.java new file mode 100644 index 0000000..90a3f7e --- /dev/null +++ b/backend/src/main/java/com/example/backend/core/configurations/Constants.java @@ -0,0 +1,8 @@ +package com.example.backend.core.configurations; + +public class Constants { + public static final String API_URL = "/api/1.0"; + + private Constants() { + } +} diff --git a/backend/src/main/java/com/example/backend/core/configurations/MapperConfiguration.java b/backend/src/main/java/com/example/backend/core/configurations/MapperConfiguration.java new file mode 100644 index 0000000..0b935f4 --- /dev/null +++ b/backend/src/main/java/com/example/backend/core/configurations/MapperConfiguration.java @@ -0,0 +1,13 @@ +package com.example.backend.core.configurations; + +import org.modelmapper.ModelMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class MapperConfiguration { + @Bean + ModelMapper modelMapper() { + return new ModelMapper(); + } +} diff --git a/backend/src/main/java/com/example/backend/WebConfig.java b/backend/src/main/java/com/example/backend/core/configurations/WebConfig.java similarity index 91% rename from backend/src/main/java/com/example/backend/WebConfig.java rename to backend/src/main/java/com/example/backend/core/configurations/WebConfig.java index f39f0d6..ff028f7 100644 --- a/backend/src/main/java/com/example/backend/WebConfig.java +++ b/backend/src/main/java/com/example/backend/core/configurations/WebConfig.java @@ -1,4 +1,4 @@ -package com.example.backend; +package com.example.backend.core.configurations; import org.springframework.context.annotation.Configuration; import org.springframework.lang.NonNull; diff --git a/backend/src/main/java/com/example/backend/core/model/BaseEntity.java b/backend/src/main/java/com/example/backend/core/model/BaseEntity.java new file mode 100644 index 0000000..a769463 --- /dev/null +++ b/backend/src/main/java/com/example/backend/core/model/BaseEntity.java @@ -0,0 +1,23 @@ +package com.example.backend.core.model; + +public class BaseEntity { + + public Integer Id; + + protected BaseEntity() { + + } + + protected BaseEntity(Integer id) { + Id = id; + } + + public Integer getId() { + return Id; + } + + public void setId(Integer id) { + Id = id; + } + +} diff --git a/backend/src/main/java/com/example/backend/core/repository/CommonRepository.java b/backend/src/main/java/com/example/backend/core/repository/CommonRepository.java new file mode 100644 index 0000000..e6cc515 --- /dev/null +++ b/backend/src/main/java/com/example/backend/core/repository/CommonRepository.java @@ -0,0 +1,19 @@ +package com.example.backend.core.repository; + +import java.util.List; + +public interface CommonRepository { + + List getAll(); + + E get(T id); + + E create(E entity); + + E update(E entity); + + E delete(E entity); + + void deleteAll(); + +} diff --git a/backend/src/main/java/com/example/backend/core/repository/MapRepository.java b/backend/src/main/java/com/example/backend/core/repository/MapRepository.java new file mode 100644 index 0000000..828c941 --- /dev/null +++ b/backend/src/main/java/com/example/backend/core/repository/MapRepository.java @@ -0,0 +1,65 @@ +package com.example.backend.core.repository; + +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import com.example.backend.core.model.BaseEntity; + +public abstract class MapRepository implements CommonRepository { + + private final Map entities = new TreeMap<>(); + private Integer lastId = 0; + + private boolean checkNull(E entity) { + if (get(entity.getId()) == null) + return false; + return true; + } + + protected MapRepository() { + + } + + @Override + public List getAll() { + return entities.values().stream().toList(); + } + + @Override + public E get(Integer id) { + return entities.get(id); + } + + @Override + public E create(E entity) { + lastId++; + entity.setId(lastId); + entities.put(lastId, entity); + return entity; + } + + @Override + public E update(E entity) { + if (checkNull(entity)) { + entities.put(lastId, entity); + return entity; + } + return null; + } + + @Override + public E delete(E entity) { + if (checkNull(entity)) { + entities.remove(entity.getId()); + return entity; + } + return null; + } + + @Override + public void deleteAll() { + entities.clear(); + lastId = 0; + } +}