Skip to content
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

[Team-08 마르코] 메인 페이지 조회, 숙소 조회 및 가격 조회 #52

Open
wants to merge 119 commits into
base: team-08
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
a93ba35
Update README.md
swing-park May 17, 2021
f0b5b61
Update README.md
swing-park May 17, 2021
d5c3454
feat: ✨ 프로젝트 생성(#5)
95degree May 18, 2021
0f10ebf
feat: ✨ 스키마 sql문 생성(#6)
95degree May 18, 2021
e58df92
fix: 🐞스키마 sql문 수정(#6)
95degree May 18, 2021
74bd412
feat: ✨mock api 생성(#5)
95degree May 18, 2021
f2a1bd6
feat: ✨CityListResponse 생성(#5)
95degree May 18, 2021
8d661f9
feat: ✨ObjectMapper 설정(#5)
95degree May 18, 2021
5788636
feat: ✨CityListWrapper 로직 생성(#5)
95degree May 18, 2021
258783a
feat: ✨Get Mock Api 생성(#5)
95degree May 18, 2021
eac7842
feat: ✨Get Mock Api 생성(#5)
95degree May 18, 2021
9749e3d
bug: 🐞 스키마 수정(#6)
95degree May 18, 2021
2cb34f4
feat: ✨ main 페이지 작업 브랜치 생성(#5)
95degree May 20, 2021
7419f06
feat: ✨ RoomDao 생성(#5)
95degree May 20, 2021
24bc774
feat: ✨ ImageDao 생성(#5)
95degree May 20, 2021
d7e14f9
feat: ✨ CityDao 생성(#5)
95degree May 20, 2021
8478a18
feat: ✨ CategoryDao 생성(#5)
95degree May 20, 2021
199b90f
feat: ✨ findAll 메소드 생성(#5)
95degree May 20, 2021
e156152
feat: ✨ CityMapper 생성(#5)
95degree May 20, 2021
d034dc5
feat: ✨ CityMapper 추가 (#5)
95degree May 20, 2021
bf85712
feat: ✨ City domain의 생성자 및 getter 추가 (#5)
95degree May 20, 2021
8c93a1c
feat: ✨ @EnableAutoConfiguration 제거 (#5)
95degree May 20, 2021
686e572
feat: ✨ dataSource 추가 (#5)
95degree May 20, 2021
b6f6def
feat: ✨ MainController 추가 (#5)
95degree May 20, 2021
b17e973
feat: ✨ data.sql 생성 (#5)
95degree May 20, 2021
4861104
feat: ✨ CitiesWrapper 생성 (#5)
95degree May 20, 2021
d536195
feat: ✨ CitiesWrapper 생성자 및 getter 추가 (#5)
95degree May 20, 2021
9e7434f
feat: ✨ CitiesWrapper로 return 변경 (#5)
95degree May 20, 2021
7b80010
feat: ✨ wrap-root-value 설정 제거(#5)
95degree May 20, 2021
349a8ff
feat: ✨Image 도메인 생성(#5)
95degree May 20, 2021
13964f1
feat: ✨Image에 필드 추가(#5)
95degree May 20, 2021
e21fc89
chore: 🔧Image에 필드 수정(#5)
95degree May 20, 2021
47c44ed
style: 🎨코드 포맷팅 수정(#5)
95degree May 20, 2021
73aa177
feat: ✨CityRequest 생성(#5)
95degree May 21, 2021
52becff
feat: ✨Image와 1:N관계 추가(#5)
95degree May 21, 2021
545219a
feat: ✨ImageType Enum 생성(#5)
95degree May 21, 2021
188301f
chore: 🔧테이블 스키마 수정(#5)
95degree May 21, 2021
89687db
chore: 🔧final 추가(#5)
95degree May 21, 2021
a60478b
feat: ✨ImagType 필드 추가(#5)
95degree May 21, 2021
237ac05
feat: ✨ImageDao 삭제(#5)
95degree May 21, 2021
727e434
feat: ✨findMainImageUrl 추가(#5)
95degree May 21, 2021
a5bfe66
feat: ✨CityService 생성(#5)
95degree May 21, 2021
51ccaee
feat: ✨클래스 명 변경(#5)
95degree May 21, 2021
df74101
feat: ✨createAllToRequestList 생성(#5)
95degree May 21, 2021
504f39b
chore: ✨CityRequest->CityResponse로 메소드명 변경(#5)
95degree May 21, 2021
1a05ed1
feat: ✨image, image_type INSERT 문 생성(#5)
95degree May 21, 2021
a6d9ede
feat: ✨Image 빌드 패턴 추가(#5)
95degree May 21, 2021
f804c57
feat: ✨private 생성자로 변경(#5)
95degree May 21, 2021
c58f07c
feat: ✨ImageMapper 생성(#5)
95degree May 21, 2021
f668ff5
feat: ✨ImageDao 생성(#5)
95degree May 21, 2021
879c03d
chore: 🔧Set<Image>를 List<Image>로 변경(#5)
95degree May 21, 2021
afac737
chore: 🔧DataSource 주입 제거(#5)
95degree May 21, 2021
d156f16
feat: ✨SetImages 추가(#5)
95degree May 21, 2021
4ef35ea
feat: ✨ImageMapper에 Enum필드 변경 추가(#5)
95degree May 21, 2021
f7fd327
feat: ✨ImageDao 필드 추가(#5)
95degree May 21, 2021
ccb8cca
feat: ✨Category 도메인 생성(#5)
95degree May 21, 2021
0bcb94e
feat: ✨CategoryDao 생성(#5)
95degree May 21, 2021
0c31f60
feat: ✨CategoryResponse 생성(#5)
95degree May 21, 2021
aefd982
feat: ✨CategoryService 생성(#5)
95degree May 21, 2021
4abc47f
feat: ✨CityResponse 빌더 수정(#5)
95degree May 21, 2021
fa4d7fc
feat: ✨CategoryMapper 추가(#5)
95degree May 21, 2021
41fca98
feat: ✨findByCategoryId 추가(#5)
95degree May 21, 2021
8d7bcce
feat: ✨CategoriesWrapper 추가(#5)
95degree May 21, 2021
472df89
feat: ✨findByType 추가(#5)
95degree May 21, 2021
1a44d80
feat: ✨ImageService 생성(#5)
95degree May 21, 2021
f0ccd37
feat: ✨@JsonProperty 추가(#5)
95degree May 21, 2021
db512f7
feat: ✨createAllToCategoriesWrapper 추가(#5)
95degree May 21, 2021
eddb037
chore: 🔧citiesWrapper로 반환타입 변경(#5)
95degree May 21, 2021
a5a212b
feat: ✨cities와categoriesWrapper 삭제(#5)
95degree May 21, 2021
08ce917
feat: ✨MainPageWrapper 생성(#5)
95degree May 21, 2021
f742c2f
feat: ✨MainPageResponse 생성(#5)
95degree May 21, 2021
6d54770
style: 🎨코드 포맷팅 수정(#5)
95degree May 21, 2021
5c8934b
feat: 🔧MainPageResponse에 정적팩토리 메소드 추가(#5)
95degree May 21, 2021
fdf1c1c
feat: ✨home()으로 메소드명 변경 및 HiroImage 생성 로직 추가(#5)
95degree May 21, 2021
a1c411c
style: 🎨코드 포멧팅 수정(#5)
95degree May 21, 2021
0d44dc2
Merge pull request #18 from swing-park/feat-be-mainPage
95degree May 21, 2021
de1a3ac
style: 🎨Jsonignore 추가(#5)
95degree May 24, 2021
29adca8
feat: ✨Location 클래스 생성(#20)
95degree May 24, 2021
d22f318
feat: ✨위도 경도 계산 메소드 생성(#20)
95degree May 24, 2021
0fd316e
chore: 🔧위도 경도 계산을 위한 수정(#15)
95degree May 24, 2021
b13c65c
feat: ✨RoomSearchRequest 생성(#21)
95degree May 24, 2021
19d156e
feat: ✨RoomSearchRequest 생성(#21)
95degree May 24, 2021
b14dca7
feat: ✨RoomSearchRequest 생성(#21)
95degree May 24, 2021
d3f3d31
feat: ✨RoomSearchRequest 생성(#21)
95degree May 24, 2021
6d266c7
feat: ✨RoomsResponse 생성(#21)
95degree May 24, 2021
e7547fd
feat: ✨RoomsResponseWrapper 생성(#21)
95degree May 24, 2021
aadac51
chore: 🔧Hero로 이미지 이름 변경(#5)
95degree May 24, 2021
fcdd8f0
wip: ⚙Room domain 생성(#21)
95degree May 24, 2021
314a283
feat:✨RoomResponse 생성(#21)
95degree May 25, 2021
e7a56d9
feat:✨RoomResponse 생성(#21)
95degree May 25, 2021
c46ecdf
feat:✨RoomResponseWrapper 생성(#21)
95degree May 25, 2021
bdbf359
chore: 숙소 검새 api 진행(#21)
95degree May 25, 2021
f9ca665
feat : ✨RoomMapper 생성(#21)
May 25, 2021
6f7bc85
feat : ✨RoomDetail 생성(#21)
May 25, 2021
a75fd29
feat : ✨Tax 생성(#21)
May 25, 2021
9f256d1
feat : ✨RoomDao 생성(#21)
May 25, 2021
6f01cf7
feat : ✨Room 빌더 생성(#21)
May 25, 2021
ef0fa89
feat : ✨findByRoomId 메소드 생성(#21)
May 25, 2021
18c9c6c
feat : ✨findAll 메소드 생성(#21)
May 25, 2021
daf8992
chore : 🔧wiFi -> wifi로 변경(#21)
May 25, 2021
7784c49
feat: ✨RoomService(#21)
May 25, 2021
d1cc8f6
wip: ⚙가격대별 분류해서 보내는 로직 만들기(#21)
May 25, 2021
645d059
wip: ⚙가격대별 분류해서 보내는 로직 만들기(#21)
May 25, 2021
0f1c5e4
chore: 🔧for each 문 스트림으로 변경(#21)
95degree May 26, 2021
05dc4d7
chore: 🔧모든 숙소의 가격 GET API (#21)
95degree May 26, 2021
429d2b1
chore: 🔧서버에서 정렬을 하도록 변경 (#21)
95degree May 26, 2021
f9eb0dd
feat: ✨ 숙소 정보를 보내주는 API 생성(#21)
95degree May 26, 2021
eb9a85b
feat: ✨ 스케쥴과 도시정보를 넘겨줄 PriceRequest 생성(#21)
95degree May 26, 2021
ce980f8
feat: ✨ 스케쥴과 도시정보를 넘겨줄 PriceRequest 생성(#21)
95degree May 26, 2021
84a0ccd
wip: 스케쥴에 따라 가능한 숙소 조회API(#21)
95degree May 26, 2021
27a0c66
feat: ✨스케쥴에 따라 가능한 숙소 조회 쿼리(#21)
95degree May 27, 2021
0b544cd
feat: ✨유저에 검색에 따른 숙소 조회 API 생성(#21)
95degree May 27, 2021
de64080
feat: ✨유저에 검색에 따른 숙소 조회 API 생성(#21)
95degree May 27, 2021
badc1fe
feat: ✨DETAIL 이미지 삽입(#21)
95degree May 27, 2021
12e6e55
feat: ✨예약 데이터 삽입(#21)
95degree May 27, 2021
34de3da
feat: ✨CORS 설정(#21)
95degree May 27, 2021
e50717f
chore: 🔧 필드 명 변경(#21)
95degree May 27, 2021
7374be7
chore: 🔧 메인 이미지 url 받아오는 부분 변경(#21)
95degree May 28, 2021
5203b01
Merge pull request #32 from swing-park/feature-be-search
95degree May 28, 2021
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
37 changes: 37 additions & 0 deletions BE/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/
24 changes: 24 additions & 0 deletions BE/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
plugins {
id 'org.springframework.boot' version '2.4.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-web'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
useJUnitPlatform()
}
Binary file added BE/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 5 additions & 0 deletions BE/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
185 changes: 185 additions & 0 deletions BE/gradlew
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
#!/usr/bin/env sh

#
# Copyright 2015 the original author or authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn () {
echo "$*"
}

die () {
echo
echo "$*"
echo
exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar


# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`

JAVACMD=`cygpath --unix "$JAVACMD"`

# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option

if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi

# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=`save "$@"`

# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

exec "$JAVACMD" "$@"
89 changes: 89 additions & 0 deletions BE/gradlew.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem

@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto execute

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar


@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega
1 change: 1 addition & 0 deletions BE/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rootProject.name = 'airbnb'
12 changes: 12 additions & 0 deletions BE/src/main/java/airbnb/AirbnbApplication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package airbnb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class AirbnbApplication {

public static void main(String[] args) {
SpringApplication.run(AirbnbApplication.class, args);
}
}
30 changes: 30 additions & 0 deletions BE/src/main/java/airbnb/Service/CategoryService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package airbnb.Service;

import airbnb.dao.CategoryDao;
import airbnb.domain.Category;
import airbnb.dto.CategoryResponse;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class CategoryService {

private final CategoryDao categoryDao;

public CategoryService(CategoryDao categoryDao) {
this.categoryDao = categoryDao;
}

public List<Category> findAll() {
return categoryDao.findAll();
}
Comment on lines +21 to +23
Copy link
Member

Choose a reason for hiding this comment

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

굳이 이 메서드를 사용할 이유가 있나요?

Copy link
Author

Choose a reason for hiding this comment

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

아 굳이 현재는 나눌 필요가 없었는데 너무 먼 미래를 생각했네요 수정하겠습니다.


public List<CategoryResponse> createAllToCategoryResponseList() {
List<Category> categories = findAll();
return categories.stream().map(category -> CategoryResponse.of(category, category.findMainImageUrl()))
.collect(Collectors.toList());
}
Comment on lines +25 to +29
Copy link
Member

Choose a reason for hiding this comment

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

정말 생성하는게 맞나요?
내부의 구현을 드러내는 구조는 아닐까요?

Copy link
Author

Choose a reason for hiding this comment

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

        return categories.stream().map(CategoryResponse::of)
                .collect(Collectors.toList());

내부구현이 들어나지 않도록 위의 코드처럼 Dto 내부에서 처리하도록 수정하겠습니다.

Copy link
Author

Choose a reason for hiding this comment

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

이 부분 이외의 서비스에서도 내부의 구현이 드러나는 부분을 고치겠습니다.

Copy link
Member

Choose a reason for hiding this comment

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

내부의 구현이 드러난다는 말은 메서드가 하는 동작을 시그니처로 드러내면 안된다는 의미였습니다!
확인부탁드릴게요!

}
Loading