Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
c10eb58
feat: 다양한 도메인 및 서비스에 대한 기능 추가 및 수정 (#170)
jayn2u Jun 25, 2025
e80915c
fix: 리뷰v2 0601 수정사항 (#171)
JjungminLee Jun 26, 2025
60ca341
Merge pull request #175 from EAT-SSU/hotfix/deploy-fail
jayn2u Jun 26, 2025
aa890b4
Merge pull request #178 from EAT-SSU/feat/add-ai-rules
jayn2u Jun 27, 2025
1e37c69
feat: 테스트 코드 구조 개선 및 OAuthService 테스트 케이스 추가 (#177)
jayn2u Jun 29, 2025
b6f100f
feat: 금지된 닉네임 목록에 추가 항목 추가 (#179)
jayn2u Jun 29, 2025
5aa2d69
feat: Gemini 설정 및 스타일 가이드 문서 추가 (#181)
jayn2u Jun 30, 2025
b54c983
feat: Review 엔티티 필드 및 메서드 정리 (#180)
jayn2u Jun 30, 2025
f615842
feat: eatssu scheme에 따른 코드 재정렬 (#185)
JjungminLee Jul 1, 2025
b6a5e39
hotfix: 토큰 401에러 확인을 위한 토큰 시간 조정 핫픽스
JjungminLee Jul 1, 2025
2b2eeb6
hotfix: jwt 유효시간 원복
JjungminLee Jul 1, 2025
6faa045
feat: 250626 리뷰v2수정요청사항 (#189)
JjungminLee Jul 1, 2025
386a7c5
feat: 제휴지도250702수정 (#192)
JjungminLee Jul 4, 2025
616c3e2
fix: 만료 토큰 403 코드로 반환 (#193)
JjungminLee Jul 5, 2025
e1c9c83
fix: 시큐리티 필터에서도 슬랙 알림 보낼 수 있게 수정 (#195)
JjungminLee Jul 5, 2025
d3439b8
hotfix: 불필요한 로그 삭제 및 슬랙 알림 제거
JjungminLee Jul 6, 2025
013faae
feat: .env 파일 사용 (#196)
jayn2u Jul 12, 2025
187cc78
feat: dev 슬랙봇 알림 제거 (#205)
JjungminLee Jul 20, 2025
66fa2df
feat: 식단 추가 api에 FACULTY enum추가 (#206)
JjungminLee Jul 20, 2025
da21202
feat: 제휴지도 250710요청사항 (#207)
JjungminLee Jul 20, 2025
e0ac8b8
fix: Java Toolchain 설정 추가 (Java 17) (#198)
jayn2u Jul 20, 2025
1c47c23
hotfix: 토큰 재발급 시간 수정
JjungminLee Jul 21, 2025
1b15a34
feat: 토큰 만료시 401로 반환하게끔 수정
JjungminLee Jul 27, 2025
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
27 changes: 27 additions & 0 deletions .cursor/rules/eatssu-server-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
description:
globs:
alwaysApply: true
---
# Copilot instructions

- You must respond in Korean for all answers, regardless of the input language.
- Do not write any comments in code blocks, even if asked to do so.
- Do not use wildcard when importing libraries
- When you write reviews for pull request, specific review will very helpful for my team.
- Suggest based on logical reasons.

## Commenting Convention

- Comments should be written in a single line whenever possible.
- Each comment must include the author's name and the date.
- Use IntelliJ's default `FIX ME` comment format.
- Use this for parts of the code where there may be a potential issue but immediate exception handling is unnecessary.
- Also use this for parts that are not yet finalized due to unclear business requirements.

## Test Code Convention

- Test method names must be written in **English**.
- But if the codes is related to test, write the comment for "given, when, then".

Please follow these conventions when reviewing or suggesting changes to the code.
10 changes: 10 additions & 0 deletions .gemini/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
have_fun: true
code_review:
disable: false
comment_severity_threshold: MEDIUM
max_review_comments: -1
pull_request_opened:
help: false
summary: true
code_review: true
ignore_patterns: []
14 changes: 14 additions & 0 deletions .gemini/styleguide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
- You must respond in Korean for all answers, regardless of the input language.
- Do not write any comments in code blocks, even if asked to do so.
- Do not use wildcard when importing libraries
- When you write reviews for pull request, specific review will very helpful for my team.
- Suggest based on logical reasons.

- Comments should be written in a single line whenever possible.
- Each comment must include the author's name and the date.
- Use IntelliJ's default `FIX ME` comment format.
- Use this for parts of the code where there may be a potential issue but immediate exception handling is unnecessary.
- Also use this for parts that are not yet finalized due to unclear business requirements.

- Test method names must be written in **English**.
- But if the codes is related to test, write the comment for "given, when, then".
22 changes: 22 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copilot instructions

- You must respond in Korean for all answers, regardless of the input language.
- Do not write any comments in code blocks, even if asked to do so.
- Do not use wildcard when importing libraries
- When you write reviews for pull request, specific review will very helpful for my team.
- Suggest based on logical reasons.

## Commenting Convention

- Comments should be written in a single line whenever possible.
- Each comment must include the author's name and the date.
- Use IntelliJ's default `FIX ME` comment format.
- Use this for parts of the code where there may be a potential issue but immediate exception handling is unnecessary.
- Also use this for parts that are not yet finalized due to unclear business requirements.

## Test Code Convention

- Test method names must be written in **English**.
- But if the codes is related to test, write the comment for "given, when, then".

Please follow these conventions when reviewing or suggesting changes to the code.
13 changes: 2 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,5 @@ out/
### Docker Tar files ###
/eat-ssu.tar

### SDKMAN ###
.sdkmanrc

### Junie guideline ###
.junie

### Cursor guideline ###
eatssu-server-rule.mdc

### Copilot guildline ###
copilot-instructions.md
### env file ###
.env
22 changes: 22 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copilot instructions

- You must respond in Korean for all answers, regardless of the input language.
- Do not write any comments in code blocks, even if asked to do so.
- Do not use wildcard when importing libraries
- When you write reviews for pull request, specific review will very helpful for my team.
- Suggest based on logical reasons.

## Commenting Convention

- Comments should be written in a single line whenever possible.
- Each comment must include the author's name and the date.
- Use IntelliJ's default `FIX ME` comment format.
- Use this for parts of the code where there may be a potential issue but immediate exception handling is unnecessary.
- Also use this for parts that are not yet finalized due to unclear business requirements.

## Test Code Convention

- Test method names must be written in **English**.
- But if the codes is related to test, write the comment for "given, when, then".

Please follow these conventions when reviewing or suggesting changes to the code.
22 changes: 22 additions & 0 deletions GEMINI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copilot instructions

- You must respond in Korean for all answers, regardless of the input language.
- Do not write any comments in code blocks, even if asked to do so.
- Do not use wildcard when importing libraries
- When you write reviews for pull request, specific review will very helpful for my team.
- Suggest based on logical reasons.

## Commenting Convention

- Comments should be written in a single line whenever possible.
- Each comment must include the author's name and the date.
- Use IntelliJ's default `FIX ME` comment format.
- Use this for parts of the code where there may be a potential issue but immediate exception handling is unnecessary.
- Also use this for parts that are not yet finalized due to unclear business requirements.

## Test Code Convention

- Test method names must be written in **English**.
- But if the codes is related to test, write the comment for "given, when, then".

Please follow these conventions when reviewing or suggesting changes to the code.
19 changes: 7 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@ plugins {
id 'io.spring.dependency-management' version '1.1.0'
}

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

group = 'ssu'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

bootJar {
archivesBaseName = 'EatSsu'
Expand All @@ -31,49 +36,39 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.hibernate.validator:hibernate-validator:8.0.0.Final'

// Lombok
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'

developmentOnly 'org.springframework.boot:spring-boot-devtools'

runtimeOnly 'com.mysql:mysql-connector-j'
testRuntimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'


//openApi
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'

//jwt
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.2'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.11.2'

//httpClient
implementation 'org.apache.httpcomponents.client5:httpclient5:5.3-alpha1'

// 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"

//S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

//slack
implementation("com.slack.api:bolt:1.35.0")
implementation("com.slack.api:bolt-servlet:1.35.0")
implementation("com.slack.api:bolt-jetty:1.35.0")
implementation("org.slf4j:slf4j-simple:1.7.36")


// Spring Actuator
implementation 'org.springframework.boot:spring-boot-starter-actuator'

// Prometheus
runtimeOnly 'io.micrometer:micrometer-registry-prometheus'
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/ssu/eatssu/EatSsuApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
@SpringBootApplication
public class EatSsuApplication {

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

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package ssu.eatssu.domain.admin.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import ssu.eatssu.domain.admin.dto.LoginRequest;
import ssu.eatssu.domain.admin.service.AuthenticationService;
import ssu.eatssu.domain.user.dto.Tokens;
Expand All @@ -19,12 +18,12 @@
@RequiredArgsConstructor
public class AuthenticationController {

private final AuthenticationService authenticationService;
private final AuthenticationService authenticationService;

@ResponseBody
@PostMapping("/login")
public BaseResponse<Tokens> login(@RequestBody LoginRequest request) {
return BaseResponse.success(authenticationService.login(request));
}
@ResponseBody
@PostMapping("/login")
public BaseResponse<Tokens> login(@RequestBody LoginRequest request) {
return BaseResponse.success(authenticationService.login(request));
}

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package ssu.eatssu.domain.admin.controller;

Choose a reason for hiding this comment

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

medium

들여쓰기 변경이 있습니다. 확인해주세요.


import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import lombok.RequiredArgsConstructor;
import ssu.eatssu.domain.admin.dto.RegisterCategoryRequest;
import ssu.eatssu.domain.admin.service.ManageCategoryService;
import ssu.eatssu.domain.restaurant.entity.Restaurant;
Expand All @@ -18,13 +17,13 @@
@RequiredArgsConstructor
public class ManageCategoryController {

private final ManageCategoryService manageCategoryService;
private final ManageCategoryService manageCategoryService;

@ResponseBody
@PostMapping("/")
public BaseResponse register(@RequestParam Restaurant restaurant,
@RequestBody RegisterCategoryRequest request) {
manageCategoryService.register(restaurant, request);
return BaseResponse.success();
}
@ResponseBody
@PostMapping("/")
public BaseResponse register(@RequestParam Restaurant restaurant,
@RequestBody RegisterCategoryRequest request) {
manageCategoryService.register(restaurant, request);
return BaseResponse.success();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ssu.eatssu.domain.admin.controller;

Choose a reason for hiding this comment

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

medium

들여쓰기 변경이 있습니다. 확인해주세요.


import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
Expand All @@ -10,8 +11,6 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import lombok.RequiredArgsConstructor;
import ssu.eatssu.domain.admin.dto.MenuBoards;
import ssu.eatssu.domain.admin.dto.RegisterFixMenuRequest;
import ssu.eatssu.domain.admin.dto.UpdateFixMenuRequest;
Expand All @@ -24,42 +23,42 @@
@RequiredArgsConstructor
public class ManageFixMenuController {

private final ManageFixMenuService manageFixMenuService;
private final ManageFixMenuService manageFixMenuService;

@ResponseBody
@GetMapping("")
public BaseResponse<MenuBoards> fixMenuPage() {
MenuBoards menuBoards = manageFixMenuService.getMenuBoards();
return BaseResponse.success(menuBoards);
}
@ResponseBody
@GetMapping("")
public BaseResponse<MenuBoards> fixMenuPage() {
MenuBoards menuBoards = manageFixMenuService.getMenuBoards();
return BaseResponse.success(menuBoards);
}

@ResponseBody
@PostMapping("")
public BaseResponse register(@RequestParam Restaurant restaurant,
@RequestBody RegisterFixMenuRequest request) {
manageFixMenuService.register(restaurant, request);
return BaseResponse.success();
}
@ResponseBody
@PostMapping("")
public BaseResponse register(@RequestParam Restaurant restaurant,
@RequestBody RegisterFixMenuRequest request) {
manageFixMenuService.register(restaurant, request);
return BaseResponse.success();
}

@ResponseBody
@PatchMapping("/{menuId}")
public BaseResponse update(@PathVariable Long menuId,
@RequestBody UpdateFixMenuRequest request) {
manageFixMenuService.updateMenu(menuId, request);
return BaseResponse.success();
}
@ResponseBody
@PatchMapping("/{menuId}")
public BaseResponse update(@PathVariable Long menuId,
@RequestBody UpdateFixMenuRequest request) {
manageFixMenuService.updateMenu(menuId, request);
return BaseResponse.success();
}

@ResponseBody
@DeleteMapping("/{menuId}")
public BaseResponse delete(@PathVariable Long menuId) {
manageFixMenuService.delete(menuId);
return BaseResponse.success();
}
@ResponseBody
@DeleteMapping("/{menuId}")
public BaseResponse delete(@PathVariable Long menuId) {
manageFixMenuService.delete(menuId);
return BaseResponse.success();
}

@ResponseBody
@PatchMapping("/{menuId}/discontinued-status")
public BaseResponse<Boolean> toggleDiscontinuedStatus(@PathVariable Long menuId) {
return BaseResponse.success(manageFixMenuService.changeDiscontinuedStatus(menuId));
}
@ResponseBody
@PatchMapping("/{menuId}/discontinued-status")
public BaseResponse<Boolean> toggleDiscontinuedStatus(@PathVariable Long menuId) {
return BaseResponse.success(manageFixMenuService.changeDiscontinuedStatus(menuId));
}

}
Loading