diff --git a/.github/workflows/ci_gradle.yml b/.github/workflows/ci_gradle.yml index 1f351ccf..dda82537 100644 --- a/.github/workflows/ci_gradle.yml +++ b/.github/workflows/ci_gradle.yml @@ -25,7 +25,7 @@ jobs: echo " profiles:" >> application.yml echo " group:" >> application.yml echo " "local": "db, s3, secret"" >> application.yml - echo " "prod": "db, s3"" >> application.yml + echo " "prod": "db, s3, redis"" >> application.yml echo " default: prod" >> application.yml echo " servlet:" >> application.yml @@ -49,8 +49,6 @@ jobs: spring.jwt.secret: ${{ secrets.JWT_SECRET }} spring.jwt.token.access-expiration-time: ${{ secrets.JWT_ACCESS_EXPIRATION_TIME }} spring.jwt.token.refresh-expiration-time: ${{ secrets.JWT_REFRESH_EXPIRATION_TIME }} - spring.data.redis.host: ${{ secrets.REDIS_HOST }} - spring.data.redis.port: ${{ secrets.REDIS_PORT }} mail.smtp.port: ${{ secrets.EMAIL_PORT }} AdminMail.id: ${{ secrets.EMAIL_ID }} AdminMail.password: ${{ secrets.EMAIL_PASSWORD }} @@ -78,6 +76,14 @@ jobs: cloud.aws.credentials.accessKey: ${{ secrets.S3_ACCESS_KEY }} cloud.aws.credentials.secretKey: ${{ secrets.S3_SECRET_KEY }} + - name: 6) Set application-redis.yml + uses: microsoft/variable-substitution@v1 + with: + files: ./core/core-infra-redis/src/main/resources/application-redis.yml + env: + spring.data.redis.host: ${{ secrets.REDIS_HOST }} + spring.data.redis.port: ${{ secrets.REDIS_PORT }} + - name: Grant execute permission for gradlew and build run: | chmod +x ./gradlew diff --git a/api/build.gradle b/api/build.gradle index 888612cc..73f1a778 100644 --- a/api/build.gradle +++ b/api/build.gradle @@ -3,6 +3,7 @@ dependencies { implementation project(':core:core-domain'); implementation project(':core:core-infra-db'); implementation project(':core:core-infra-s3'); + implementation project(':core:core-infra-redis'); // Core implementation 'org.springframework.boot:spring-boot-starter-data-jpa' @@ -23,10 +24,6 @@ dependencies { implementation 'io.jsonwebtoken:jjwt-impl:0.12.3' implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3' - // Redis - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '3.2.0' - implementation 'org.springframework.session:spring-session-data-redis:3.1.1' - // Swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.4' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-api:2.0.4' @@ -35,7 +32,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' // email - implementation 'com.sun.mail:jakarta.mail:2.0.1' + implementation 'org.springframework.boot:spring-boot-starter-mail' // FCM implementation 'com.google.firebase:firebase-admin:9.1.1' diff --git a/api/out/production/resources/application-local.yml b/api/out/production/resources/application-local.yml new file mode 100644 index 00000000..fc0720fc --- /dev/null +++ b/api/out/production/resources/application-local.yml @@ -0,0 +1,14 @@ +server: + port: 8080 + +spring: + jwt: + secret: EENY5W0eegTf1naQB2eDeyCLl5kRS2b8xa5c4qLdS0hmVjtbvo8tOyhPMcAmtPuQ + token: + access-expiration-time: 999999999 + refresh-expiration-time: 999999999 + + data: + redis: + host: localhost + port: 6379 diff --git a/api/out/production/resources/application-prod.yml b/api/out/production/resources/application-prod.yml new file mode 100644 index 00000000..8dcd5ffd --- /dev/null +++ b/api/out/production/resources/application-prod.yml @@ -0,0 +1,37 @@ +server: + port: 8080 + +spring: + jwt: + secret: ${JWT_SECRET} + token: + access-expiration-time: ${JWT_ACCESS_EXPIRATION_TIME} + refresh-expiration-time: ${JWT_REFRESH_EXPIRATION_TIME} + + data: + redis: + host: ${REDIS_HOST} + port: ${REDIS_PORT} + +mail: + smtp: + port: ${EMAIL_PORT} + auth: true + starttls: + required: true + enable: true + socketFactory: + class: javax.net.ssl.SSLSocketFactory + fallback: false + +AdminMail: + id: ${EMAIL_ID} + password: ${EMAIL_PASSWORD} + +firebase: + fcmUrl: ${FIREBASE_URL} + firebaseConfigPath: ${FIREBASE_PATH} + scope: https://www.googleapis.com/auth/cloud-platform + +PORT_ONE_KEY: ${PORT_ONE_KEY} +PORT_ONE_SECRET: ${PORT_ONE_SECRET} diff --git a/api/out/production/resources/application.yml b/api/out/production/resources/application.yml new file mode 100644 index 00000000..0a6b6276 --- /dev/null +++ b/api/out/production/resources/application.yml @@ -0,0 +1,14 @@ +server: + port: 8080 + +spring: + profiles: + group: + "local": "db, s3, secret" + "prod": "db, s3" + default: local + + servlet: + multipart: + max-file-size: 20MB + max-request-size: 20MB diff --git a/api/out/production/resources/templates/payment.html b/api/out/production/resources/templates/payment.html new file mode 100644 index 00000000..23407b7b --- /dev/null +++ b/api/out/production/resources/templates/payment.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + Sample Payment + + + + + diff --git a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLoginFilter.java b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLoginFilter.java index f2344fe0..c4241ec9 100644 --- a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLoginFilter.java +++ b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLoginFilter.java @@ -19,10 +19,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.sponus.coredomain.domain.common.ApiResponse; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.auth.jwt.dto.JwtPair; import com.sponus.sponusbe.auth.jwt.util.HttpResponseUtil; import com.sponus.sponusbe.auth.jwt.util.JwtUtil; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; import com.sponus.sponusbe.auth.user.CustomUserDetails; import jakarta.servlet.FilterChain; diff --git a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLogoutHandler.java b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLogoutHandler.java index 3a6d3177..7c4bfcb2 100644 --- a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLogoutHandler.java +++ b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/CustomLogoutHandler.java @@ -5,10 +5,10 @@ import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.logout.LogoutHandler; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.auth.jwt.exception.SecurityCustomException; import com.sponus.sponusbe.auth.jwt.exception.SecurityErrorCode; import com.sponus.sponusbe.auth.jwt.util.JwtUtil; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; import io.jsonwebtoken.ExpiredJwtException; import jakarta.servlet.http.HttpServletRequest; diff --git a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/JwtAuthenticationFilter.java b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/JwtAuthenticationFilter.java index 27207e44..76deeb75 100644 --- a/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/JwtAuthenticationFilter.java +++ b/api/src/main/java/com/sponus/sponusbe/auth/jwt/filter/JwtAuthenticationFilter.java @@ -9,9 +9,9 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.filter.OncePerRequestFilter; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.auth.jwt.exception.SecurityCustomException; import com.sponus.sponusbe.auth.jwt.util.JwtUtil; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; import com.sponus.sponusbe.auth.user.CustomUserDetails; import io.jsonwebtoken.ExpiredJwtException; diff --git a/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/JwtUtil.java b/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/JwtUtil.java index 1620f86b..7e9325ed 100644 --- a/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/JwtUtil.java +++ b/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/JwtUtil.java @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.auth.jwt.dto.JwtPair; import com.sponus.sponusbe.auth.jwt.exception.SecurityCustomException; import com.sponus.sponusbe.auth.jwt.exception.SecurityErrorCode; diff --git a/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementQueryService.java b/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementQueryService.java index 376e1fc9..6801f204 100644 --- a/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementQueryService.java +++ b/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementQueryService.java @@ -12,7 +12,7 @@ import com.sponus.coredomain.domain.announcement.enums.AnnouncementType; import com.sponus.coredomain.domain.announcement.repository.AnnouncementRepository; import com.sponus.coredomain.domain.organization.Organization; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementSummaryResponse; import lombok.RequiredArgsConstructor; diff --git a/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java b/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java index 30af46e0..1fc49c21 100644 --- a/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java +++ b/api/src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java @@ -10,14 +10,14 @@ import com.sponus.coredomain.domain.announcement.Announcement; import com.sponus.coredomain.domain.announcement.AnnouncementImage; -import com.sponus.coredomain.domain.announcement.AnnouncementView; import com.sponus.coredomain.domain.announcement.enums.AnnouncementStatus; import com.sponus.coredomain.domain.announcement.repository.AnnouncementRepository; -import com.sponus.coredomain.domain.announcement.repository.AnnouncementViewRepository; import com.sponus.coredomain.domain.organization.Organization; import com.sponus.coredomain.domain.propose.repository.ProposeRepository; +import com.sponus.coreinfraredis.entity.AnnouncementView; +import com.sponus.coreinfraredis.repository.AnnouncementViewRepository; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.coreinfras3.S3Util; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; import com.sponus.sponusbe.domain.announcement.dto.request.AnnouncementCreateRequest; import com.sponus.sponusbe.domain.announcement.dto.request.AnnouncementUpdateRequest; import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementCreateResponse; diff --git a/api/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java b/api/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java index ff10ff87..009db64f 100644 --- a/api/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java +++ b/api/src/main/java/com/sponus/sponusbe/domain/notification/service/FirebaseService.java @@ -17,7 +17,7 @@ import com.sponus.coredomain.domain.organization.Organization; import com.sponus.coredomain.domain.propose.Propose; import com.sponus.coredomain.domain.report.Report; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.domain.notification.dto.request.FcmMessage; import lombok.RequiredArgsConstructor; diff --git a/api/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeQueryService.java b/api/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeQueryService.java index 631521b4..fc7086c6 100644 --- a/api/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeQueryService.java +++ b/api/src/main/java/com/sponus/sponusbe/domain/propose/service/ProposeQueryService.java @@ -6,7 +6,7 @@ import org.springframework.transaction.annotation.Transactional; import com.sponus.coredomain.domain.organization.Organization; -import com.sponus.coredomain.domain.propose.repository.ProposeCustomRepository; +import com.sponus.coreinfradb.propose.ProposeCustomRepository; import com.sponus.sponusbe.domain.propose.dto.response.DateGroupedProposeResponse; import com.sponus.sponusbe.domain.propose.dto.response.ProposeSummaryGetResponse; diff --git a/api/src/main/java/com/sponus/sponusbe/global/config/SecurityConfig.java b/api/src/main/java/com/sponus/sponusbe/global/config/SecurityConfig.java index c0c7c0df..5cab4e7d 100644 --- a/api/src/main/java/com/sponus/sponusbe/global/config/SecurityConfig.java +++ b/api/src/main/java/com/sponus/sponusbe/global/config/SecurityConfig.java @@ -16,6 +16,7 @@ import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import com.sponus.coreinfraredis.util.RedisUtil; import com.sponus.sponusbe.auth.jwt.exception.JwtAccessDeniedHandler; import com.sponus.sponusbe.auth.jwt.exception.JwtAuthenticationEntryPoint; import com.sponus.sponusbe.auth.jwt.filter.CustomLoginFilter; @@ -24,7 +25,6 @@ import com.sponus.sponusbe.auth.jwt.filter.JwtExceptionFilter; import com.sponus.sponusbe.auth.jwt.util.HttpResponseUtil; import com.sponus.sponusbe.auth.jwt.util.JwtUtil; -import com.sponus.sponusbe.auth.jwt.util.RedisUtil; import lombok.RequiredArgsConstructor; diff --git a/api/src/main/resources/application-prod.yml b/api/src/main/resources/application-prod.yml index 8dcd5ffd..a0da6eef 100644 --- a/api/src/main/resources/application-prod.yml +++ b/api/src/main/resources/application-prod.yml @@ -8,11 +8,6 @@ spring: access-expiration-time: ${JWT_ACCESS_EXPIRATION_TIME} refresh-expiration-time: ${JWT_REFRESH_EXPIRATION_TIME} - data: - redis: - host: ${REDIS_HOST} - port: ${REDIS_PORT} - mail: smtp: port: ${EMAIL_PORT} diff --git a/api/src/main/resources/application.yml b/api/src/main/resources/application.yml index 0a6b6276..91850ab6 100644 --- a/api/src/main/resources/application.yml +++ b/api/src/main/resources/application.yml @@ -5,7 +5,7 @@ spring: profiles: group: "local": "db, s3, secret" - "prod": "db, s3" + "prod": "db, s3, redis" default: local servlet: diff --git a/core/core-domain/build.gradle b/core/core-domain/build.gradle index 2c3a4816..6f912178 100644 --- a/core/core-domain/build.gradle +++ b/core/core-domain/build.gradle @@ -1,10 +1,6 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - // Redis - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '3.2.0' - implementation 'org.springframework.session:spring-session-data-redis:3.1.1' - //querydsl implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" diff --git a/core/core-domain/src/main/java/com/sponus/CoreDomainConfig.java b/core/core-domain/src/main/java/com/sponus/CoreDomainConfig.java index b642c494..8589e7bd 100644 --- a/core/core-domain/src/main/java/com/sponus/CoreDomainConfig.java +++ b/core/core-domain/src/main/java/com/sponus/CoreDomainConfig.java @@ -4,14 +4,12 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableTransactionManagement @EntityScan("com.sponus.coredomain") @EnableJpaRepositories("com.sponus.coredomain") -@EnableRedisRepositories("com.sponus.coredomain") @EnableJpaAuditing public class CoreDomainConfig { } diff --git a/core/core-infra-db/build.gradle b/core/core-infra-db/build.gradle index 4540b6ec..f88a42bc 100644 --- a/core/core-infra-db/build.gradle +++ b/core/core-infra-db/build.gradle @@ -1,7 +1,16 @@ dependencies { + + implementation project(':core:core-domain'); + // Database runtimeOnly 'org.postgresql:postgresql' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + + //querydsl + implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' + annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" + annotationProcessor "jakarta.annotation:jakarta.annotation-api" + annotationProcessor "jakarta.persistence:jakarta.persistence-api" } bootJar { enabled = false } diff --git a/core/core-infra-db/out/production/resources/application-db.yml b/core/core-infra-db/out/production/resources/application-db.yml new file mode 100644 index 00000000..e126dc4f --- /dev/null +++ b/core/core-infra-db/out/production/resources/application-db.yml @@ -0,0 +1,41 @@ +spring: + config: + activate: + on-profile: local + datasource: + driver-class-name: org.postgresql.Driver + url: jdbc:postgresql://localhost:5432/postgres + username: postgres + password: postgres! + jpa: + database: postgresql + hibernate: + ddl-auto: create-drop + open-in-view: false + show-sql: true + generate-ddl: true + defer-datasource-initialization: true + + sql: + init: + mode: always + +--- + +spring: + config: + activate: + on-profile: prod + datasource: + driver-class-name: org.postgresql.Driver + url: ${DB_URL} + username: ${DB_USERNAME} + password: ${DB_PW} + + jpa: + database: postgresql + hibernate: + ddl-auto: update + open-in-view: false + show-sql: true + generate-ddl: true diff --git a/core/core-infra-db/out/production/resources/data.sql b/core/core-infra-db/out/production/resources/data.sql new file mode 100644 index 00000000..ccb5a27b --- /dev/null +++ b/core/core-infra-db/out/production/resources/data.sql @@ -0,0 +1,62 @@ +INSERT INTO organization (organization_name, + organization_email, + organization_password, + organization_location, + organization_type, + suborganization_type, + manager_name, + manager_position, + manager_email, + manager_phone, + manager_available_day, + manager_available_hour, + manager_contact_preference, + organization_status, + organization_image_url) +VALUES ('팀 스포너스', + 'sponus@gmail.com', + '$2a$10$tzrzG/BSFrrye7Kbm4qPYuP6jaQcj5TX5ER1.X/THqkudiSjtEmWW', + '서울특별시 강남구 테헤란로 427', + 'STUDENT', + 'STUDENT_COUNCIL', + '이가은', + 'Project Manager', + 'test@gmail.com', + '01012345678', + '월-금', + '09:00-18:00', + 'EMAIL', + 'ACTIVE', + 'https://sponus.s3.ap-northeast-2.amazonaws.com/images/sponus.png'); + +INSERT INTO announcement (announcement_title, + announcement_type, + announcement_category, + announcement_content, + announcement_status, + view_count, + organization_id, + created_at, + updated_at) +VALUES ('무신사 스폰서십', + 'SPONSORSHIP', + 'MARKETING', + '무신사 스폰서십을 진행할 대학교 학생회를 모집합니다.', + 'OPENED', + 0, + 1, + '2024-02-12 15:29:19.000000', + '2024-02-12 15:29:19.000000'); + +INSERT INTO tag (organization_id, tag_name) +VALUES (1, '#무신사'), + (1, '#스폰서쉽'); + + + +INSERT INTO announcement_image (image_name, + image_url, + announcement_id) +VALUES ('무신사 스폰서십', + 'https://sponus.s3.ap-northeast-2.amazonaws.com/images/sponus.png', + 1); diff --git a/core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepository.java b/core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepository.java similarity index 82% rename from core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepository.java rename to core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepository.java index 61e9ba37..68262a2e 100644 --- a/core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepository.java +++ b/core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepository.java @@ -1,4 +1,4 @@ -package com.sponus.coredomain.domain.propose.repository; +package com.sponus.coreinfradb.propose; import java.util.List; diff --git a/core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepositoryImpl.java b/core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepositoryImpl.java similarity index 96% rename from core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepositoryImpl.java rename to core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepositoryImpl.java index 93b84c68..b8079de9 100644 --- a/core/core-domain/src/main/java/com/sponus/coredomain/domain/propose/repository/ProposeCustomRepositoryImpl.java +++ b/core/core-infra-db/src/main/java/com/sponus/coreinfradb/propose/ProposeCustomRepositoryImpl.java @@ -1,4 +1,4 @@ -package com.sponus.coredomain.domain.propose.repository; +package com.sponus.coreinfradb.propose; import java.util.List; diff --git a/core/core-infra-redis/build.gradle b/core/core-infra-redis/build.gradle new file mode 100644 index 00000000..ee614bbc --- /dev/null +++ b/core/core-infra-redis/build.gradle @@ -0,0 +1,7 @@ +dependencies { + // Redis + implementation 'org.springframework.boot:spring-boot-starter-data-redis' +} + +bootJar { enabled = false } +jar { enabled = true } diff --git a/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/CoreRedisConfig.java b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/CoreRedisConfig.java new file mode 100644 index 00000000..9c0286b8 --- /dev/null +++ b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/CoreRedisConfig.java @@ -0,0 +1,9 @@ +package com.sponus.coreinfraredis; + +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; + +@Configuration +@EnableRedisRepositories("com.sponus.coreinfraredis") +public class CoreRedisConfig { +} diff --git a/api/src/main/java/com/sponus/sponusbe/global/config/RedisConfig.java b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/config/RedisConfig.java similarity index 96% rename from api/src/main/java/com/sponus/sponusbe/global/config/RedisConfig.java rename to core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/config/RedisConfig.java index 534a6b4c..59931911 100644 --- a/api/src/main/java/com/sponus/sponusbe/global/config/RedisConfig.java +++ b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/config/RedisConfig.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.global.config; +package com.sponus.coreinfraredis.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; diff --git a/core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/AnnouncementView.java b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/entity/AnnouncementView.java similarity index 94% rename from core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/AnnouncementView.java rename to core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/entity/AnnouncementView.java index 98fb678c..4329966a 100644 --- a/core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/AnnouncementView.java +++ b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/entity/AnnouncementView.java @@ -1,4 +1,4 @@ -package com.sponus.coredomain.domain.announcement; +package com.sponus.coreinfraredis.entity; import java.time.Duration; import java.time.LocalDate; diff --git a/core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/repository/AnnouncementViewRepository.java b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/repository/AnnouncementViewRepository.java similarity index 55% rename from core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/repository/AnnouncementViewRepository.java rename to core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/repository/AnnouncementViewRepository.java index 480d2d65..3538334d 100644 --- a/core/core-domain/src/main/java/com/sponus/coredomain/domain/announcement/repository/AnnouncementViewRepository.java +++ b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/repository/AnnouncementViewRepository.java @@ -1,8 +1,8 @@ -package com.sponus.coredomain.domain.announcement.repository; +package com.sponus.coreinfraredis.repository; import org.springframework.data.repository.CrudRepository; -import com.sponus.coredomain.domain.announcement.AnnouncementView; +import com.sponus.coreinfraredis.entity.AnnouncementView; public interface AnnouncementViewRepository extends CrudRepository { diff --git a/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/RedisUtil.java b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/util/RedisUtil.java similarity index 97% rename from api/src/main/java/com/sponus/sponusbe/auth/jwt/util/RedisUtil.java rename to core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/util/RedisUtil.java index 6ec4899e..f22c3d65 100644 --- a/api/src/main/java/com/sponus/sponusbe/auth/jwt/util/RedisUtil.java +++ b/core/core-infra-redis/src/main/java/com/sponus/coreinfraredis/util/RedisUtil.java @@ -1,4 +1,4 @@ -package com.sponus.sponusbe.auth.jwt.util; +package com.sponus.coreinfraredis.util; import java.util.List; import java.util.Objects; diff --git a/core/core-infra-redis/src/main/resources/application-redis.yml b/core/core-infra-redis/src/main/resources/application-redis.yml new file mode 100644 index 00000000..15079fdb --- /dev/null +++ b/core/core-infra-redis/src/main/resources/application-redis.yml @@ -0,0 +1,5 @@ +spring: + data: + redis: + host: ${REDIS_HOST} + port: ${REDIS_PORT} diff --git a/core/core-infra-s3/out/production/resources/application-s3.yml b/core/core-infra-s3/out/production/resources/application-s3.yml new file mode 100644 index 00000000..4266c83d --- /dev/null +++ b/core/core-infra-s3/out/production/resources/application-s3.yml @@ -0,0 +1,13 @@ +# S3 +cloud: + aws: + s3: + bucket: ${BUCKET} + folder: images/ + stack: + auto: false + region: + static: ${REGION} + credentials: + accessKey: ${S3_ACCESS_KEY} + secretKey: ${S3_SECRET_KEY} diff --git a/settings.gradle b/settings.gradle index 17a97d04..4c44e610 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,3 +3,4 @@ include 'api' include 'core:core-domain' include 'core:core-infra-db' include 'core:core-infra-s3' +include 'core:core-infra-redis'