Skip to content
Merged
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
1 change: 1 addition & 0 deletions back/.idea/.name

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions back/.idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions back/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions back/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ repositories {
}

dependencies {
implementation 'org.projectlombok:lombok:1.18.22'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
// implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
Expand Down Expand Up @@ -40,6 +41,10 @@ dependencies {

annotationProcessor 'org.projectlombok:lombok'

//테스트에서 lombok 사용
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'

}

test {
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
38 changes: 38 additions & 0 deletions back/out/production/resources/application.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
server:
port: 8080
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Seoul
username: user1
password: 1234

mvc:
view:
prefix: /templates/
suffix: .mustache

jpa:
hibernate:
ddl-auto: create #create update none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: true
format_sql : true #이쁘게 해줌

mail:
host: smtp.naver.com
port: 465
username: lightson23@naver.com
password: anjdianjdi2239!!
properties:
mail.smtp.auth: true
mail.smtp.ssl.enable: true
mail.smtp.ssl.trust: smtp.naver.com
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ protected void configure(HttpSecurity http) throws Exception
.authenticationEntryPoint(new CustomAuthenticationEntryPoint())
.and()
.authorizeRequests()
.antMatchers("/", "/login", "/join", "/sendEmail", "/enterEmailCode/join","/validateDuplicateEmail").permitAll()
.antMatchers("/", "/login", "/join", "/sendEmail", "/enterEmailCode/join","/validateDuplicateEmail","/addPet").permitAll()
.anyRequest().authenticated();


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ public ResponseEntity<String> enterEmailCode(@RequestBody EmailCodeDto ecCode){
}
}

// 인증코드 입력 (비밀번호 변경)2
// 인증코드 입력 (비밀번호 변경)
@PostMapping("/enterEmailCode/changePw")
public ResponseEntity<String> enterEmailCode_password(@RequestBody CodeDto codeDto){
int sendCode = codeDto.getSendCode();
Expand Down
36 changes: 36 additions & 0 deletions back/src/main/java/com/petchatbot/controller/PetController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.petchatbot.controller;

import com.petchatbot.config.ResponseMessage;
import com.petchatbot.config.StatusCode;
import com.petchatbot.domain.dto.MemberDto;
import com.petchatbot.domain.requestAndResponse.DefaultRes;
import com.petchatbot.domain.requestAndResponse.JoinReq;
import com.petchatbot.domain.requestAndResponse.PetRegReq;
import com.petchatbot.repository.MemberRepository;
import com.petchatbot.service.MemberService;
import com.petchatbot.service.PetService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequiredArgsConstructor
public class PetController {

private final MemberRepository memberRepository;
private final MemberService memberService;
private final PetService petService;

@PostMapping("/addPet")
public ResponseEntity<String> addPet(@RequestBody PetRegReq petRegReq) {

petService.registerPet(petRegReq);
log.info("petRegReg={}",petRegReq.getPetName());
return new ResponseEntity(DefaultRes.res(StatusCode.OK, ResponseMessage.ENTER_JOIN_INFORMATION), HttpStatus.OK);
}
}
5 changes: 5 additions & 0 deletions back/src/main/java/com/petchatbot/domain/model/Breed.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.petchatbot.domain.model;

public enum Breed {
DOG, CAT
}
11 changes: 11 additions & 0 deletions back/src/main/java/com/petchatbot/domain/model/Member.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.petchatbot.domain.model;

import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

import javax.persistence.*;
import javax.validation.constraints.Email;
Expand All @@ -12,6 +13,7 @@

@Getter
@Entity
@Slf4j
public class Member {

@Id
Expand All @@ -21,6 +23,9 @@ public class Member {
private String memberPassword;
private String roles; // USER, ADMIN

@OneToMany(mappedBy = "member")
private List<Pet> petList = new ArrayList<>();

public Member() {
}

Expand All @@ -29,6 +34,12 @@ public Member(String memberEmail, String memberPassword) {
this.memberPassword = memberPassword;
}

public void addPet(Pet pet){
petList.add(pet);
pet.addMember(this);
log.info("pet.addMember={}", pet.getMember());
}


public void changePassword(String password){
this.memberPassword = password;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.petchatbot.domain.model;

public enum Neutralization {
NEUTER, NOTNEUTER
}
51 changes: 51 additions & 0 deletions back/src/main/java/com/petchatbot/domain/model/Pet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.petchatbot.domain.model;

import lombok.Getter;

import javax.persistence.*;

@Getter
@Entity
public class Pet {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long pet_serial;

@ManyToOne
@JoinColumn(name="member_serial")
private Member member;
@Enumerated(EnumType.STRING)
private Breed petBreed;
private String petName;
private String petAge;
@Enumerated(EnumType.STRING)
private PetSex petSex;
@Enumerated(EnumType.STRING)
private Neutralization petNeutralization;

public Pet() {
}

public Pet(Breed petBreed, String petName, String petAge, PetSex petSex, Neutralization petNeutralization) {
this.petBreed = petBreed;
this.petName = petName;
this.petAge = petAge;
this.petSex = petSex;
this.petNeutralization = petNeutralization;
}

public void changePetInfo(String petName, String petAge, PetSex petSex, Neutralization petNeutralization){
this.petName = petName;
this.petAge = petAge;
this.petSex = petSex;
this.petNeutralization = petNeutralization;
}

public void addMember(Member member) {
this.member = member;
}



}
5 changes: 5 additions & 0 deletions back/src/main/java/com/petchatbot/domain/model/PetSex.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.petchatbot.domain.model;

public enum PetSex {
MALE, FEMALE
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.petchatbot.domain.requestAndResponse;

import com.petchatbot.domain.model.Breed;
import com.petchatbot.domain.model.Neutralization;
import com.petchatbot.domain.model.PetSex;
import lombok.Data;

@Data
public class PetRegReq {
private String memberEmail;
private Breed petBreed;
private String petName;
private String petAge;
private PetSex petSex;
private Neutralization petNeutralization;

public PetRegReq(String memberEmail, Breed petBreed, String petName, String petAge, PetSex petSex, Neutralization petNeutralization) {
this.memberEmail = memberEmail;
this.petBreed = petBreed;
this.petName = petName;
this.petAge = petAge;
this.petSex = petSex;
this.petNeutralization = petNeutralization;
}
}
10 changes: 10 additions & 0 deletions back/src/main/java/com/petchatbot/repository/PetRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.petchatbot.repository;


import com.petchatbot.domain.model.Member;
import com.petchatbot.domain.model.Pet;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PetRepository extends JpaRepository<Pet, Integer> {

}
16 changes: 16 additions & 0 deletions back/src/main/java/com/petchatbot/service/PetService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.petchatbot.service;

import com.petchatbot.domain.dto.MemberDto;
import com.petchatbot.domain.model.Member;
import com.petchatbot.domain.model.Pet;
import com.petchatbot.domain.requestAndResponse.PetRegReq;

public interface PetService {

// 반려동물 추가
void registerPet(PetRegReq petRegReq);

// 반려동물 변경
void changePetInfo(Pet pet);

}
53 changes: 53 additions & 0 deletions back/src/main/java/com/petchatbot/service/PetServiceImpl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.petchatbot.service;

import com.petchatbot.domain.model.*;
import com.petchatbot.domain.requestAndResponse.PetRegReq;
import com.petchatbot.repository.MemberRepository;
import com.petchatbot.repository.PetRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
@Slf4j
public class PetServiceImpl implements PetService{

private final MemberRepository memberRepository;
private final PetRepository petRepository;



@Transactional
@Override
public void registerPet(PetRegReq petRegReq) {
Member findMember = getFindMember(petRegReq);
Pet pet = createPetEntity(petRegReq);
petRepository.save(pet);
findMember.addPet(pet);
}

private Member getFindMember(PetRegReq petRegReq) {
String memberEmail = petRegReq.getMemberEmail();
Member findMember = memberRepository.findByMemberEmail(memberEmail);
return findMember;
}

private Pet createPetEntity(PetRegReq petRegReq) {
Breed petBreed = petRegReq.getPetBreed();
log.info("petBreed={}", petBreed);
String petName = petRegReq.getPetName();
String petAge = petRegReq.getPetAge();
PetSex petSex = petRegReq.getPetSex();
Neutralization petNeutralization = petRegReq.getPetNeutralization();

Pet pet = new Pet(petBreed, petName, petAge, petSex, petNeutralization);
return pet;
}

@Override
public void changePetInfo(Pet pet) {

}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,40 @@
package com.petchatbot.service;

import com.petchatbot.domain.dto.MemberDto;
import com.petchatbot.domain.model.*;
import com.petchatbot.domain.requestAndResponse.PetRegReq;
import com.petchatbot.repository.MemberRepository;
import com.petchatbot.repository.PetRepository;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.assertj.core.api.Assertions.*;

@SpringBootTest
@Slf4j
class AnimalServiceImplTest {

@Autowired
PetService petServiceImpl;

@Autowired
MemberService memberService;


@Test
void 반려동물추가(){
MemberDto memberDto = new MemberDto("abc@naver.com", "password");
memberService.join(memberDto);
PetRegReq petRegReq = new PetRegReq("abc@naver.com", Breed.DOG, "hera", "33", PetSex.FEMALE, Neutralization.NOTNEUTER);

petServiceImpl.registerPet(petRegReq);

}




}