-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: [구매 내역] 스크린 컴포넌트 #93
Conversation
- 작성한 후기로 넘어가는 버튼 구현. - 게시글 정보로 이동하는 기능 구현.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
잘해주셨네요.
몇가지만 반영해주세요.
import sellerlee.back.article.domain.TradeState; | ||
import sellerlee.back.article.domain.TradeType; | ||
import sellerlee.back.favorite.domain.Favorite; | ||
import sellerlee.back.member.domain.Member; | ||
|
||
public class ArticleResponse { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기존의 ArticleResponse가 ArticleDetailResponse가 된 것 같은데,
새로운 ArticleResponse는 카테고리, 판매 목록에서 보여주는 용도인가요?
|
||
public static TradeType fromString(String tradeType) { | ||
return Arrays.stream(values()) | ||
.filter(value -> value.tradeType.equals(tradeType)) | ||
.findAny() | ||
.orElseThrow(() -> new NoSuchElementException("이름에 해당하는 거래 타입이 존재하지 않습니다.")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Category Enum에선 동일한 예외를 IllegalArgumentException을 발생시키네요.
일관성있게 해야할것 같아요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
제가 생각하기엔 이 경우는 Element가 존재하지 않는다는 예외가 더 명확하다고 생각이 되서 해당 예외로 사용할게요.
dynamicTest("게시글 전체 조회", () -> { | ||
List<FeedResponse> feedArticleResponse = findArticlePage(); | ||
assertThat(feedArticleResponse.size()).isEqualTo(1); | ||
assertThat(feedArticleResponses.size()).isEqualTo(1L); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
정수타입이라서 1L 대신 1로 써도 되겠네요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
게시글 상세 조회에서 수정한 사항이라 나중에 merge때 develop의 값으로 수정해둘게요.
@@ -2,7 +2,7 @@ | |||
* @author kouz95 | |||
*/ | |||
|
|||
package sellerlee.back.article.fixture; | |||
package sellerlee.back.fixture; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
article 패키지 밖으로 뺀 이유가 있나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스트치랑 저랑 같이 리팩토링 하면서 옮겨진것 같은데 fixture가 이곳 저곳에 뿌려져있어서 중복도 생기는 상황이 생겨 밖에서 패키지로 한번에 관리해주려고 뺀 거로 기억합니다.
@DisplayName("접속한 사용자가 구매한 구매 내역을 가져온 후, 해당하는 게시글들의 목록을 반환한다.") | ||
@Test | ||
void showAll() { | ||
List<Article> articles = Lists.newArrayList(ARTICLE1, ARTICLE2, ARTICLE3); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이런 api도 있었네요. 배워갑니다 :)
{title.length > MAX_LIMIT_TITLE_LENGTH | ||
? title.substring(0, MAX_LIMIT_TITLE_LENGTH - 3) + "..." | ||
: title} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
컴포넌트를 표현해주는 부분에 로직이 있는데, 그렇다고 직관적인 로직도 아닌 것 같아요.
위에서 함수를 정의하고 해당 부분을 {foo()}
로 변경하는 것은 어떨까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이것도 제 코드인데 변경 부탁드려요 :)
import { StyleSheet, Text, View } from "react-native"; | ||
import calculateDiffTime from "../../../calculateDiffTime"; | ||
|
||
interface IArticleCardTradeDetails { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:)
front/src/screens/PurchaseScreen.tsx
Outdated
}); | ||
|
||
useEffect(() => { | ||
setArticle(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
set보다는 api call을 통해 데이터를 가져오는 표현이 더 함수의 의도를 잘 드러낼 것 같아요.
set말고 getArticles()처럼 변경하는 것이 좋을것같아요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수정했습니다 👍
price={item.price} | ||
tradeType={item.tradeType} | ||
createdAt={item.createdTime} | ||
favoriteCount={7} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이부분은 item.favoriteCount가 가능하지 않나요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
back 보니까 favorite 이 뚤려있는것 같은데! 저도 같은 생각입니다 !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분은 코즈가 진행하고 있어서 추후 머지하거나 전체 로직을 합치면서 진행하면 될 것 같아요!!!
front/src/states/memberState.ts
Outdated
export const authorIdState = atom({ | ||
key: "authorIdState", | ||
default: 0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
사용하는 곳이 없는것같아요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰 늦어서 죄송합니다 :)
public ResponseEntity<ArticleResponse> showArticle(@PathVariable Long id, | ||
@RequestParam Long memberId) { | ||
ArticleResponse articleResponse = articleViewService.showArticle(id, memberId); | ||
public ResponseEntity<ArticleDetailResponse> showArticle(@PathVariable Long id) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ArticleDetail을 가져오는데 Article을 가져온다고 기대하게 될거 같은데 showArticleDetail 이라하는건 어떤가요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
반환하는 response를 articleResponse로 고쳐서 이 부분은 그대로 둘게요. 아 show로 고칠게요!!!
import sellerlee.back.member.domain.Member; | ||
|
||
@Entity | ||
public class Trade extends BaseTimeEntity { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trade 엔티티가 안에 평가와 seller 등 빠져 있어서 왜 있어야 하는지 처음에 많이 헷갈렸네요 ㅠ
그리고 Article 관계가 ManyToOne이 아니고 OneToOne 이지 않을까요?
하나의 article에 거래는 하나여야 하는 것 같아서 내일 얘기 한번 해봐야 겠어요!
지금 클레스 다이어그램이 업데이트가 안되서 내일 다시 이부분은 이야기 하는게 나을 것 같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분은 seller와 buyer 추가, article의 ManyToOne을 제거하였습니다.
|
||
List<ArticleResponse> orders = tradeService.showAll(member); | ||
|
||
return ResponseEntity |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ResponseEntity.ok(orders); 로 줄일 수 있겠네요 :) 이건 스티치 마음대로~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
전 제 마음대로 할게요!!
@@ -2,7 +2,7 @@ | |||
* @author kouz95 | |||
*/ | |||
|
|||
package sellerlee.back.article.fixture; | |||
package sellerlee.back.fixture; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스트치랑 저랑 같이 리팩토링 하면서 옮겨진것 같은데 fixture가 이곳 저곳에 뿌려져있어서 중복도 생기는 상황이 생겨 밖에서 패키지로 한번에 관리해주려고 뺀 거로 기억합니다.
@@ -10,7 +10,7 @@ | |||
@Test | |||
void verify() { | |||
// given | |||
Member member = new Member("lxxjn0@gmail.com", "1234", 4.5); | |||
Member member = new Member("lxxjn0@gmail.com", "1234", "uri", "스티치", 4.5); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
score는 정수가 되어야 할 것 같아요 :) 4.5 -> 4
front/src/data/ArticleMockData.ts
Outdated
@@ -0,0 +1,31 @@ | |||
/** | |||
* @author joseph415 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분은 이제 지워도 될 것 같아요!
front/src/calculateDiffTime.ts
Outdated
const currentTime = moment(); | ||
const diffTime = currentTime.diff(createdTime); | ||
const diffTime = currentTime.diff(createdAt); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
비슷한 변수명 때문에 at, Time 이 같이 나온거 같은데
const diffTime = currentTime.diff(moment(createdTime, moment.ISO_8601))
이렇게 쓰는건 어떤가요??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그리고 moment.ISO_8601 가 무슨 날짜 형테인지 궁금합니다 YYYY-MM-DD HH:mm:ss 랑 똑같은 날짜 형태인가요?
); | ||
} | ||
|
||
export const innerContainerMargin = 10; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
해당 부분 제가 사용할때 여러곳에서 사용하니까 순환참조가 발생한다고 warning이 떠서 저는 그냥 style에 직접 넣어주었습니다 ㅠ
import { StyleSheet, Text, View } from "react-native"; | ||
import { MaterialCommunityIcons } from "@expo/vector-icons"; | ||
|
||
interface IArticleCardAdditional { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typeScript 에서 I prefix를 붙이는걸 권유하지 않네요 제가 붙인거같은데 제거 부탁드려요 ㅠ
{title.length > MAX_LIMIT_TITLE_LENGTH | ||
? title.substring(0, MAX_LIMIT_TITLE_LENGTH - 3) + "..." | ||
: title} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이것도 제 코드인데 변경 부탁드려요 :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approve로 잘못 날렸네요 :<
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍👍👍👍
* MyPageNavigation 구현 * feat: SalesDetailsComponent로 분리& 컴포넌트 에니메이션 추가 * refactor: 컴포넌트 분리 * fix: nevigation 이름 변경 - getTabVisibility 에서 라우트 처음 시작할때 이름이 여서 시작할때 tab이 사라지는 버그 수정 * refactor: Article entity refactoring - Photos VO 구현 * refactor: MemberResponse & ArticleResponse refactoring * refactor: ArticleCreateRequest refactoring * refactor: 깨지는 test 수정 * refactor: test data.sql 삭제 * feat:판매중일 경우 카드 컴포넌트 프론트 구현 * feat: 판매내역 컨트롤러 api 구현 - showSalesDetailsArticle 구현 - controller test 구현 - SalesDetailsResponse 구현 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 테스트 작성 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 인수테스트 작성 * refactor: back 과 front api 연동시 깨지는 부분 수정 & 네이밍 refactoring * refactor: front에서 순환참조 제거 & back과 front TradeState update 추가 * feat: test 작성 * refactor: [게시글 상세 조회] API 연동 (#89) * refactor: Article entity refactoring - Photos VO 구현 * refactor: MemberResponse & ArticleResponse refactoring * refactor: ArticleCreateRequest refactoring * refactor: 깨지는 test 수정 * refactor: test data.sql 수정 * refactor: plz * refactor: sorry * refactor: data.sql 수정 * refactor: 사이즈 확인 부분 수정 Co-authored-by: lxxjn0 <ljy3510@gmail.com> * refactoring: 불필요한 파일 제거 * chose: add test.mv.db * feature : [구매자 선택] 스크린 컴포넌트 (#88) * fix: ArticleServiceTest 변경 * fix: ArticleDetailFavorite catch 제거 * feat: 피드 최대 로딩 횟수 설정 * feat: SelectBuyerScreen, SelectBuyerArticleInfo, BuyerCard 생성, chatti… … * feat: 채팅 인수테스트 작성 * feat: 채팅 컨트롤러 생성, 생성 구현 * refactor: chatting -> chatRoom으로 변경 * feat: ChatRoomService 구현, ChatRoom 도메인 생성 … * feat: ChatRoomController.showAllChatRoomOfArticle() 구현 … * feat: ChatRoomService.showChatRoomsOf() 구현 … * refactor: data.sql member 아바타, 닉네임 추가 * feat: BuyerCard 구현, server 연동 * feat: Navigation Screeb title & headerLeft 추가 * docs: author 추가 * refactor: ChatRoom 과 buyer, article의 연간관계 ManyToOne으로 변경 * refactor: memberIdState의 default 값을 51로 변경 * refactor: data.sql에 chat_room 추가 * refactor: SALING -> ON_SALE 변경, AcceptanceTest 공백 라인 추가 * refactor: 게시글 등록 주석 추가 * refactor: route 제거 * style: prettier 적용 * refactor: ObjectMapper Autowired 사용, getArticleDetailOf -> findArticl… … * style: Cleanup * chore: pull remote develop, 컨플릭 해결 * refactoring: TradeType, location 제거 (#100) * feat: front TradeType location 제거 * refactor: tradeType ,location 제거 * feature: [DB] Flyway, MySQL, Docker 적용 (#98) * chore: test 환경 정리 * feat: flyway 추가, test 환경 설정 정리 * chore: docker 추가, local 환경 mysql 사용, flyway 적용 * chore: MyISAM -> InnoDB로 변경, local, develop 분리, jdk alpine 사용 * chore: pull origin develop * refactoring: 또링 리뷰 적용 * feature: [게시글 수정] 게시글 수정 컴포넌트 (#94) * feature: [게시글 상세 조회] 게시글 내용 컴포넌트 (#60) * feat: 게시글 내용 컴포넌트 추가 * refactor: 컴포넌트가 게시글에 대한 정보를 props로 받아 보여주도록 변경 - DetailSubTitle.tsx의 이름을 CategoryAndTime.tsx으로 변경 - 조회수와 찜 수를 보여주는 컴포넌트 추가 * feature: [게시글 생성] 상,하단 컴포넌트 (#56) * feat: 사진 추가 컴포넌트를 글쓰기 페이지에 적용 - 사진 추가 컴포넌트의 전체적인 디자인 flex 적용. * refactor: 사진 추가 컴포넌트 디자인 수정 - android에서 삭제 버튼 문제 수정(position: absolute 문제). - margin과 같은 css 정리. * feat: 제목, 카테고리, 가격 컴포넌트 적용 - fontSize 수정. - ArticleCreateNavigation의 Stack.Screen 명명 통일. * refactor: ArticlePriceForm 출력 형식 수정 - ₩ 단위가 출력되도록 변경. - 금액 입력 여부에 따라 색상 변경. * feat: ArticleContentsFormScreen 추가 - 동적 스타일 추가. * feat: Tag 컴포넌트 추가 - 디자인 수정. - react-native-keyboard-aware-scroll-view 모듈 추가. * feat: ArticleCreateScreenModal 컴포넌트 추가 - 페이지를 떠날 경우 동작하는 컴포넌트 추가. - 페이지를 떠날 때 내부 내용이 삭제되는 기능 구현. * feat: 전체 기능 구현 마무리 - 모든 항목을 채우지 않았을 경우 완료 버튼 비활성화 기능 구현. - 활성화 시 색상 변경. - 뒤로가기 버튼 구현. * refactor: 취소 버튼으로 나갈 경우 modal 처리 - 내용이 존재하는 상태에서 취소 버튼으로 나갈 경우 modal이 동작하도록 수정. * refactor: 콤마 삽입, 삭제 함수 분리 * refactor: Photo 컴포넌트 변수명 통일 - image와 photo 혼용 부분 처리 * refactor: Navigation Generic 추가 * feature: [게시글 상세 조회] 판매자 정보 컴포넌트 (#61) * feat: AuthorAvatar 컴포넌트 작성 - Avatar, AuthorAvatarProps interface 구현. - memberMockData 생성. * feat: AuthorName 컴포넌트 추가 - 사용자의 이름을 출력. * feat: AuthorScore 컴포넌트 추가 - 사용자의 친절 점수를 출력. - 점수에 따라 색상을 다르게 구현. - 0부터 9까지의 숫자만 들어올 수 있도록 AuthorScore 타입 구현. * feat: AuthorTheCheat 컴포넌트 추가 - 더치트 검색 결과를 표시. - 더치트 결과를 가지는 authorTheCheatState 구현. - 더치트 결과에 따라 색상을 다르게 표시. * refactor: ChatScreen 사용하여 구현 컴포넌트 출력 - ChatScreen 컴포넌트를 임시로 사용하여 작성 컴포넌트 출력. * refactor: ArticleAuthor 컴포넌트에서 데이터를 받아 처리하도록 수정 * feat: front에서 새로고침, 스크롤 경계에 도달 시 데이터를 받아오는 기능 추가 - axios 모듈 추가 * feat: Member.java에 멤버 정보에 대한 필드 추가 - ArticleResponse.java에 authorId 필드 추가 - data.sql에 데이터 추가 * feature: [피드 조회] 게시글 카드 컴포넌트 (#58) * feat: 피드 article 레이아웃 구현 * refactor: 컴포넌트명 컨밴션에 맞게 변경& Tpye 파스칼케이스로 변경 * feat: 피드 출력 컴포넌트 구현 * feat: 피드 게시물 컴포넌트 분리 * feat: 피드 사진 이미지 스크롤 구현 - react-native-swiper 모듈 추가 * refactor: 컴포넌트 분리 - state변경 시 깜빡거리는 문제 해결 * feat: 피드 클릭시 화면 이동 추가 * refactor: 클릭 에니메이션 수정 * refactor: 스티치 리뷰 적용 - Dot.tsx, ActiveDot.tsx 제거 - 한줄짜리 람다식 간소화 형식으로 변경 - package.json 에서 불필요한 recompose 타입 모듈 제거 - 메소드 네이밍 변경 - 메소드로 분리 할 필요가 있는 로직 메소드로 분리해서 추상화 * refactor: 터틀 리뷰 적용 - Dot.tsx, ActiveDot.tsx 생성 - 불필요한 css 요소 제거 - 매직넘버 상수화 * refactor: 네이밍 수정 * refactor: 네이밍 수정 * refactor: 네이밍 수정 - determineFavorite -> toggleFavorite * refactor: 패키지 변경 * feature: [게시글 생성] 게시글 생성 API (#57) * feat : h2 연결 * feat : 인수테스트 작성 * feat : 게시글 생성 컨트롤러 테스트 및 코드 구현 * feat : 게시글 생성 서비스 테스트 및 코드 구현 * refactor : 컨벤션 수정 및 data.sql 삭제 * feat : article에 category 필드 추가 * feat : article에 tag 필드 추가 * feat : article에 Member 필드 추가 * refactor : article 생성 시 article id 반환 * refactor : 필요없는 어노테이션 제거 * refactor : 리뷰 일부 반영 * refactor : 1차 리뷰 반영 * refactor : 인수테스트 수정 * refactor : 2차 리뷰 반영 * refactor : 테스트에서 controller의 uri 상수 사용 * refactor: Member.java에 @Email 검증 추가 * refactor: Member.java, Article.java에 validator 애노테이션 제거 * feature: [게시글 상세 조회] 사진 슬라이더 (#67) * feat: ImageSlider 구현 - 예시용 네비게이션 생성 * feat: ImageSlider, ImagesViewSlider 분리 * refactor: 중복 컴포넌트 prefix 적용 (ArticleDetail), style 개선 * feat: 리뷰 반영 * feat: Jenkinsfile 수정 * feature: [게시글 상세 조회] 하단 바 컴포넌트 (#68) * refactor: 불필요한 타입 제거후 각 컴포넌트로 이동 * feat: ArticleDetail 하단 바 컴포넌트 추가 * refactor: inline style 상수화 * feat: server 에 requset 요청 하는 로직 구현 * refactor: 터틀 리뷰 적용 * refactor: 임시 디랙토리 삭제 * feature: [피드 조회] 페이지네이션 (#69) * feat: axios를 통해 서버에 새로고침, 추가 데이터를 요청하는 기능 추가 - 현재 표시된 마지막 게시글의 id를 가져오는 기능 추가 * feat: 페이지네이션 기능 추가 - data.sql에 데이터 추가 * test: page 요청 관련 테스트 추가 - data.sql에 데이터 변경 - Test Fixture 추가 * chore: Jenkinsfile 추가 * chore: 불필요한 파일 제거 * feature: [회원 관리] 로그인 컴포넌트 (#72) * refactor: CategoryParamList 명명 수정 * feat: 로그인 화면 컴포넌트 작성 - LoginIdForm, LoginPasswordForm, LoginSubmit 컴포넌트 구현. - LoginScreen 구현. - primary color를 관리할 colors.ts 작성. * refactor: primary 컬러 적용 * refactor: 코드 포맷팅 적용 * refactor: h2 database 설정 변경 - local 환경에서 h2를 돌리도록 수정. - test.mv.db 버전 관리 추가. * refactor: member 엔티티 수정 - email, password, score 필드 추가. - getter 변경. * feat: login 인수 테스트 작성 * feat: MemberService의 login 메서드 구현 - Member 객체에 비밀번호를 검증하는 로직 구현. - MemberService에 로그인을 진행하고 이메일과 패스워드를 확인하는 기능 구현. - MemberRepository에 이메일로 회원을 찾는 함수 추가. * feat: MemberControllerTest, MemberAcceptanceTest 구현 * test: test 환경 설정 * feat: 프론트에 api 호출 메서드 적용 * feat: logging 설정 파일 추가 * feat: login 버튼 클릭 시 보이는 LoginVerifyModal 구현 - TabNavigation 타입 추가. - TabNavigation의 값 수정. - LoginVerifyModal 구현. - Login에 관련된 State 추가. * refactor: 불필요한 주석 제거 및 생성자 접근 지정자 수정 * refactor: 부족한 MemberServiceTest와 LoginAdviceControllerTest 작성 * feature: [게시글 상세 조회] 게시글 및 판매자 정보 조회 API (#75) * feat: ArticleController test 추가 - showAritcle() mockMVC 이용해서 구현 * feat:ArticleViewService 만드는중 * feat:ArticleViewServiceTest 구현 * feat: ArticleAcceptence test 구현 - 게시글 상세 조회 * refactor: Dto 생성자 private으로 변경 * feature: [전체] S3 이미지 연동 (#73) * feat: Article post 요청 연결 * refactor: ArticleCreateRequest의 tags를 String -> List<Tag>로 변경, 테스트 대응 * fix: data.sql tag의 article id 변경 * feat: aws 업로드 기능 구현 * refactor: BASE_URL 변경, secret키 추가, h2 mem으로 변경 * feat: 게시글 상세 조회 컴포넌트 조립 (#76) Co-authored-by: Yoonseo Nam <turtlenam0928@gmail.com> * feature: [피드 조회] 피드 조회 API 변경 (#74) * style: tagBox와 tagBoxex의 이름을 각각 tag와 tags로 변경 * feat: 피드 조회에 대한 응답을 ArticleResponse.java에서 FeedResponse.java로 변경 * refactor: Feed, Article, Member 타입 추가 및 warning 제거 - article_id 변수 명을 articleId로 변 경 - ArticleNavigation.tsx에서 ArticleDetailScreen.tsx의 이름을 FeedDetail에서 ArticleDetail로 변경 - photo의 타입을 ImageURISource로 변경 - Tag타입의 tag필드를 name으로 변경 * refactor: image 타입 변경 * fix: ArticleServiceTest 변경 * fix: ArticleDetailFavorite catch 제거 * fix: 백틱 삭제 * fix: 이미지 mock 교체 * feature : [게시글 생성] API 연동 및 이미지 AWS S3 업로드 (#83) * refactor: front api 분리, ArticleCreateCategorySelect 생성, loginState memberId 추가 - memberId mock 사용. * refactor: front api 분리 * refactor: articleDetail api 분리 * refactor: image -> photo 변경 * refactor: [리팩토링] 패키지 분리 (#85) * feat: 수정 페이지 이동 기능 - 게시글 상세에서 수정 버튼을 눌러 수정 페이지로 이동하는 기능 추가 * feat: 수정 페이지로 게시글 데이터 전달 - 게시글 상세 조회 api에 member id 추가 * feat: 수정 페이지에서 기존에 작성한 글 내용을 보여주는 기능 - route로 데이터를 전달하는 방식을 recoil로 변경 - FeedDetail을 사용하던 부분을 지우고 Articledetail로 통합 * style: ArticleCreate 명칭을 ArticleForm으로 변경 * refactor: ArticleDetailScreen.tsx의 필요 없는 값 제거 - ArticleNavigation에 ArticleForm 관련 스크린 추가 * refactor: 글 생성 기능 동작하도록 변경 * refactor: Photo 컴포넌트가 사진들을 PhotoInfo[] 타입이 아닌 string[] 타입으로 갖고 있도록 변경 * refactor: 게시글 수정 api 메소드 변경 * feat: 게시글 수정 요청을 받아서 데이터베이스에 반영하는 기능 구현 - ArticleCreateRequest를 ArticleRequest로 변경 * refactor: 리뷰 반영 - API URI를 모두 템플릿 리터럴로 변경 - PUT의 Response Status Code를 204로 변경 Co-authored-by: Junyoung Lee <ljy3510@gmail.com> Co-authored-by: joseph415 <jeseok95@gmail.com> Co-authored-by: 또링 <jnsorn@gmail.com> Co-authored-by: Gyeong-Jun Kim <lastpuzly@gmail.com> * feature: [Infra] DB Dockerfile 생성 (#106) * feat: Dockerfile 분리, docker-compose 수정 * feature: [판매 내역] 스크린 컴포넌트 (#96) * feat: Profile 탭에서 StackNavigation 추가 * feat: 판매중, 판매완료 탭 기능 구현 - react-native-tab-view 모듈 추가 * feat: 판매 상태에 따라 게시글을 가져오는 기능 구현 - data.sql에 판매 상태 컬럼 추가 * feat: 판매 상태를 통해 게시글을 가져오는 기능 추가 - SalesDetailsScreen을 SalesHistoryScreen으로 변경 * feat: 탭을 전환할 때 마다 게시글을 받아오는 기능 구현 - articleSalesHistoryState 생성 * feat: 탭을 전환할 때 마다 게시글을 받아오는 기능 구현 - articleSalesHistoryState 생성 * test: showArticlesByTradeState 관련 테스트 추가 * refactor: showArticlesByTradeState를 showByTradeState로 변경 * test: 테스트 주석 처리 * refactoring: 스티치 리뷰 적용 * feature : [게시글 상세 조회] 상단 바 컴포넌트 (#91) * feat : 게시글 상세조회 상단 바 팝업 구현 - 수정 클릭 시 새 페이지로 이동 - 삭제 클릭 시 API 호출 및 모달 창 띄우기 * feat : 게시글 삭제 컨트롤러 테스트 작성 * refactor : 게시글 삭제 시 ArticleDetailScreen 띄우기 * refactor : 1차 리뷰 반영 - truncate 추가 - state 분리 * chore : develop과 병합 * docs: [전체] API 문서 자동화 (#103) * chore: spring-restdocs 모듈 추가 * docs: ArticleControllerTest의 RestDocumentation 추가 * docs: ChatRoomControllerTest의 RestDocumentation 추가 * refactor: DTO의 태그 타입을 List<Tag>에서 List<String>으로 변경 * refactor: front에서 Tag[] 타입을 string[]타입으로 변경 * test: 실패하는 테스트 변경 및 preprocessRequest, preprocessResponse 추가 * docs: LoginAdviceControllerTest와 MemberControllerTest의 RestDocumentation 추가 * docs: RestDocumentation 추가 * fix: 빌드 실패 수정 (#111) * feat: application.yml 분리 (#112) * feat: application.yml 분리 * chore: update submodule * feature: application.yml 분리 (#114) * feature: application.yml 분리 * feature: sql문 수정 (#117) * feat: sql문 수정 * sorry * MyPageNavigation 구현 * feat: SalesDetailsComponent로 분리& 컴포넌트 에니메이션 추가 * refactor: 컴포넌트 분리 * fix: nevigation 이름 변경 - getTabVisibility 에서 라우트 처음 시작할때 이름이 여서 시작할때 tab이 사라지는 버그 수정 * feature: [찜] 생성, 삭제 API (#104) test: Favorite 인수 테스트 작성 feat: FavoriteController.create() 구현 feat: FavoriteService.create() 구현 test: 찜 삭제 인수 테스트 작성 feat: FavoriteController.cancel() 구현 feat: FavoriteService.cancel() 구현 refactor: FeedResponse 변경, isFavorite 추가 refactor: showArticlePage() ArticleViewService로 이동, Member 추가 feat: ArticleFavoriteCount 생성, 서버 피드 조회 기능 구현 feat: 프론트 피드 조회 기능 구현 chore: Clean Up chore: config 상위 패키지 common으로 변경 chore: rebase to origin develop chore: BaseTimeEntity 패키지 이동 refactor: cancel -> remove 변경 refactor: ArticleFavoriteCount 패키지 분리 refactor: formatting refactor: Autowired 사용 refactor: 메소드 순서 변경 refactor: ArticleFavoriteCountService 테스트 작성 chore: gradlew 변경 취소 chore: pull origin develop refactor: ArticleFavoriteCountFactory 생성 refactor: favoriteState 자료형 boolean 으로 변경, MemberResponse -> AuthorRe… … refactor: 실패하는 문서화 테스트 Disabled * fix: [Infra] DB 한글 깨짐 문제 (#121) * fix: sql문 수정 * refactor: mysql -> mariadb 변경 * refactor: Article entity refactoring - Photos VO 구현 * feature: [구매 내역] 스크린 컴포넌트 (#93) * feat: PurchaseScreen 컴포넌트 구현 * feat: ArticleCard 컴포넌트 추가 (by Subway) * feat: PurchaseArticle 컴포넌트 구현 - 작성한 후기로 넘어가는 버튼 구현. - 게시글 정보로 이동하는 기능 구현. * refactor: 피드백 내용 반영 * refactor: 머지된 코드 수정 및 확인 * refactor: member 관계 필드 수정 * refactor: MemberResponse & ArticleResponse refactoring * refactor: ArticleCreateRequest refactoring * refactor: 깨지는 test 수정 * refactor: test data.sql 삭제 * refactor: [리팩토링] Trade 엔티티 ID 생성 전략 및 buyer, seller 필드 수정 (#125) * feat:판매중일 경우 카드 컴포넌트 프론트 구현 * feat: 판매내역 컨트롤러 api 구현 - showSalesDetailsArticle 구현 - controller test 구현 - SalesDetailsResponse 구현 * feature: [Infra] Trade migration sql 추가 (#127) * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 테스트 작성 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 인수테스트 작성 * refactor: back 과 front api 연동시 깨지는 부분 수정 & 네이밍 refactoring * refactor: front에서 순환참조 제거 & back과 front TradeState update 추가 * feat: test 작성 * refactoring: 불필요한 파일 제거 * chose: add test.mv.db * refactoring: 또링 리뷰 적용 * refactoring: 스티치 리뷰 적용 * sorry * refactor: 깨지는 테스트 수정 * MyPageNavigation 구현 * feat: SalesDetailsComponent로 분리& 컴포넌트 에니메이션 추가 * refactor: 컴포넌트 분리 * fix: nevigation 이름 변경 - getTabVisibility 에서 라우트 처음 시작할때 이름이 여서 시작할때 tab이 사라지는 버그 수정 * refactor: Article entity refactoring - Photos VO 구현 * refactor: MemberResponse & ArticleResponse refactoring * refactor: test data.sql 삭제 * feat:판매중일 경우 카드 컴포넌트 프론트 구현 * feat: 판매내역 컨트롤러 api 구현 - showSalesDetailsArticle 구현 - controller test 구현 - SalesDetailsResponse 구현 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 테스트 작성 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 인수테스트 작성 * refactor: back 과 front api 연동시 깨지는 부분 수정 & 네이밍 refactoring * refactor: front에서 순환참조 제거 & back과 front TradeState update 추가 * feat: test 작성 * refactoring: 불필요한 파일 제거 * chose: add test.mv.db * refactoring: 또링 리뷰 적용 * refactoring: 스티치 리뷰 적용 * sorry * refactor: 깨지는 테스트 수정 * MyPageNavigation 구현 * feat: SalesDetailsComponent로 분리& 컴포넌트 에니메이션 추가 * refactor: 컴포넌트 분리 * fix: nevigation 이름 변경 - getTabVisibility 에서 라우트 처음 시작할때 이름이 여서 시작할때 tab이 사라지는 버그 수정 * refactor: MemberResponse & ArticleResponse refactoring * refactor: ArticleCreateRequest refactoring * refactor: 깨지는 test 수정 * feat:판매중일 경우 카드 컴포넌트 프론트 구현 * feat: 판매내역 컨트롤러 api 구현 - showSalesDetailsArticle 구현 - controller test 구현 - SalesDetailsResponse 구현 * feat: Member 의 article 을 tradeState 에 따라 다르게 가져오는 인수테스트 작성 * refactor: back 과 front api 연동시 깨지는 부분 수정 & 네이밍 refactoring * refactor: front에서 순환참조 제거 & back과 front TradeState update 추가 * feat: test 작성 * refactoring: 불필요한 파일 제거 * refactoring: 또링 리뷰 적용 * refactoring: 스티치 리뷰 적용 * sorry * 꺠지는 부분 수정 Co-authored-by: lxxjn0 <ljy3510@gmail.com> Co-authored-by: Gyeong-Jun Kim <lastpuzly@gmail.com> Co-authored-by: 터틀 <turtlenam0928@gmail.com> Co-authored-by: 또링 <jnsorn@gmail.com>
실행 화면
작업 내용
closes #80