Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
38 changes: 38 additions & 0 deletions .github/workflows/idle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: IdleCI

on:
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'

# gradle 빌드 캐싱
- name: Cache Gradle packages
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/buildSrc/**/*.kt') }}
restore-keys: |
${{ runner.os }}-gradle-

# gradle 권한 부여
- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Code style check with Google Java Style
run: ./gradlew spotlessCheck
14 changes: 14 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
id "com.diffplug.spotless" version "6.25.0"
}

group = 'com.ureca'
Expand All @@ -23,6 +24,19 @@ repositories {
mavenCentral()
}

spotless {
java {
// 구글 자바 포맷 적용
googleJavaFormat().aosp()
// 사용하지 않는 import 제거
removeUnusedImports()
// 공백 제거
trimTrailingWhitespace()
// 끝부분 New Line 처리
endWithNewline()
}
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'

Expand Down
7 changes: 3 additions & 4 deletions src/main/java/com/ureca/idle/IdleApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@
@SpringBootApplication
public class IdleApplication {

public static void main(String[] args) {
SpringApplication.run(IdleApplication.class, args);
}

public static void main(String[] args) {
SpringApplication.run(IdleApplication.class, args);
}
}
3 changes: 1 addition & 2 deletions src/main/java/com/ureca/idle/idleaiclient/LGAIClient.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.ureca.idle.idleaiclient;

public class LGAIClient {
}
public class LGAIClient {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.ureca.idle.idleapi.idleapplyapi;

public class IdleApplyApi {
}
public class IdleApplyApi {}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@

public interface AuthUseCase {
LoginResp login(LoginReq req);

void logout();

SignupResp signup(SignupReq req);

void withdraw();
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.ureca.idle.idleapi.idleoriginapi.business.auth.dto.SignupReq;
import com.ureca.idle.idleapi.idleoriginapi.business.auth.dto.SignupResp;
import com.ureca.idle.idleapi.idleoriginapi.implementation.mapper.AuthDtoMapper;
import com.ureca.idle.idlejpa.user.User;
import com.ureca.idle.idleapi.idleoriginapi.implementation.user.UserManager;
import com.ureca.idle.idlejpa.user.User;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -25,20 +25,17 @@ public LoginResp login(LoginReq req) {
}

@Override
public void logout() {

}
public void logout() {}

@Override
@Transactional
public SignupResp signup(SignupReq req) {
userManager.checkExitsUserByEmail(req.email());
User registeredUser = userManager.registerUser(req.email(), req.password(), req.name(), req.phoneNum());
User registeredUser =
userManager.registerUser(req.email(), req.password(), req.name(), req.phoneNum());
return authDtoMapper.toSignupResp(registeredUser);
}

@Override
public void withdraw() {

}
public void withdraw() {}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.ureca.idle.idleapi.idleoriginapi.business.auth.dto;

public record LoginReq(String email, String password) {
}
public record LoginReq(String email, String password) {}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package com.ureca.idle.idleapi.idleoriginapi.business.auth.dto;

public record LoginResp (Long id, String role) {}
public record LoginResp(Long id, String role) {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.ureca.idle.idleapi.idleoriginapi.business.auth.dto;

public record SignupReq(String email, String password, String name, String phoneNum) {
}
public record SignupReq(String email, String password, String name, String phoneNum) {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
package com.ureca.idle.idleapi.idleoriginapi.business.auth.dto;


public record SignupResp(String message) {}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@
import com.ureca.idle.idleapi.idleoriginapi.implementation.user.UserManager;
import com.ureca.idle.idlejpa.kid.Kid;
import com.ureca.idle.idlejpa.user.User;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@RequiredArgsConstructor
public class KidManagingService implements KidManagingUseCase {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

public interface KidManagingUseCase {
AddKidResp addMyKid(Long userId, AddKidReq req);

GetKidsProfilesResp getMyKidsProfiles(Long userId);

GetKidsDetailResp getMyKidsDetail(Long userId, Long kidId);
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.ureca.idle.idleapi.idleoriginapi.business.kid.dto;

public record GetKidsPersonalityResp(Long personalityId, int ei, int sn, int tf, int jp, String mbti) {
}
public record GetKidsPersonalityResp(
Long personalityId, int ei, int sn, int tf, int jp, String mbti) {}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
import com.ureca.idle.idlejpa.kid.Gender;
import com.ureca.idle.idlejpa.kid.Kid;
import com.ureca.idle.idlejpa.user.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

@Component
@RequiredArgsConstructor
Expand All @@ -18,12 +17,13 @@ public class KidManager {
private final KidRepository repository;

public Kid registerKid(User user, String name, String gender, LocalDate birthDate) {
Kid newKid = Kid.builder()
.user(user)
.name(name)
.gender(Gender.from(gender))
.birthDate(birthDate)
.build();
Kid newKid =
Kid.builder()
.user(user)
.name(name)
.gender(Gender.from(gender))
.birthDate(birthDate)
.build();
return repository.save(newKid);
}

Expand All @@ -32,12 +32,13 @@ public List<Kid> getKidsByUser(User user) {
}

public Kid getKidWithPersonality(Long id) {
return repository.findKidWithPersonalityById(id)
return repository
.findKidWithPersonalityById(id)
.orElseThrow(() -> new KidNotFoundException("해당 KID 를 찾을 수 없습니다."));
}

public void checkDuplicatedKidName(User user, String name) {
if(repository.existsByUserAndName(user, name)) {
if (repository.existsByUserAndName(user, name)) {
throw new RuntimeException("이미 존재하는 이름의 KID 입니다.");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import com.ureca.idle.idleapi.idleoriginapi.business.kid.dto.*;
import com.ureca.idle.idlejpa.kid.Kid;
import com.ureca.idle.idlejpa.kidspersonality.KidsPersonality;
import org.springframework.stereotype.Component;

import java.util.List;
import org.springframework.stereotype.Component;

@Component
public class KidDtoMapper {
Expand All @@ -15,11 +14,7 @@ public AddKidResp toAddKidResp(Kid newKid) {
}

public GetKidsProfilesResp toGetMyKidsProfilesResp(List<Kid> kids) {
return new GetKidsProfilesResp(
kids.stream()
.map(this::toGetMyKidsProfileResp)
.toList()
);
return new GetKidsProfilesResp(kids.stream().map(this::toGetMyKidsProfileResp).toList());
}

public GetKidsProfileResp toGetMyKidsProfileResp(Kid kid) {
Expand All @@ -30,7 +25,12 @@ public GetKidsDetailResp toGetKidsDetailResp(Kid kid) {
KidsPersonality personality = kid.getPersonality();
return new GetKidsDetailResp(
new GetKidsProfileResp(kid.getId(), kid.getName(), kid.getProfileImageUrl()),
new GetKidsPersonalityResp(personality.getId(), personality.getEi(), personality.getSn(), personality.getTf(), personality.getJp(), personality.getMbti())
);
new GetKidsPersonalityResp(
personality.getId(),
personality.getEi(),
personality.getSn(),
personality.getTf(),
personality.getJp(),
personality.getMbti()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,45 +14,50 @@ public class UserManager {
private final UserRepository repository;

public User getUser(Long id) {
return repository.findById(id)
return repository
.findById(id)
.orElseThrow(() -> new UserNotFoundException("해당 ID 를 가진 유저를 찾을 수 없습니다."));
}

public User getUserByEmail(String email) {
return repository.findByEmail(email)
return repository
.findByEmail(email)
.orElseThrow(() -> new UserNotFoundException("해당 이메일을 가진 유저를 찾을 수 없습니다."));
}

public User getUserByEmailAndPassword(String email, String password) {
return repository.findByEmailAndPassword(email, password)
return repository
.findByEmailAndPassword(email, password)
.orElseThrow(() -> new UserNotFoundException("해당 이메일, 혹은 비밀번호를 가진 유저를 찾을 수 없습니다."));
}

// TODO AuthManager 생성 고려
public User getCurrentLoginUser(Long id) {
return repository.findById(id)
return repository
.findById(id)
.orElseThrow(() -> new UserNotFoundException("현재 로그인한 유저를 찾을 수 없습니다, 다시 로그인해주세요."));
}

public void checkCurrentLoginUser(Long id) {
if(!repository.existsById(id)) {
if (!repository.existsById(id)) {
throw new UserNotFoundException("현재 로그인한 유저를 찾을 수 없습니다, 다시 로그인해주세요.");
}
}

public User registerUser(String email, String password, String name, String phoneNum) {
User newUser = User.builder()
.email(email)
.password(password)
.name(name)
.phoneNum(phoneNum)
.role(Role.USER)
.build();
User newUser =
User.builder()
.email(email)
.password(password)
.name(name)
.phoneNum(phoneNum)
.role(Role.USER)
.build();
return repository.save(newUser);
}

public void checkExitsUserByEmail(String email) {
if(repository.existsByEmail(email)) {
if (repository.existsByEmail(email)) {
throw new UserNotFoundException("이미 해당 이메일을 가진 유저가 존재합니다.");
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@

import com.ureca.idle.idlejpa.kid.Kid;
import com.ureca.idle.idlejpa.user.User;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;
import java.util.Optional;

public interface KidRepository extends JpaRepository<Kid, Long> {
boolean existsByUserAndName(User user, String name);

List<Kid> getKidsByUser(User user);

@Query("SELECT k FROM Kid k JOIN FETCH k.personality WHERE k.id = :id")
Optional<Kid> findKidWithPersonalityById(@Param("id") Long id);
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.ureca.idle.idleapi.idleoriginapi.persistence.user;

import com.ureca.idle.idlejpa.user.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {

Optional<User> findByEmailAndPassword(String email, String password);

Optional<User> findByEmail(String email);

boolean existsByEmail(String email);
}
Loading