Commit 36f6926
v2.0.0: release 2차 운영 배포 (#71)
* chore: 불필요한 주석 제거
* feat: 루틴 등록 서비스 로직에 대한 테스트 코드 추가
* feat: 루틴 등록 API 스웨거 추가
* refactor: DayOfWeek를 커스텀 enum 클래스 대신 Java에서 제공하는 enum으로 변경
* chore: 메스드 설명 주석 추가
* feat: executionTime 스키마 필수 필드 설정
* chore: init sql 추가(추천루틴, 추천서브루틴, 온보딩, 케이스)
* feat: entity 추가(Onboarding, Case, RecommendedRoutine, RecommendedSubRoutine)
* fix: 공통 응답 처리 버그 수
* feat: 온보딩 스웨거 추가
* feat: http request login 추가
* feat: 온보딩 로직 추
* fix: jpa ddl 시 enum -> varchar 로 수정
* feat: onboarding 추가
* feat: 서브모듈 업데이트
* fix: Onboarding 응답 response 수정
* refactor: global/utils 경로로 이동
* remove: @table 어노테이션 삭제
* remove: 불필요한 어노테이션 삭제
* refactor: 엔티티 생성 빌더 service 레이어로 이동
* chore: submodule 업데이트
* refactor: 이력을 관리하는 시간을 LocalDateTime으로 변경
* refactor: END_DATE_TIME 수정
* refactor: 반복요일 필드명 수정
* refactor: 테스트 코드 수정
* chore: pull request 템플릿 추가
* feat: 온보딩시 추천 루틴에 대한 수정
* feat: 변경 루틴 엔티티 및 레포지토리 추
* fix: BaseTimeEntity 추
* chore: init sql 수정
* feat: 온보딩 시 추천 루틴 등록 API 추
* fix: null return 대신 Object 리턴
* remove: 불필요한 user 조회 로직 제거
* feat: RegisterRoutineRequest, UpdateRoutineRequest의 공통 필드들을 하나의 메서드에서 사용하기 위한 인터페이스 추가
* feat: 루틴, 서브루틴 업데이트 메서드 추가
* feat: 객체 동등성 수행을 위해 equals, hashCode 메서드 오버라이드
* feat: 루틴 및 서브루틴 업데이트 API 추가
* chore: develop 브랜치에서 변경사항 병합
* feat: 루틴, 서브루틴 업데이트 메서드 추가
* feat: 루틴 및 서브루틴 삭제 로직 추가
* feat: 루틴 및 서브루틴 삭제 API 추가
* feat: 이력 관리를 위해 복합키 객체 HistoryPk 추가
* feat: 추가된 복합키를 고려해서 루틴 관련 Request 객체 수정
* remove: LocalDateTime.now() 상수 삭제
* refactor: 추가된 복합키를 고려하여 루틴 및 서브루틴 업데이트 서비스 로직 수정
* feat: 에러 관련 스웨거 스펙 추가
* refactor: updateHistoryEndDate 메서드명 변경
* refactor: 복합키 기반으로 루틴 삭제 메서드 수정
루틴 업데이트 메서드에서 서브 루틴이 null일 때 처리 추가
* refactor: 삭제 루틴 API 및 스웨거 설명 수정
* refactor: User 엔티티 복합키로 변환
이력관리 필드 추가
* refactor: user 엔티티 복합키를 외래키로 설정
복합키 기반으로 routineService의 로직 수정
* refactor: changedRoutine 및 changedSubRoutine 테이블에 PK를 복합키로 수정
관련된 온보딩 서비스 로직 수정
* refactor: BaseTimeEntity 디렉토리 변경으로 인해 import 수정
* refactor: BaseTimeEntity 디렉토리 변경으로 인해 import 수정 (Case 클래스 추가)
* refactor: User 복합키를 바탕으로 기존 JWT 생성 및 인증 단계 로직 수정
JwtProvider, UserAuthService에서 공통으로 사용되는 로직을 findValidUserByRefreshTokenOrAccessToken 메서드로 통합
* fix: 컬럼 관련 설정 오류 수정
* remove: 불필요한 주석 삭제
* chore: 주석 추가
* refactor: 인증 과정에서 유저 식별시 이력 시작 및 종료일시를 고려하여 현재 활성 사용자인지 검증 후, 유저 조회하도록 변경
* fix: Transactional 추가
* refactor: historyStartDateTime를 포함하지 않는 쿼리 메서드로 변경
* refactor: LocalDateTime.now() 의 변수명을 now로 변경
* fix: 테스트 코드 리팩터링 및 TODO 작성
* fix: Routine 테이블에서 User의 외래키를 삭제하고 userId 값으로 컬럼 값 수정
* feat: 서브루틴 테이블에 정렬순서(sortOrder) 필드 추가
* refactor: 서브루틴에 업데이트 대한 케이스 수정
* refactor: Jwt AccessToken으로 로그인했을 때 해당 유저를 조회하는 쿼리 메서드 변경
* remove: 불필요한 로직 삭제
* feat: Jwt 인증 관련 쿼리메서드 수정
* refactor: Jwt 관련 처리 기능들을 관리하는 Util 클래스로 명명
* refactor: 주석 변경
* refactor: 테스트 코드 주석 설정
* refactor: 루틴 업데이트 특정 케이스 수정
* [T3-98] 루틴 조회 API 수정 (#23)
* feat: 변경 구분코드 추가
* feat: 루틴 조회 API
* feat: 수정여부 컬럼 추가
* chore: 1차 배포 최종 init sql
* fix: ddl 변경에 따른 수
* fix: ddl 변경에 따른 수정
* fix: 온보딩 API 수
* fix: 루틴 조회 쿼리파라미터로 수정
* fix: 홈 루틴 조회 API 수정
* [T3-106] 감정구슬 테이블 구축, API 개발 (#24)
* feat: 감정구슬 테이블 구축, API 개발
* chore: 감정구슬 case 매
* remove: 불필요한 주석 제거
* remove: caseName 필드 삭제
* refactor: 스웨거 설정 보완
* feat: 루틴 완료여부 엔티티 클래스 추가
* feat: 루틴 완료여부 갱신 api에 필요한 request 객체 추가
* feat: 루틴 완료여부 갱신 서비스 로직 추가
* feat: 루틴 완료여부 갱신 api 추가
* feat: 루틴 삭제 시 deleteAt 설정 추가
* refactor: request 객체에서 필드명 변경
* feat: 주석 추가
* feat: 선택한 요일(당일)만 루틴을 삭제하는 서비스 로직 추가
* feat: 선택한 요일(당일)만 루틴을 삭제하는 API 추가
* refactor: reissue api response 수정
* fix: 스웨거 스펙 오류 수정
* refactor: JWT 인증 실패 시 response 형식 수정
* [T3-107] 홈 루틴 조회 API 수정 (#26)
* fix: 홈 루틴 조회 API 내부 로직 수정(삭제이력 조회 제외, 완료여부 응답값 추가)
* feat: 루틴 조회 응답값 추가(이력순번)
* fix: 회원 탈퇴 로직에서 영속 상태로 설정
* feat: 데이터 정합성을 위해 검증 로직 추가
* refactor: 루틴 검증 로직을 RoutineValidator 클래스로 책임 분리
기존에 switch-case 문이 너무 비대했기 때문에 public 메서드인 validateRoutineOwnership의 전반적인 흐름을 명확히 볼 수 있도록 validation 로직을 private 메서드로 분리했습니다.
* refactor: 루틴 관련 엔티티 생성, 초기화에 대한 로직을 RoutineFactory 클래스로 책임을 분리
hasRoutineChanged()는 Routine 엔티티의 필드에 관련된 일치 여부를 처리하기 때문에 Routine 엔티티가 해당 메서드를 처리하도록 했습니다. 객체가 행동(메서드)를 통해 자신의 데이터를 처리하도록 하여 Routine 엔티티의 캡슐화를 강화하였습니다.
* [T3-108] 추천 루틴 조회 API (#28)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* Feat/t3 108 (#29)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* remove: tokenResponse
* [T3-119] 홈 루틴 조회 응답값 추가 (#30)
* fix: OneToOne에서 ManyToOne으로 변
* feat: 추천 루틴 조회 API
* feat: swagger 추가
* feat: 루틴, 서브루틴 완료 ID 응답값 추가
* fix: 감정 구슬 1일 1회 선택여부 확인 validation 추가
* fix: onboarding 명세 수정
* feat: 추천 루틴 조회시 응답에 감정구슬 enum 값 추가
* fix: 명세 추가
* fix: 명세 수정
* remove: tokenResponse
* feat: 루틴 조회 시 응답값 필드 추가
* chore: release tag 생성 자동화
* refactor: 홈 조회 로직에서 DTO로 변환하는 로직 RoutineMapper로 책임을 분리
* refactor: queryRoutines 메서드의 흐름을 정리하기 위해 메서드 분리
filterAndGroupRoutinesByDate()는 날짜별로 필요한 루틴을 조회하기 위해 필터링 및 그룹핑을 진행하는 메서드
applyChangedRoutines()는 이미 조회해온 날짜별 루틴들에 변경 루틴을 반영하여 최종 날짜별 루틴을 반환
* chore: prod 환경 oom 방지를 위한 메모리 증설
* remove: 불필요한 어노테이션 삭제
* fix: label 파싱 오류 수정
* refactor: 감정 구슬 엔티티 생성 관련 로직을 EmotionMarbleFactory 클래스로 책임을 분리
* submodule update
* refactor: EmotionMarbleService, OnboardingService에 쓰이는 공통 로직을 행위의 주체인 RecommendRoutineService로 위임
공통 로직은 recommendRoutinesByEmotionMarble() 메서드입니다.
* fix: enum 오타 수정
* remove: 중복 클래스 삭제
* refactor: 변경 루틴 관련 엔티티 생성 로직을 ChangedRoutineFactory로 책임을 위임
* chore: ChangedRoutineFactory 주석 추가
* refactor: 공통 로직 메서드 분리
* refactor: DTO 관련 로직을 RecommendedRoutineMapper로 책임을 위임
1. searchRecommendedRoutines()의 로직 흐름을 한눈에 파악할 수 있도록 addPersonalizedRecommendedRoutine(), addCategoryRecommendedRoutines()로 분리하였습니다.
2. recommendRoutinesByEmotionMarble()에서 비즈니스 로직에 의해 주로 List 초기화 및 for문 순회하는 부분이 반복되어 코드량이 비대해졌습니다. 스트림을 사용하여 짧게 가져가면 짧은 코드로도 어떤 행위를 하는지 파악할 수 있는 것이 장점으로 느껴져 변경하였습니다.
* refactor: 중복 클래스 제거 및 변수명 통일
* refactor: 메서드명 변경 및 주석의 의도 강화
* refactor: RecommendedRoutine 관련 공통 로직을 Service가 아닌 Manager 클래스로 위임하여 레이어드 아키텍처 규칙을 준수
* refactor: 생성, 변환과 같은 단순 책임의 모듈을 @component로 변경
* refactor: response 관련 변수명 수정
* [T3-120] 추천 루틴 단건 조회 API (#36)
* fix: 추천 루틴 엔티티 실행시간 변수명 수정
* fix: 추천 루틴 엔티티 실행시간 변수명 수정에 따른 sql 수정
* feat: 추천 루틴 단건 조회 API
* chore: 서브모듈 업데이트
* remove: 불필요한 dto 제거
* fix: swagger 명세 수정
* fix: 추천 루틴 단건조회 로직 수정
* fix: 추천루틴 엔티티 필드명 변경에 따른 수정(time -> executionTime)
* fix: release 태그 생성 자동화 수정 (#37)
* [T3-124] S3 설정 추가 및 감정구슬 전체 조회 수정 (#38)
* feat: s3 config 생성
* fix: 감정구슬 전체 조회 API 수정
* feat: EmotionMarbleMapper 추가 및 서비스 로직 수정
* remove: 루틴 조회 시 불필요한 응답값 제거
* feat: 유저 정보를 조회하는 API 추가
* feat: 검색 날짜 기준으로 홈 화면의 감정 구슬 조회 API 추가
* refactor: DTO 변환 로직 Mapper 클래스로 이동
* refactor: 업데이트를 위해 User를 영속 상태로 만드는 로직을 UserManager 클래스로 위임
* chore: 테스트코드 리팩터링 TODO 주석 추가
* feat: 수정 페이지에서 사용되는 루틴 단건 조회 API 추가
* refactor: 감정 구슬 조회 API 수정
* fix: 서브 루틴 조회시 활성상태인 서브 루틴을 조회하도록 쿼리 메서드 수정
* refactor: 유저 정보 조회 엔드포인트 변경
* fix: onboarding insert sql 수정
* chore: 배포 Slack 알림 추가
* chore: release drafter 실행 조건 수정
* chore: 서브모듈 업데이트 및 data.sql 수정
* refactor: release drafter를 cicd 워크플로우 안으로 병합
* fix: onboarding 수행시 null 체크
* fix: slack message parameter 수정(toJson 처리)
* fix: 반복일자에 null 대신 empty list 응답
* fix: payload json-safe 문자열로 수정
* refactor: 유저 PK를 userId(Long)으로 변경
* feat: RoutineV2 엔티티 생성
* feat: 루틴 관련 엔티티 생성
* feat: 컨트롤러 로깅 인터셉터 생성
* fix: 당일 삭제 시 변경된 루틴에 대한 분기처리가 없는 것을 보완
* refactor: 컨버터 클래스명 변경 및 ObjectMapper 반영
이에 해당하는 에러코드 추가
* chore: 필드 별 주석 추가
* feat: Routine 스웨거 스펙에 에러코드 추가
* chore: 주석 추가
* fix: 토큰 디코드 로직 수정
* feat: swagger url exclude
* feat: @SQLDelete, @where를 이용한 soft delete 추가
* refactor: routineType을 nullable하게 서비스 로직 리팩터링
* refactor: EmotionMarble PK 타입 변경
* refactor: reissue api response에 유저 role 추가
* fix: performedDate를 포함한 쿼리메서드로 수정 (#51)
* refactor: routineType nullable하지 않도록 수정
* [T3-140] DB Flyway 적용 (#52)
* chore: db flyway 설정
* feat: db flyway 적용
* chore: 서브 모듈 업데이트
* chore: DB v4 변경사항 추가
* chore: DB v4 변경사항 중 rename 추가
* fix: 추천 루틴이 모두 보이도록 변경
* fix: 당일 루틴 등록 추가
* [T3-152] 온보딩 등록 V2 API 및 유저 Role 추가 (#57)
* feat: ONBOARDING User Role 추가
* feat: 온보딩 등록 V2 API
* refactor: 스트림 변수명 수정
* refactor: 서브루틴의 완료 여부 초기화를 Factory에게 위임
* feat: 루틴 정보 등록 및 루틴 시작, 종료일자 기반의 루틴 내역 생성
* feat: 루틴 등록 API controller 추가
* refactor: subRoutineCnt를 삭제함으로써 캡슐화, 데이터 정합성 강화
* chore: 주석 추가
* refactor: repeatDay에 대한 분기 처리를 if-else에서 삼항연산자로 변경
* refactor: 서브 루틴 완료 여부 리스트 생성 책임을 Factory에서 Service 클래스로 위임
* feat: RoutineInfoV2, RoutineV2 에 BaseTimeEntity 상속
* fix: v2 엔티티 컬럼 추가 및 role 인가 처리
* refactor: 기존 루틴 삭제 서비스 로직에 v2를 추가
* refactor: controller 요청 타입 수정
* [T3-153] 루틴 단건, 다건 조회 API V2 (#59)
* feat: 루틴 조회 V2
* fix: ONBOARDING 인가 경로 수정
* feat: 엔티티 필드 private 접근제어자 추가
* feat: 루틴 단건 조회 V2 API
* fix: optional 처리 추가
* fix: 엔티티 SQL 설정을 활용한 soft delete로 수정
* feat: 루틴 삭제 시 루틴 정보의 종료 일자를 당일로 수정
* refactor: 루틴을 물리적 삭제로 jpql 변경
* feat: 삭제 여부 컬럼을 추가 및 루틴 삭제 로직 수정
* [T3-160] 감정 구슬 이미지 추가 및 조회 V2 API (#61)
* feat: 일자 기준 감정구슬 조회 V2 API
* feat: 감정구슬 메세지 및 V2 이미지 추가
* refactor: JPQL을 활용해 물리 삭제하도록 변경
* feat: 오늘만 삭제 API 추가
* feat: 루틴 완료 여부 갱신 서비스 로직 추가
* feat: 루틴 완료 여부 갱신 API 추가
* refactor: 스웨거 스펙 설명 수정
* [T3-162] 홈 루틴 조회 시 일자별 루틴전체 완료 구분값 추가 (#63)
* feat: 일자별 루틴 조회 시(홈 루틴 조회) 전체 루틴 완료 여부 값 추가
* fix: url path 수정
* feat: 추천 루틴 필드 추가 및 조회
* [T3-166] 추천루틴 조회 응답값에 추천 루틴 타입 추가 및 루틴 등록시 요청값에 추천 루틴 추가 (#64)
* feat: 감정 구술 추천 루틴, 온보딩 추천 루틴 저장 시 추천 루틴 타입 추가
* feat: RecommendedRoutineSearchResult에 추천루틴타입 응답 추가
* feat: 추천 루틴 타입 추가
* feat: 루틴 등록 시 추천 루틴 타입 추가
* feat: 루틴 수정 서비스 로직 추가
* feat: 루틴 수정 API 추가
* refactor: request prefix로 변환
* fix: 컴파일 에러 해결
* feat: API URL 변경 및 Deprecated 추가
* fix: request 타입 수정
* fix: @transaction 어노테이션 누락 수정
* fix: url path 수정
* feat: 유저 온보딩 조회 API 추가
* [T3-161] 추천 루틴 조회 캐시 적용 (#66)
* feat: 응답 시간 로깅 추가
* feat: redis cache 적용
* feat: 추천루틴 단건조회, 추천루틴 조회(맞춤추천 제외) 캐싱
* feat: 추천루틴 조회(맞춤추천 제외) 캐싱 조회를 위한 로직 분리(self-invocation 으로 인해)
싱# 무엇을, 왜, 어떻게 했는지
* feat: 루틴 삭제 여부, 루틴 시작, 종료일자 응답값 추가 (#68)
* refactor: 유저 관련 enums를 user/domain 하위로 이동
* feat: 안드로이드 버전 확인 API 추가
* feat: 버전 관련 API는 인증 없이 요청을 허용하도록 설정
* feat: android_app_version 엔티티 flyway 스크립트 추가
* chore: 파일명 변경
* fix: 가장 최신 버전을 조회하는 쿼리 메서드로 변경
* [T3-176] UserOnboardingInfo 엔티티 생성 및 온보딩 등록 API V2 개발 (#70)
* feat: UserOnboardingInfo 엔티티 생성 및 온보딩 조회 API 개발
* feat: 온보딩 요청 API V2 개발 및 UserOnboardingInfo 객체 저장
* fix: rename
* feat: /api/v2/onboardings 인가 설정
---------
Co-authored-by: 정유석 <elwlahstmxjf@naver.com>
Co-authored-by: 정유석 <83908712+yuseok0215@users.noreply.github.com>1 parent 524ee8a commit 36f6926
76 files changed
Lines changed: 1918 additions & 195 deletions
File tree
- src
- main
- java/bitnagil/bitnagil_backend
- appVersion
- Repository
- controller
- spec
- domain
- response
- service
- auth/kakao
- domain
- service
- emotionMarble
- controller
- spec
- domain/enums
- response
- service
- enums
- global
- config
- errorcode
- interceptor
- swagger
- onboarding
- controller
- spec
- request
- service
- recommendedRoutine
- response
- service
- routineInfoV2
- domain
- repository
- request
- service
- routineV2
- controller
- spec
- domain
- enums
- repository
- request
- response
- service
- routine
- controller
- spec
- request
- service
- userOnboardingInfo
- controller
- spec
- domain
- repository
- response
- service
- user
- controller
- spec
- domain
- enums
- repository
- request
- response
- service
- resources/db/migration
- test/java/bitnagil/bitnagil_backend/user/service
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
70 | 74 | | |
71 | 75 | | |
72 | 76 | | |
| |||
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
Lines changed: 30 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
Lines changed: 31 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
Lines changed: 44 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
| 9 | + | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | 3 | | |
5 | 4 | | |
6 | 5 | | |
| |||
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
20 | | - | |
| 19 | + | |
21 | 20 | | |
22 | 21 | | |
23 | 22 | | |
| |||
0 commit comments