From 5c6d19deefa8b66788e133094586dae0d9ff43d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=B0=BD=EB=B3=B4?= <101192100+jacobhboy@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:22:57 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat[#2]:=20User=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep | 0 .../hi/hiwikiserver/core/user/domain/Authority.kt | 5 +++++ .../hi/hiwikiserver/core/user/domain/Email.kt | 15 +++++++++++++++ .../wiki/hi/hiwikiserver/core/user/domain/User.kt | 11 +++++++++++ .../src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep | 0 5 files changed, 31 insertions(+) delete mode 100644 high-core/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep create mode 100644 high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Authority.kt create mode 100644 high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Email.kt create mode 100644 high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt delete mode 100644 high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep diff --git a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Authority.kt b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Authority.kt new file mode 100644 index 0000000..6a142a5 --- /dev/null +++ b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Authority.kt @@ -0,0 +1,5 @@ +package wiki.hi.hiwikiserver.core.user.domain + +enum class Authority { + USER, MANAGER, ADMIN +} diff --git a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Email.kt b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Email.kt new file mode 100644 index 0000000..529d21c --- /dev/null +++ b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/Email.kt @@ -0,0 +1,15 @@ +package wiki.hi.hiwikiserver.core.user.domain + +class Email( + email: String +) { + companion object { + fun of(email: String): Email{ + if (email.endsWith("hs.kr")) + return Email(email) + + else + throw IllegalArgumentException("email의 형식이 올바르지 않습니다.") + } + } +} diff --git a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt new file mode 100644 index 0000000..cb83814 --- /dev/null +++ b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt @@ -0,0 +1,11 @@ +package wiki.hi.hiwikiserver.core.user.domain + +data class User ( + val id: Long, + val email: Email, + val nickName: String, + val authority: Authority, + val schoolId: Long, + val contributeId: ArrayList, + val thumbsUpId: ArrayList +) \ No newline at end of file diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep deleted file mode 100644 index e69de29..0000000 From e59840b3f6b0dcdff6aab7ce12d2e5f388761c67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=B0=BD=EB=B3=B4?= <101192100+jacobhboy@users.noreply.github.com> Date: Tue, 27 Jun 2023 16:07:15 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat[#2]:=20User=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 2 +- .../hi/hiwikiserver/core/user/domain/User.kt | 2 +- .../hiwikiserver/persistence/GenericMapper.kt | 7 ++++++ .../persistence/user/entity/UserJpaEntity.kt | 19 +++++++++++++++ .../persistence/user/mapper/UserMapper.kt | 23 +++++++++++++++++++ .../src/main/resources/infrastructure.yml | 20 ++++++++++++++++ .../src/main/resources/persistence.yml | 1 - 7 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt create mode 100644 high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt create mode 100644 high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt create mode 100644 high-internal-api-server/src/main/resources/infrastructure.yml delete mode 100644 high-internal-api-server/src/main/resources/persistence.yml diff --git a/high-api-server/src/main/resources/application.yml b/high-api-server/src/main/resources/application.yml index 20e98e9..407f05d 100644 --- a/high-api-server/src/main/resources/application.yml +++ b/high-api-server/src/main/resources/application.yml @@ -2,4 +2,4 @@ spring: config: import: - core.yml - - persistence.yml + - infrastructure.yml \ No newline at end of file diff --git a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt index cb83814..c75f2d5 100644 --- a/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt +++ b/high-core/src/main/kotlin/wiki/hi/hiwikiserver/core/user/domain/User.kt @@ -7,5 +7,5 @@ data class User ( val authority: Authority, val schoolId: Long, val contributeId: ArrayList, - val thumbsUpId: ArrayList + val thumbsUpsId: ArrayList ) \ No newline at end of file diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt new file mode 100644 index 0000000..e2edf33 --- /dev/null +++ b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt @@ -0,0 +1,7 @@ +package wiki.hi.hiwikiserver.persistence + +interface GenericMapper { + fun toDomain(entity: E): D + + fun toEntity(domain: D): E +} \ No newline at end of file diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt new file mode 100644 index 0000000..438d3a5 --- /dev/null +++ b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt @@ -0,0 +1,19 @@ +package wiki.hi.hiwikiserver.persistence.user.entity + +import wiki.hi.hiwikiserver.core.user.domain.Authority +import wiki.hi.hiwikiserver.core.user.domain.Email +import javax.persistence.* + +@Entity +@Table(name = "USER") +class UserJpaEntity ( + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + val id: Long?, + @Embedded + val email: Email, + val nickName: String, + val authority: Authority, + val schoolId: Long +) \ No newline at end of file diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt new file mode 100644 index 0000000..b2ab2c0 --- /dev/null +++ b/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt @@ -0,0 +1,23 @@ +package wiki.hi.hiwikiserver.persistence.user.mapper + +import wiki.hi.hiwikiserver.core.user.domain.User +import wiki.hi.hiwikiserver.persistence.GenericMapper +import wiki.hi.hiwikiserver.persistence.user.entity.UserJpaEntity + +class UserMapper : GenericMapper { + override fun toDomain(entity: UserJpaEntity): User { + TODO("ThumbsUpsId과 contributeId 때문에 추후에 개발") + } + + override fun toEntity(domain: User): UserJpaEntity { + + return UserJpaEntity( + id = domain.id, + email = domain.email, + nickName = domain.nickName, + authority = domain.authority, + schoolId = domain.schoolId + ) + } + +} \ No newline at end of file diff --git a/high-internal-api-server/src/main/resources/infrastructure.yml b/high-internal-api-server/src/main/resources/infrastructure.yml new file mode 100644 index 0000000..862cab0 --- /dev/null +++ b/high-internal-api-server/src/main/resources/infrastructure.yml @@ -0,0 +1,20 @@ +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: ${DB_URL} + username: ${DB_USERNAME} + password: ${DB_PASSWORD} + + logging: + level: + org: + hibernate: + SQL: debug + + jpa: + database: mysql + + database-platform: org.hibernate.dialect.MySQL5InnoDBDialect + generate-ddl: true + hibernate: + ddl-auto: update diff --git a/high-internal-api-server/src/main/resources/persistence.yml b/high-internal-api-server/src/main/resources/persistence.yml deleted file mode 100644 index 8b13789..0000000 --- a/high-internal-api-server/src/main/resources/persistence.yml +++ /dev/null @@ -1 +0,0 @@ - From b41e1be16f33f5e8f04678adaf0aa87077261eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=B0=BD=EB=B3=B4?= <101192100+jacobhboy@users.noreply.github.com> Date: Tue, 27 Jun 2023 23:10:11 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Refactor[#4]:=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=9E=AC=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 5 ----- .../build.gradle.kts | 14 ++++++++----- .../hiwikiserver/HiwikiServerApplication.kt | 0 .../src/main/resources/application.yml | 6 ++++++ .../HiwikiServerApplicationTests.kt | 7 +++---- .../build.gradle.kts | 3 ++- .../hiwikiserver/persistence/GenericMapper.kt | 0 .../persistence/user/entity/UserJpaEntity.kt | 0 .../persistence/user/mapper/UserMapper.kt | 0 .../src/main/resources/persistence.yml | 0 .../test/kotlin/wiki/hi/hiwikiserver/.gitkeep | 0 high-presentation/build.gradle.kts | 20 +++++++++++++++++++ .../main/kotlin/wiki/hi/hiwikiserver/.gitkeep | 0 .../src/main/resources/presentation.yml | 0 .../test/kotlin/wiki/hi/hiwikiserver/.gitkeep | 0 settings.gradle.kts | 5 +++-- 16 files changed, 43 insertions(+), 17 deletions(-) delete mode 100644 high-api-server/src/main/resources/application.yml rename {high-api-server => high-infrastructure}/build.gradle.kts (75%) rename {high-api-server => high-infrastructure}/src/main/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplication.kt (100%) create mode 100644 high-infrastructure/src/main/resources/application.yml rename {high-api-server => high-infrastructure}/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt (69%) rename {high-internal-api-server => high-persistence}/build.gradle.kts (94%) rename {high-internal-api-server => high-persistence}/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt (100%) rename {high-internal-api-server => high-persistence}/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt (100%) rename {high-internal-api-server => high-persistence}/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt (100%) rename high-internal-api-server/src/main/resources/infrastructure.yml => high-persistence/src/main/resources/persistence.yml (100%) rename {high-internal-api-server => high-persistence}/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep (100%) create mode 100644 high-presentation/build.gradle.kts create mode 100644 high-presentation/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep create mode 100644 high-presentation/src/main/resources/presentation.yml create mode 100644 high-presentation/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep diff --git a/high-api-server/src/main/resources/application.yml b/high-api-server/src/main/resources/application.yml deleted file mode 100644 index 407f05d..0000000 --- a/high-api-server/src/main/resources/application.yml +++ /dev/null @@ -1,5 +0,0 @@ -spring: - config: - import: - - core.yml - - infrastructure.yml \ No newline at end of file diff --git a/high-api-server/build.gradle.kts b/high-infrastructure/build.gradle.kts similarity index 75% rename from high-api-server/build.gradle.kts rename to high-infrastructure/build.gradle.kts index 5157a3a..777ad0c 100644 --- a/high-api-server/build.gradle.kts +++ b/high-infrastructure/build.gradle.kts @@ -7,11 +7,9 @@ plugins { dependencies { // impl project + implementation(project(":high-persistence")) implementation(project(":high-core")) - runtimeOnly(project(":high-internal-api-server")) - - // web - implementation(Dependencies.SPRING_WEB) + implementation(project(":high-presentation")) // validation implementation(Dependencies.SPRING_VALIDATION) @@ -33,9 +31,15 @@ dependencies { // aop implementation(Dependencies.AOP) +} +kapt { + arguments { + arg("mapstruct.defaultComponentModel", "spring") + arg("mapstruct.unmappedTargetPolicy", "ignore") + } } -tasks.getByName("bootJar") { +tasks.getByName("jar") { enabled = false } \ No newline at end of file diff --git a/high-api-server/src/main/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplication.kt b/high-infrastructure/src/main/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplication.kt similarity index 100% rename from high-api-server/src/main/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplication.kt rename to high-infrastructure/src/main/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplication.kt diff --git a/high-infrastructure/src/main/resources/application.yml b/high-infrastructure/src/main/resources/application.yml new file mode 100644 index 0000000..f17bba2 --- /dev/null +++ b/high-infrastructure/src/main/resources/application.yml @@ -0,0 +1,6 @@ +spring: + config: + import: + - core.yml + - presentation.yml + - persistence.yml \ No newline at end of file diff --git a/high-api-server/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt b/high-infrastructure/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt similarity index 69% rename from high-api-server/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt rename to high-infrastructure/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt index 534eebc..0cbf402 100644 --- a/high-api-server/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt +++ b/high-infrastructure/src/test/kotlin/wiki/hi/hiwikiserver/HiwikiServerApplicationTests.kt @@ -1,13 +1,12 @@ package wiki.hi.hiwikiserver -import org.junit.jupiter.api.Test import org.springframework.boot.test.context.SpringBootTest @SpringBootTest class HiwikiServerApplicationTests { - @Test - fun contextLoads() { - } +// @Test +// fun contextLoads() { +// } } diff --git a/high-internal-api-server/build.gradle.kts b/high-persistence/build.gradle.kts similarity index 94% rename from high-internal-api-server/build.gradle.kts rename to high-persistence/build.gradle.kts index ae37ba2..5c73236 100644 --- a/high-internal-api-server/build.gradle.kts +++ b/high-persistence/build.gradle.kts @@ -5,7 +5,7 @@ plugins { dependencies { // impl project - compileOnly(project(":high-core")) + implementation(project(":high-core")) // database implementation(Dependencies.SPRING_DATA_JPA) @@ -16,6 +16,7 @@ dependencies { // querydsl implementation(Dependencies.QUERYDSL) kapt(Dependencies.QUERYDSL_PROCESSOR) + } allOpen { diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt b/high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt similarity index 100% rename from high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt rename to high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/GenericMapper.kt diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt b/high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt similarity index 100% rename from high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt rename to high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/entity/UserJpaEntity.kt diff --git a/high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt b/high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt similarity index 100% rename from high-internal-api-server/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt rename to high-persistence/src/main/kotlin/wiki/hi/hiwikiserver/persistence/user/mapper/UserMapper.kt diff --git a/high-internal-api-server/src/main/resources/infrastructure.yml b/high-persistence/src/main/resources/persistence.yml similarity index 100% rename from high-internal-api-server/src/main/resources/infrastructure.yml rename to high-persistence/src/main/resources/persistence.yml diff --git a/high-internal-api-server/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep b/high-persistence/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep similarity index 100% rename from high-internal-api-server/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep rename to high-persistence/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep diff --git a/high-presentation/build.gradle.kts b/high-presentation/build.gradle.kts new file mode 100644 index 0000000..ab599d8 --- /dev/null +++ b/high-presentation/build.gradle.kts @@ -0,0 +1,20 @@ +plugins { + id("org.springframework.boot") version PluginVersions.SPRING_BOOT_VERSION + id("io.spring.dependency-management") version PluginVersions.DEPENDENCY_MANAGER_VERSION + kotlin("plugin.spring") version PluginVersions.SPRING_PLUGIN_VERSION +} + +dependencies { + // impl project + implementation(project(":high-core")) + + // web + implementation(Dependencies.SPRING_WEB) + + // validation + implementation(Dependencies.SPRING_VALIDATION) +} + +tasks.getByName("bootJar") { + enabled = false +} \ No newline at end of file diff --git a/high-presentation/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep b/high-presentation/src/main/kotlin/wiki/hi/hiwikiserver/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/high-presentation/src/main/resources/presentation.yml b/high-presentation/src/main/resources/presentation.yml new file mode 100644 index 0000000..e69de29 diff --git a/high-presentation/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep b/high-presentation/src/test/kotlin/wiki/hi/hiwikiserver/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/settings.gradle.kts b/settings.gradle.kts index 25fa0ea..3b1109d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,6 @@ rootProject.name = "hiwiki-server" include("high-core") -include("high-internal-api-server") -include("high-api-server") \ No newline at end of file +include("high-presentation") +include("high-persistence") +include("high-infrastructure") \ No newline at end of file