Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/chore.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Chore Template
description: 기타 사항 추가 시 쓰는 템플릿
title: "🚀 [Chore] "
labels: ["🚀chore"]
labels: [ "🚀chore" ]

body:
- type: input
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/docs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Docs Template
description: 문서 추가 또는 수정을 위한 템플릿
title: "📖 [Docs] "
labels: ["📖docs"]
labels: [ "📖docs" ]

body:
- type: input
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Feature Template
description: 기능 추가할 때 쓰는 템플릿
title: "✨ [Feat] "
labels: ["✨feature"]
labels: [ "✨feature" ]

body:
- type: dropdown
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/fix.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Fix template
description: 무언가를 수정할 때 쓰는 템플릿
title: "🐛 [Fix] "
labels: ["🐛bug"]
labels: [ "🐛bug" ]

body:
- type: dropdown
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/refactor.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Refactor Template
description: 리팩토링할 때 쓰는 템플릿
title: "♻️ [Refactor] "
labels: ["♻️refactor"]
labels: [ "♻️refactor" ]

body:
- type: dropdown
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/setting.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Setting Template
description: 환경 설정, 의존성 관리 등 세팅 관련 작업을 위한 템플릿
title: "⚙️ [Setting] "
labels: ["⚙️setting"]
labels: [ "⚙️setting" ]

body:
- type: input
Expand Down
6 changes: 6 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
## Related issue 🛠

