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
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.maximus.spring_server.controller;

import com.maximus.spring_server.domain.User;
import com.maximus.spring_server.service.AccountService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@CrossOrigin
public class AccountController {

private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
public AccountController(AccountService accountService) {
this.accountService = accountService;
}

private final AccountService accountService;

@PostMapping("/account/signup")
public ResponseEntity<User> responseEntity(@RequestBody User user) throws Exception {
try {
User user1 = accountService.signup(user);
return ResponseEntity.status(HttpStatus.CREATED).body(User.builder().userId(user1.getUserId()).username(user1.getUsername()).build());
} catch (Exception e) {
logger.info("에러");
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(User.builder().build());
}
}
}
48 changes: 48 additions & 0 deletions src/main/java/com/maximus/spring_server/domain/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.maximus.spring_server.domain;


import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.List;

@Entity
@Getter
@Builder
@NoArgsConstructor
public class User {

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

private String username;
private String password;

// @Builder
// public User(String username, String password) {
// this.username = username;
// this.password = password;
// }


public User(Long userId, String username, String password) {
this.userId = userId;
this.username = username;
this.password = password;
}

public void ExitUser(List<User> user) throws IllegalArgumentException {
for (User user1 : user) {
if (user1.getUsername().equals(this.getUsername())) {
throw new IllegalArgumentException();
}
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.maximus.spring_server.repository;

import com.maximus.spring_server.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends JpaRepository<User,Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.maximus.spring_server.service;

import com.maximus.spring_server.domain.User;
import com.maximus.spring_server.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class AccountService {

private final UserRepository userRepository;

@Autowired
public AccountService(UserRepository userRepository) {
this.userRepository = userRepository;
}

@Transactional
public User signup(User user) throws IllegalArgumentException {
List<User> userList = userRepository.findAll();
try {
user.ExitUser(userList);
return userRepository.save(user);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException();
}
}
}
6 changes: 5 additions & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=1234
spring.h2.console.enabled=true