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