[//]: # (해당하는 이슈 번호 달아주기)

어떤 변경사항이 있었나요?

- [ ] 🐛 BugFix Something isn't working
- [ ] 💻 CrossBrowsing Browser compatibility
- [ ] 🌏 Deploy Deploy
Expand All @@ -13,15 +15,19 @@
- [ ] ✅ Test Test related

## Work Description ✏️

[//]: # (작업 내용 간단 소개)
작업 내용을 작성해주세요.

- 작업 내용

## Uncompleted Tasks 😅

[//]: # (없다면 N/A)

- [ ] Task1

## To Reviewers 📢

[//]: # (reviewer가 알면 좋은 내용들)
리뷰어가 알면 좋은 내용을 작성해주세요.
58 changes: 29 additions & 29 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.6'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.asciidoctor.jvm.convert' version '4.0.5'
id 'java'
id 'org.springframework.boot' version '3.5.6'
id 'io.spring.dependency-management' version '1.1.7'
id 'org.asciidoctor.jvm.convert' version '4.0.5'
}

group = 'com.todaysound'
version = '0.0.1-SNAPSHOT'
version = '0.0.1-SNAPSHOT'
description = 'Demo project for Spring Boot'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
asciidoctorExt
compileOnly {
extendsFrom annotationProcessor
}
asciidoctorExt
}

repositories {
mavenCentral()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'

// TestContainer
Expand All @@ -43,24 +43,24 @@ dependencies {
// 구조화된 JSON 로깅
implementation 'net.logstash.logback:logstash-logback-encoder:8.0'

compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'


// RestDocs
asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'

// QueryDsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// QueryDsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// Firebase Admin SDK
implementation 'com.google.firebase:firebase-admin:9.2.0'
Expand All @@ -77,7 +77,7 @@ dependencies {
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}

ext { // 전역 변수
Expand Down
4 changes: 4 additions & 0 deletions src/docs/asciidoc/api/alarm/alarm.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[[alarm-list]]
=== 알림 목록 조회

operation::alarm-query-controller-test/알림_목록을_조회합니다[snippets='http-request,query-parameters,http-response,response-fields']
9 changes: 9 additions & 0 deletions src/docs/asciidoc/api/feed/feed.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[[feed-list]]
=== 피드 목록 조회

operation::feed-query-controller-test/피드_목록을_조회합니다[snippets='http-request,query-parameters,http-response,response-fields']

[[home-feed-list]]
=== 홈 피드 목록 조회

operation::feed-query-controller-test/홈_피드_목록을_조회합니다[snippets='http-request,http-response,response-fields']
24 changes: 22 additions & 2 deletions src/docs/asciidoc/api/subscription/subscription.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,24 @@
[[subscription-create]]
=== 구독 목록 등록
=== 구독 등록

operation::subscription-controller-test/신규_구독을_등록한다[snippets='http-request,request-fields,http-response,response-fields']
operation::subscription-controller-test/신규_구독을_등록한다[snippets='http-request,request-fields,http-response,response-fields']

[[subscription-list]]
=== 구독 목록 조회

operation::subscription-controller-test/구독_목록_조회[snippets='http-request,query-parameters,http-response,response-fields']

[[subscription-update]]
=== 구독 수정

operation::subscription-controller-test/구독을_수정한다[snippets='http-request,path-parameters,request-fields,http-response']

[[subscription-delete]]
=== 구독 삭제

operation::subscription-controller-test/구독을_삭제한다[snippets='http-request,path-parameters,http-response,response-fields']

[[keyword-list]]
=== 키워드 목록 조회

operation::subscription-controller-test/키워드_목록을_조회한다[snippets='http-request,http-response,response-fields']
4 changes: 4 additions & 0 deletions src/docs/asciidoc/api/summary/summary.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[[summary-delete]]
=== 요약 삭제

operation::summary-controller-test/요약을_삭제한다[snippets='http-request,path-parameters,http-response,response-fields']
4 changes: 4 additions & 0 deletions src/docs/asciidoc/api/url/url.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[[url-list]]
=== URL 목록 조회

operation::url-query-controller-test/url목록을_조회한다[snippets='http-request,http-response,response-fields']

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

operation 경로에 오타가 있어 문서 생성이 실패할 수 있습니다. UrlQueryControllerTest의 테스트 메소드 이름은 URL목록을_조회한다이므로, 스니펫이 생성되는 디렉토리 이름도 이를 따릅니다. 문서가 정상적으로 생성되려면 경로를 url-query-controller-test/URL목록을_조회한다로 수정해야 합니다.

operation::url-query-controller-test/URL목록을_조회한다[snippets='http-request,http-response,response-fields']

27 changes: 26 additions & 1 deletion src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,29 @@ endif::[]
[[Subscription-API]]
== Subscription API

include::api/subscription/subscription.adoc[]
include::api/subscription/subscription.adoc[]

[[Feed-API]]
== Feed API

include::api/feed/feed.adoc[]

[[Alarm-API]]
== Alarm API

include::api/alarm/alarm.adoc[]

[[Url-API]]
== URL API

include::api/url/url.adoc[]

[[Summary-API]]
== Summary API

include::api/summary/summary.adoc[]

[[User-API]]
== User API

include::api/user/user.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
@SpringBootApplication
public class TodaysoundServerApplication {

public static void main(String[] args) {
SpringApplication.run(TodaysoundServerApplication.class, args);
}
public static void main(String[] args) {
SpringApplication.run(TodaysoundServerApplication.class, args);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import java.util.List;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestHeader;

import java.util.List;

@Tag(name = "Alarm", description = "알람 조회 및 읽음 처리 API")
public interface AlarmApi {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@


import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
package com.todaysound.todaysound_server.domain.alarm.controller;

import java.util.List;

import org.springframework.web.bind.annotation.*;
import com.todaysound.todaysound_server.domain.alarm.dto.response.RecentAlarmResponse;
import com.todaysound.todaysound_server.domain.alarm.service.AlarmQueryService;
import com.todaysound.todaysound_server.domain.summary.service.SummaryCommandService;
import com.todaysound.todaysound_server.global.dto.PageRequest;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/alarms")
@RequiredArgsConstructor
public class AlarmQueryController implements AlarmApi {

private final AlarmQueryService alarmQueryService;
private final SummaryCommandService summaryCommandService;

/**
* 최근 알림 목록 조회
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package com.todaysound.todaysound_server.domain.alarm.controller;

import com.todaysound.todaysound_server.domain.summary.entity.Summary;
import com.todaysound.todaysound_server.domain.summary.repository.SummaryRepository;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.todaysound.todaysound_server.domain.subscription.entity.Subscription;
import com.todaysound.todaysound_server.domain.subscription.repository.SubscriptionRepository;
import com.todaysound.todaysound_server.domain.summary.entity.Summary;
import com.todaysound.todaysound_server.domain.summary.repository.SummaryRepository;
import com.todaysound.todaysound_server.domain.user.entity.User;
import com.todaysound.todaysound_server.global.application.FCMService;
import com.todaysound.todaysound_server.global.exception.BaseException;
import com.todaysound.todaysound_server.global.exception.CommonErrorCode;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
Expand All @@ -17,18 +17,9 @@

/**
* 크롤러용 알림 생성 엔드포인트
*
* POST /internal/alerts
* {
* "user_id": 10,
* "subscription_id": 1,
* "site_post_id": "12345",
* "title": "게시글 제목",
* "url": "https://...",
* "content_raw": "...원문...",
* "content_summary": "...요약...",
* "keyword_matched": true
* }
* <p>
* POST /internal/alerts { "user_id": 10, "subscription_id": 1, "site_post_id": "12345", "title": "게시글 제목", "url":
* "https://...", "content_raw": "...원문...", "content_summary": "...요약...", "keyword_matched": true }
*/
@RestController
@RequestMapping("/internal")
Expand All @@ -54,7 +45,7 @@ public void createAlert(@RequestBody InternalAlertRequest request) {
User user = subscription.getUser();
String prefix;

if(request.keywordMatched == true) {
if (request.keywordMatched == true) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

boolean 타입의 변수를 true와 명시적으로 비교할 필요는 없습니다. if (request.keywordMatched)와 같이 사용하여 코드를 더 간결하게 만들 수 있습니다.

Suggested change
if (request.keywordMatched == true) {
if (request.keywordMatched) {

prefix = "[" + request.siteAlias + "]";
} else {
prefix = "[긴급/" + request.siteAlias + "]";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

import java.util.List;

public record SummaryReadRequestDto(List<Long> summaryIds) {
public record SummaryReadRequest(List<Long> summaryIds) {

}
Loading