diff --git a/.gradle/8.10/checksums/checksums.lock b/.gradle/8.10/checksums/checksums.lock
index 60c609e..b0a730b 100644
Binary files a/.gradle/8.10/checksums/checksums.lock and b/.gradle/8.10/checksums/checksums.lock differ
diff --git a/.gradle/8.10/checksums/md5-checksums.bin b/.gradle/8.10/checksums/md5-checksums.bin
index 6098572..3a41fc1 100644
Binary files a/.gradle/8.10/checksums/md5-checksums.bin and b/.gradle/8.10/checksums/md5-checksums.bin differ
diff --git a/.gradle/8.10/checksums/sha1-checksums.bin b/.gradle/8.10/checksums/sha1-checksums.bin
index ccccf08..117499e 100644
Binary files a/.gradle/8.10/checksums/sha1-checksums.bin and b/.gradle/8.10/checksums/sha1-checksums.bin differ
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 530f1cd..f16dea7 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/out/production/classes/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.class b/out/production/classes/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.class
index 8ff9177..5a16a79 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.class and b/out/production/classes/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.class b/out/production/classes/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.class
index fd11bf5..34336f0 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.class and b/out/production/classes/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/Member$MemberBuilder.class b/out/production/classes/com/knu/daeguhackathon/member/Member$MemberBuilder.class
index 8547c07..d21db44 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/Member$MemberBuilder.class and b/out/production/classes/com/knu/daeguhackathon/member/Member$MemberBuilder.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/Member.class b/out/production/classes/com/knu/daeguhackathon/member/Member.class
index a371b8f..f89594e 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/Member.class and b/out/production/classes/com/knu/daeguhackathon/member/Member.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/controller/MemberController.class b/out/production/classes/com/knu/daeguhackathon/member/controller/MemberController.class
index 48bda90..b90f24b 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/controller/MemberController.class and b/out/production/classes/com/knu/daeguhackathon/member/controller/MemberController.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest$MemberRequestBuilder.class b/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest$MemberRequestBuilder.class
index 8400edc..0d120a4 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest$MemberRequestBuilder.class and b/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest$MemberRequestBuilder.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest.class b/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest.class
index 9d6fc2b..95ab046 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest.class and b/out/production/classes/com/knu/daeguhackathon/member/dto/MemberRequest.class differ
diff --git a/out/production/classes/com/knu/daeguhackathon/member/service/MemberService.class b/out/production/classes/com/knu/daeguhackathon/member/service/MemberService.class
index 9f5735c..965fc80 100644
Binary files a/out/production/classes/com/knu/daeguhackathon/member/service/MemberService.class and b/out/production/classes/com/knu/daeguhackathon/member/service/MemberService.class differ
diff --git a/out/production/resources/application.properties b/out/production/resources/application.properties
index 7b41fc6..fbeabe3 100644
--- a/out/production/resources/application.properties
+++ b/out/production/resources/application.properties
@@ -9,3 +9,5 @@ spring.jpa.hibernate.ddl-auto=update
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true
spring.profiles.include=dev
+csv.file.path=/home/ubuntu/repository/daegu-hackathon-be/src/main/resources/csvfile.csv
+#csv.file.path=src/main/resources/csvfile.csv
diff --git a/src/main/java/com/knu/daeguhackathon/global/utils/DataLoader.java b/src/main/java/com/knu/daeguhackathon/global/utils/DataLoader.java
index 3b40162..b560f65 100644
--- a/src/main/java/com/knu/daeguhackathon/global/utils/DataLoader.java
+++ b/src/main/java/com/knu/daeguhackathon/global/utils/DataLoader.java
@@ -3,6 +3,7 @@
import com.knu.daeguhackathon.global.utils.course.Course;
import com.knu.daeguhackathon.global.utils.course.repository.CourseRepository;
import com.opencsv.CSVReader;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@@ -17,9 +18,13 @@ public DataLoader(CourseRepository courseRepository) {
this.courseRepository = courseRepository;
}
+ @Value("${csv.file.path}")
+ private String csvFilePath;
+
+
@Override
public void run(String... args) {
- importCsv("csvfile.csv"); // CSV 파일 경로
+ importCsv(csvFilePath); // CSV 파일 경로
}
private void importCsv(String filePath) {
@@ -43,4 +48,4 @@ private void importCsv(String filePath) {
e.printStackTrace();
}
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.java b/src/main/java/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.java
index 5669510..00fd2a0 100644
--- a/src/main/java/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.java
+++ b/src/main/java/com/knu/daeguhackathon/kakaotoken/repository/KakaoTokenRepository.java
@@ -1,6 +1,7 @@
package com.knu.daeguhackathon.kakaotoken.repository;
import com.knu.daeguhackathon.kakaotoken.KakaoToken;
+import com.knu.daeguhackathon.member.Member;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@@ -11,4 +12,6 @@ public interface KakaoTokenRepository extends JpaRepository {
Optional findByAccessToken(String accessToken);
Optional findByMemberId(Long memberId);
+
+ KakaoToken findByMember(Member member);
}
diff --git a/src/main/java/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.java b/src/main/java/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.java
index a06ea19..067284d 100644
--- a/src/main/java/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.java
+++ b/src/main/java/com/knu/daeguhackathon/kakaotoken/service/KakaoTokenService.java
@@ -20,14 +20,13 @@ public class KakaoTokenService {
private final MemberRepository memberRepository;
@Transactional
- public KakaoToken saveKakaoToken(String email, KakaoTokenResponse tokenInfo) {
+ public void saveKakaoToken(String email, KakaoTokenResponse tokenInfo) {
Member member = memberRepository.findByEmail(email).orElseThrow(
() -> new RuntimeException("이메일에 해당하는 Member가 없습니다")
);
KakaoToken kakaoToken = KakaoToken.builder()
- .member(member)
.accessToken(tokenInfo.accessToken())
.refreshToken(tokenInfo.refreshToken())
.expires_in(tokenInfo.expiresIn())
@@ -35,7 +34,9 @@ public KakaoToken saveKakaoToken(String email, KakaoTokenResponse tokenInfo) {
.updated_at(LocalDateTime.now())
.build();
- return kakaoTokenRepository.save(kakaoToken);
+ KakaoToken savedToken = kakaoTokenRepository.save(kakaoToken);
+
+ member.setKakaoToken(savedToken);
}
@Transactional
diff --git a/src/main/java/com/knu/daeguhackathon/member/Member.java b/src/main/java/com/knu/daeguhackathon/member/Member.java
index bac5d05..c44832a 100644
--- a/src/main/java/com/knu/daeguhackathon/member/Member.java
+++ b/src/main/java/com/knu/daeguhackathon/member/Member.java
@@ -39,16 +39,16 @@ public class Member extends BaseTimeEntity {
private String name;
@NotNull
private LocalDateTime createdTime;
- private int speed;
+ private Double speed;
private String nickName;
- @OneToOne
+ @OneToOne(cascade = CascadeType.PERSIST)
private KakaoToken kakaoToken;
@OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE)
private List subjects = new ArrayList<>();
@OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE)
private List searchLogs = new ArrayList<>();
- public void setDetail(String name, int speed, String nickName) {
+ public void setDetail(String name, Double speed, String nickName) {
this.name = name;
this.speed = speed;
this.nickName = nickName;
diff --git a/src/main/java/com/knu/daeguhackathon/member/controller/MemberController.java b/src/main/java/com/knu/daeguhackathon/member/controller/MemberController.java
index 156989e..4ff2751 100644
--- a/src/main/java/com/knu/daeguhackathon/member/controller/MemberController.java
+++ b/src/main/java/com/knu/daeguhackathon/member/controller/MemberController.java
@@ -5,9 +5,9 @@
import com.knu.daeguhackathon.kakaotoken.dto.KakaoTokenResponse;
import com.knu.daeguhackathon.kakaotoken.service.KakaoApiService;
import com.knu.daeguhackathon.kakaotoken.service.KakaoTokenService;
-import com.knu.daeguhackathon.member.dto.MemberNickName;
import com.knu.daeguhackathon.member.dto.MemberRequest;
import com.knu.daeguhackathon.member.dto.MemberResponse;
+import com.knu.daeguhackathon.member.dto.MemberSpeed;
import com.knu.daeguhackathon.member.service.MemberService;
import com.knu.daeguhackathon.member.service.TokenService;
import java.net.URI;
@@ -74,10 +74,22 @@ public ResponseEntity getMemberInfo(@LoginMember Long memberId)
return ResponseEntity.ok().body(response);
}
- @PatchMapping("/api/member/nickname")
- public ResponseEntity changeMemberNickName(@LoginMember Long memberId, @RequestBody
- MemberNickName memberNickName) {
- memberService.changeMemberNickName(memberId, memberNickName.nickName());
+ @PatchMapping("/member/nickname")
+ public ResponseEntity changeMemberNickName(@LoginMember Long memberId, @RequestParam("nickname")
+ String memberNickName) {
+ memberService.changeMemberNickName(memberId, memberNickName);
+ return ResponseEntity.ok().build();
+ }
+
+ @GetMapping("/member/speed")
+ public ResponseEntity getMemberSpeed(@LoginMember Long memberId) {
+ MemberSpeed response = memberService.getMemberSpeed(memberId);
+ return ResponseEntity.ok().body(response);
+ }
+
+ @PatchMapping("/member/speed")
+ public ResponseEntity changeMemberSpeed(@LoginMember Long memberId, @RequestParam("speed") Double memberSpeed) {
+ memberService.changeMemberSpeed(memberId, memberSpeed);
return ResponseEntity.ok().build();
}
}
diff --git a/src/main/java/com/knu/daeguhackathon/member/dto/MemberRequest.java b/src/main/java/com/knu/daeguhackathon/member/dto/MemberRequest.java
index 455c897..22f6202 100644
--- a/src/main/java/com/knu/daeguhackathon/member/dto/MemberRequest.java
+++ b/src/main/java/com/knu/daeguhackathon/member/dto/MemberRequest.java
@@ -12,7 +12,7 @@
public class MemberRequest {
private String name;
- private int speed;
+ private Double speed;
private String nickName;
}
diff --git a/src/main/java/com/knu/daeguhackathon/member/dto/MemberSpeed.java b/src/main/java/com/knu/daeguhackathon/member/dto/MemberSpeed.java
new file mode 100644
index 0000000..c3022f2
--- /dev/null
+++ b/src/main/java/com/knu/daeguhackathon/member/dto/MemberSpeed.java
@@ -0,0 +1,5 @@
+package com.knu.daeguhackathon.member.dto;
+
+public record MemberSpeed(Double speed) {
+
+}
diff --git a/src/main/java/com/knu/daeguhackathon/member/service/MemberService.java b/src/main/java/com/knu/daeguhackathon/member/service/MemberService.java
index 8d9167f..4fb7c89 100644
--- a/src/main/java/com/knu/daeguhackathon/member/service/MemberService.java
+++ b/src/main/java/com/knu/daeguhackathon/member/service/MemberService.java
@@ -2,6 +2,7 @@
import com.knu.daeguhackathon.member.Member;
import com.knu.daeguhackathon.member.dto.MemberResponse;
+import com.knu.daeguhackathon.member.dto.MemberSpeed;
import com.knu.daeguhackathon.member.repository.MemberRepository;
import jakarta.transaction.Transactional;
import java.time.LocalDateTime;
@@ -33,7 +34,7 @@ public void registerMember(String email) {
}
@Transactional
- public void addMemberInfo(Long memberId, String name, int speed, String nickname) {
+ public void addMemberInfo(Long memberId, String name, Double speed, String nickname) {
Member member = memberRepository.findById(memberId)
.orElseThrow(() -> new RuntimeException("id에 해당하는 member가 없습니다."));
member.setDetail(name, speed, nickname);
@@ -64,4 +65,19 @@ public void changeMemberNickName(Long memberId, String nickName) {
member.setNickName(nickName);
}
+ @Transactional
+ public void changeMemberSpeed(Long memberId, Double speed) {
+ Member member = memberRepository.findById(memberId).orElseThrow(
+ () -> new RuntimeException("id에 해당하는 멤버가 없습니다.")
+ );
+ member.setSpeed(speed);
+ }
+
+ public MemberSpeed getMemberSpeed(Long memberId) {
+ Member member = memberRepository.findById(memberId).orElseThrow(
+ () -> new RuntimeException("id에 해당하는 멤버가 없습니다.")
+ );
+ return new MemberSpeed(member.getSpeed());
+ }
+
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 7b41fc6..fbeabe3 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -9,3 +9,5 @@ spring.jpa.hibernate.ddl-auto=update
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true
spring.profiles.include=dev
+csv.file.path=/home/ubuntu/repository/daegu-hackathon-be/src/main/resources/csvfile.csv
+#csv.file.path=src/main/resources/csvfile.csv
diff --git a/csvfile.csv b/src/main/resources/csvfile.csv
similarity index 100%
rename from csvfile.csv
rename to src/main/resources/csvfile.csv